| |||||||||
MIT by 1974-1975, had the first use of abstract data types (ADTs) and iterators. The syntax of CLU was based on ALGOL (the less complex predecessor to Pascal).
CLU uses a concept called a "cluster" which is a slight generalisation of "modules" as seen in Modula-2, early Ada, etc. This is about the closest you can get to object-oriented programming without actually being there. Ruby borrowed many concepts from CLU and has similar syntax.
One of features of CLU was multiple assignment: e.g. writing x,y=y,x would exchange values of x and y. In the same way, functions could return several values, like x,y,z=f(t).