Quick References

Software Installation

  • Download Ruby 1.9.3 for Windows here. Directions for other systems
  • Download OCaml 4.00.1 for Windows here. Directions for other systems
  • Download SWI-prolog 6.6.1 for Windows here. Directions for other
    systems here.


  • Core language
  • Classes & methods (1.9.3):
  • ruby-lang.org
  • Quick Start (Ruby in 20 minutes)
  • 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, while you can buy the printed version which covers the
      current Ruby 1.8. We probably won’t do anything for this course
      where the difference between version
      1.6 and 1.8 would make much difference. There’s a lot of
      information here which you won’t need- the most relevant
      sections are the first fourteen listed (the first up through
      “Basic Input and Output”), then “When Trouble Strkes”, “Ruby and
      Its World”, and
      “The Ruby Language”
      “Classes and Objects”.
      These last two are good summary references for the language.
  • Ruby documentation
    • A list from ruby-lang.org of Ruby reference manuals, online
      sources of Ruby information (some of the ones which will probably be
      more useful are mentioned specifically below), and Ruby articles. If
      you want to buy a printed book about Ruby several are listed.
  • 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.


For this iteration of the course I’ve written a page about
setting up OCaml and tools like

Formal grammars and finite automata

Lambda calculus

Java Generics

Java Garbage Collection

Ruby On Rails

  • Rails is a full-stack framework for
    developing database-backed web applications according to the
    Model-View-Control pattern.

  • Instant Rails is a
    single package containing Ruby, Rails, Apache, and MySQL, all
    pre-configured and ready to run without installation. Currently for
    Windows only.

Other relevant texts

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).

  • O’Reilly History of Programming Languages Poster