
CLU: Reference Manual (1979) [pdf] - brudgers
http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-225.pdf?new=2
======
mindcrime
Codified Likeness Utility?

All joking aside, my first question when I saw this was "is there a compiler /
implementation for this language".

Here's what I found in response to looking for that:

[http://pmg.csail.mit.edu/~dcurtis/clu/](http://pmg.csail.mit.edu/~dcurtis/clu/)

[http://www.pmg.lcs.mit.edu/CLU.html](http://www.pmg.lcs.mit.edu/CLU.html)

Looks like you're in luck if you're running a VAX. Otherwise, I dunno...

edit: OK, there's a CLU2C compiler:

[http://woodsheep.jp/clu2c.html](http://woodsheep.jp/clu2c.html)

~~~
jannotti
We used CLU when I took MIT's Software Engineering class. I think we used pclu
("Portable CLU", which translated to C.

------
nickpsecurity
Thanks for sharing it as it forced me to look it up. The Wikipedia article has
nice summary and traces its effects:

[https://en.wikipedia.org/wiki/CLU_%28programming_language%29](https://en.wikipedia.org/wiki/CLU_%28programming_language%29)

I knew about some of Liskov's work but didn't know CLU was her precursor to
OOP. Among other things. Pretty forward-thinking. I see it as a nice space
between Structured Programming and OOP where people wanting some, not all, OOP
constructs might be comfortable.

~~~
hga
Indeed. In 1979 I was part of a small group of students working with Professor
Irene Greif on designing a public key authentication system (very hard, as I
understand it it took until 1985 to get it right), and she was part of the LCS
group that used CLU. Coming from a Structured Programming background, it
indeed occupied a nice space there (although LISP was more fun).

~~~
ScottBurson
Greif.

~~~
hga
Thanks.

------
devman
This reminded me the good old days when I was writing a CLU compiler based on
the spec found in the russian translation of Liskov's Abstraction and
Specification book. :-)

------
kazinator
Surprising amount of C/Unix influence in lexical conventions, for 1979. For
instance note the character escapes in string literals: \n newline, \177 octal
(7.5, p. 25). The text formatter program in the example appendix (IV.2, p.
140) is a miniature troff.

------
chrismaeda
I took 6.170 (software engineering aka small group projects) and 6.035 (build
a compiler), both in CLU, at MIT in the 80s. I was a Lisp guy so I didn't want
to like CLU, but I remember thinking the exception handling was a win - you
declared the exceptions thrown so that the compiler could check that you were
handling all the thrown exceptions. Lisp had nothing like this since
everything was dynamic and with C it was given that real men did not check
return values for errors. I was glad to see them resurface as checked
exceptions in Java.

------
pjmlp
Look generics and exceptions in 1979!

I guess some language designers missed something.

~~~
devman
CLU was way ahead of most of the mainstream languages of 80s. I remember that
coding the compiler for generics and Pascal-like unit system I added on top of
the standard spec was quite fun! I was compiling generics to an intermediate
language opcode and then generating the machine language during the linking
phase. Oh, those good old days!

~~~
pjmlp
I was being sarcastic.

There are so many powerful languages since the late 60's on the mainframe
systems and yet we got what we got.

