Resources
Quick References
- Ruby
- OCaml
Software Installation
- Download Ruby 1.9.3 for Windows here. Directions for other systems
here. - Download OCaml 4.00.1 for Windows here. Directions for other systems
here - Download SWI-prolog 6.6.1 for Windows here. Directions for other
systems here.
Ruby
- 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”
and
“Classes and Objects”.
These last two are good summary references for the language.
- “The Pickaxe Book” is a more comprehensive overview of Ruby.
- 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.
- A list from ruby-lang.org of Ruby reference manuals, online
- 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.
OCaml
For this iteration of the course I’ve written a page about
setting up OCaml and tools like
Merlin.
-
Real World OCaml is an excellent free
book on OCaml programming. It’s both comprehensive and current, and
includes many examples. The first six chapters will be the material
most relevant for our class. -
Tutorials: at OCaml site and
interactive tutorial in the style of Code
Academy
Formal grammars and finite automata
-
Online tool for playing with regular expression
-
Rubular is an awesome tool that does this for
Ruby. -
Book: Introduction to Automata Theory, Languages & Computation
-
Book: Introduction to the Theory of Computation by Michael Sipser
This book has lots of good explanation. See Sipser’s course for more
material. -
Wikipedia actually has good pages on some of these things (and the
references they cite are generally useful too):
Lambda calculus
-
BRO system for animating reductions
in the 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).