General Information

Course Description

A study of the organization, specification, and behavior of programming languages. The course will focus on five different programming language paradigms: imperative, object-oriented, functional, logic, and concurrent. Programming assignments using example languages from each of these paradigms will be required. Emphasis will be placed on learning Scheme, ML, and Prolog in a Unix environment. Other topics covered include language syntax, control structures, objects, and functions.

 

Instructor

  • Prof. Peter Yoon
  • Office: MECC 127
  • Phone: (860) 297-2461
  • Email: peter.yoon@trincoll.edu
  • Office Hours: TR 2:30-4:00 p.m. (by appointment via Zoom)
  • Zoom: trincoll.zoom.us/j/94883841797

 

Recommended Readings

  • Programming Languages
    • Concepts of Programming Languages, 11th Edition by Robert Sebesta, Pearson, 2015.
    • Programming Language Pragmatics, 4th Edition by Michael L. Scott, Morgan Kaufmann, 2015.
    • Concepts in Programming Languages by John C. Mitchell, Cambridge University Press, 2002.
    • The Science of Programming, by David Gries, Springer, 1987.
    • Structure and Interpretation of Computer Programs – Second Edition, by Harold Abelson, Gerald Jay Sussman, and Julie Sussman, The MIT Press, 1996.
    • Modern Programming Languages: A Practical Introduction Second Edition by Adam Brooks Webber, Franklin, Beedle & Associates, 2013.
    • Elements of ML Programming, ML97 Edition by Jeffrey D. Ullman, Pearson, 1998.
    • The C Programming Language, Second Edition by Brian Kernighan and Dennis Ritchie, Prentice-Hall, 1988.
  • Compilers
    • Compilers: Principles, Techniques, and Tools, Second Edition by Aho, Lam, Sethi, and Ullman, Pearson/Addison Wesley, 2006.
    • Modern Compiler Implementation in C by Andrew Appel. Cambridge University Press. 1998
    • Crafting Interpreters by Robert Nystrom. Genever Benning, 2021.