Slides are linked off the course outline.
We will examine basic concepts underlying the design of modern
programming languages: types, control structures, abstraction
mechanisms, inheritance, concurrency, constructs for programming in
the large, etc. This is not a programming course per se, but there
will be programming assignments in several languages, imperative and
functional. The languages are chosen because of the interest of their
features, and not necessarily because of their wide use. We will touch
on Ada, C++, C#, Java, LISP, ML, Python, Scheme, and mention many
Undergraduate courses in data structures and algorithms, familiarity
and programming experience with one of the following: C, C++, Ada,
Java, or Pascal.
Programming assignments, final examination, roughly in the same
weight, i.e. the final represents half of the grade.
Michael Scott: Programming Language, Pragmatics (Morgan Kaufman 2000)
This is a excellent recent text that covers both language design and
compiler fundamentals. In your readings for this course you don't need
to study any section that has to do with translation and compiler
construction, but that material is interesting, and you will examine
it in more detail when you take the Compiler Construction course.
John Barnes: Programming in Ada95
You must have some good text on C++ and on Java. For C++ the 3rd
edition of Stroustrup: the C++ programming Language, is the standard
reference. For Java, the language definition is given in: Gosling, Joy
and Steele: the Java Language Specification. For both languages, there
are several introductory texts by Horstmann that are very
well-written, and innumerable others.
Several people asked for an easy reference for learning Scheme (unlike
the official reference manual already on the web page). Dr. Goldberg
The Little Schemer, 4th Edition
Daniel P. Friedman, Matthias Felleisen
MIT Press, 1995
The Scheme Programming Language:
You can use the GNAT compiler on all servers at NYU. All the needed
files are in /usr/local/pkg/gnat/bin/, so you should place this
directory in front on your path. If your test program is called
numbers.adb, you create an executable for it simply by writing:
which you can execute by writing:
If you want to compile a single file, you can write:
gcc -c numbers.adb
All of the above are available for downloading in multiple formats
NYU ftp site.
If Ada is new to you, you may want to start with this ada summary.
Copious information on Ada, including programming environments,
software, and tools, can be found at Adapower.
Please report problems with this page to email@example.com