Programming Languages Textbook

Here's an online text book (or is it a set of lecture notes?) from Shriram Krishnamurthi's Programming Languages class at Brown. It's quite readable. I'm currently reading through the section on Semantics and Types. If you found the Advanced Functional Programming Wiki useful, then you may like these as well.


I haven't gotten too much out of the "Semantics and Types" section yet, because I'm already familiar with the material. However, Shriram has sprinkled the text with occasional remarks that go beyond the details of the material to give the reader a refreshing wide-angle view of the subject in context. It's these remarks that keep me reading. For example:

In languages like Java, programmers think they have the benefit of a type system, but in fact many common programming patterns force programmers to employ casts instead. Casts intentionally subvert the type system, leaving most of the validity checking for execution time. This indicates that Java's evolution is far from complete. In contrast, most of the type problems of Java are not manifest in a language like ML, but its type system still holds a few (subtler) lurking problems. In short, there is much to do before we can consider type system design a solved problem.

I need to remember to make a local copy of both of these sites (the textbook and the wiki) once the semester ends. Their URL's look worryingly ephemeral.

Followups to Programming Languages Textbook:

Posted on November 20, 2003 01:00 AM
More languages articles

Comments

I recently found myself explaining to a java-trained coworker why casts were bad and to be avoided when possible (the context of this discussion was he was doing some C++ stuff). It made me sad that he didn't see anything wrong with the compiler forgetting what type something was and having to be told.

Posted by: Jesse at November 20, 2003 11:06 AM

I once decided to implement typecase in Java - I don't know if I mentioned it here before or not (I commented a few weeks ago on something or other). Anyway: http://www.cs.drexel.edu/~ummaycoc/Type.java

It would obviously be better if there was automatic built in support for mirroring classes with the appropriate exceptions, etc. Of course, it's a bit over the top.

Posted by: Matt at November 20, 2003 06:42 PM
Post a comment









Remember info?




Prove you're human. Type "human":