Programming Languages
CSCI-GA.2110-001
Summer 2023
Textbooks
Required
- Michael L. Scott. Programming Language Pragmatics, 4th edition
(Morgan Kaufman 2016)
This is a excellent text that covers both language design
and compiler fundamentals. In your readings for this course you don't
need to study sections that deal with translation and compiler
construction issues, but that material is interesting, and you will
examine it in more detail when you take the Compiler Construction
course.
Recommended
You ought to also have good books on C++ and Java. Rather
than insist on any particular book, here are some recommendations:
The books written by the creators of C++ and Java are the standard
references:
- Stroustrup. The C++ programming Language, 3rd
ed. (Addison-Wesley)
- Ken Arnold, James Gosling, and David Holmes. The Java(TM)
Programming Language, 4th ed. (Addison-Wesley)
For the remaining languages, there is a lot of information
available on the web in the form of references and tutorials, so books
may not be strictly necessary. However, if you are interested, a few
recommendations follow.
- John Barnes. Programming in Ada95, 2nd ed. (Addison
Wesley)
We will also discuss functional languages, specifically Scheme and
ML.
- R. Kent Dybvig. The Scheme Programming Language. 4th Edition (MIT Press).
- Jeffrey Ullman. Elements of ML Programming ML97 Edition, 2nd Edition. (Prentice Hall).
Time permitting, we will discuss scripting languages. Our exemplar
will be Perl, and we may also touch on Python. The standard reference
on Perl is also a great tutorial:
- Larry Wall, Tom Christiansen, and Jon Orwant: Programming
Perl, 3rd ed. (O'Reilly)