CS 396: Principles of Languages
Home Class Info Assignments
Content
 

Class Information

Interesting Programming Languages Links

  • Pizza, a version of Java that (hurray!) attempts to support first-class function (a la Scheme closures) and some other nice abstractions.

Scheme Resources

We will be using the Racket programming environment exclusively this term. There are also Windows, Mac and Linux versions so everyone can install it and work at home. All in all, pretty darn nice environment. Note that this project used to be "Dr Scheme", but apparently has grown beyond mere scheme, and thus they changed the name. But the Dr Scheme core is the part of it that we really want, and you'll likely hear me say "Dr Scheme" quite a bit as a holdover! There is an on-line reference manual for Racket that is pretty useful and you can find many other Scheme references and resources online and in the following links.


IMPORTANT: After you install DrRacket, the first thing is will ask when you start using it is "what language level". Under the "Language" menu, do "choose language" and then select " Pretty Big". If it doesn't ask, go set the language anyway!

If you see multiple versions, get the latest one. DrRacket is a nice clean IDE, so you should get something like looks like the picture here when you launch it. There are also command-line versions available, and that works fine, if you're the sort who likes to type in their own favorite text editor.

Some more Scheme info on books, manuals, debugging and cool tricks is listed here (if you send me links to cool things, I'll put them here as resources for all).

Debugging in Scheme: Using trace to visualize deeply recursive processes. The Dr. Racket IDE has a simple debugger built in that can be useful, but often you just need a way to watch how one function is invoked. Here I've given you a nice intro to a cool standard scheme tool.


Prolog Resources

We will be using Prolog for the last assignment in the semester. The implementation we will use is SWI-Prolog. You should start by downloading SWI-prolog for installation on your our machine from the SWI-prolog homepage . Some other prolog resources:


Other Resources

  • Play with Haskell. You'll have to do a bit of work (not as easy as Dr. Racket) to install the binaries. Not bad though, they have an installer. Then you edit-test using a text editor and command-line control of Haskell. Just read the documentation and you'll be Haskelling in a jiffy! There is an IDE for Haskell called Leksah, which could be helpful for larger projects, but seems a bit overkill for just fooling around.
  • A Haskell tutorial

Tutorials/Help: