A history of CLU
http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-56... is a very interesting read. CLU is a classic language and it was the first language that provided linguistic support for abstract data types. It also included iterators, exceptions, and a mechanism for polymorphism.