This report investigates the relationships between design patterns and programming languages. A comparison is carried out between the usual track of programming languages development and the discovery of patterns. We argue that there are fundamental di erences between the two. We o er a taxonomy of patterns based on how far they are from becoming actual language features. An observation is made that many patterns are in essence a set of rules governing the relations between two objects in run time. An initial multi-dimensional classi cation of such relationships is proposed. 							
						
							
					 															
					Joseph Gil, David H. Lorenz