CMSC 330, Summer 2012

Organization of Programming Languages



  • - The main Ruby website. Here you can download Ruby for both Linux/UNIX and Windows systems.
  • ruby-lang documentation - Online documentation links from the above site.
  • Ruby Core Class Reference
  • Introduction to Ruby - A simple introduction to basic Ruby
  • Ruby User's Guide - An English translation of a book written by the designer of the language. More of a language reference than a tutorial.
  • The Pragmatic Programmer's Guide - "The Pickaxe Book" is a more comprehensive overview of Ruby. It's an online version of the first edition of a printed Ruby book. The only thing to keep in mind is that it covers Ruby 1.6, which is fairly old at this point (the current version is 1.9).
  • TryRuby - An interactive online Ruby interpreter/tutorial
  • Rubular - An Ruby-based regular expression editor
  • Ruby Version Manager - Helps you manage multiple versions and installations of Ruby



Formal grammars and finite automata

  • Wikipedia actually has good pages on some of these things (and the references they cite are generally useful too):
  • Book: Introduction to the Theory of Computation by Michael Sipser
    This book has lots of good explanation, but is a little high level for what we're doing. Still, it might be worth a look.

Lambda calculus

Relevant textbooks

Previous required texts for CMSC 330 have chapters on relevant topics covered in this course. If the lecture notes are insufficient, look for these books. They should be available in the university library.
  • Concepts of Programming Languages (Seventh Edition) by R. Sebesta, Addison Wesley (2006) (ISBN 0-321-33025-0).
  • Programming Languages: Design and Implementation (Fourth Edition) by T. Pratt and M. Zelkowitz, Prentice Hall (2001) (ISBN 0-13-027678-2).



  • Notepad2
  • Notepad++
  • Vim (make sure you install the GUI version if you want a pretty interface) and MacVim (for Mac OS X)
  • Emacs (and a Ruby plugin if your version is older than 23)
  • SciTE is free on Windows and GNU/Linux, but not free on Mac OS X.
  • TextMate is a full-featured editor for Mac OS X, although it's not free.

Integrated Development Environments (IDEs):

  • Netbeans 6.9 has support for Ruby, although it has been removed in the latest (7.0) release; here's a note from the developers about it.
  • There are some Ruby plugins for Eclipse. This appears to be a tutorial.
  • RubyMine by JetBrains
  • Aptana appears to be a repackaging of Eclipse that may be worth trying.
  • Komodo is not free, but there is a trial version that you might be able to use for the duration of this class.



Valid HTML 4.01!