CSci 4651 Programming Languages - Resources
[Home]
[Syllabus]
[Assignments]
[Resources]
This page contains handouts for the course and links to other helpful
materials. The materials will be added as the course progresses.
Reading
- Corrections
of typos in the textbook. Make sure to check this out if something
in the book doesn't make sense. If you notice a typo that's not on the
list, e-mail it to the author.
- The following two articles describe examples of highly successful use
of Lisp in industry:
- "Beating the
averages" by Paul Graham talks about his choice of Lisp as a
language for a start-up company Viaweb which eventually evolved into
Yahoo!Store, a popular e-commerce software that runs about 20,000
online stores. The article explains why Lisp was chosen and how it
helped the startup to "outrun" its competitors.
- "Inside
Orbitz" by Carl de Marcken details the use of various
languages (including Lisp, Java, C++) in an online air fare search software
Orbitz (still very much in use and very popular).
Our discussion will focus on use of different languages for different
purposes and Paul Graham's claim about advantages of Lisp for software
development. All points of view are welcome!
- Handout on call-by-name and
call-by-value lambda-calculus.
General resources
Scheme resources
- DrScheme main
page: free download and documentation. Set the language to Essentials of Programming Languages (3rd ed.) You might want to add definitions of
first, rest,
etc. - see the beginning of the first in-class example below.
- PLT Scheme guide.This is the version of Scheme that we are using.
- In-class examples:
- A good
introduction to Scheme
- MIT Scheme
reference guide - a slightly different version of Scheme. Also has references to many Scheme resources.
C++ and other early imperative languages
OCaml resources
OCaml examples
Java resources
Generic types and templates
Ruby