Madhavan Mukund


Programming Language Concepts

Madhavan Mukund

Abstract

These are lecture notes for a course on programming language concepts. The notes are based on lectures delivered to BSc and MSc students at CMI from 2001 to 2004.

The course assumes familiarity with standard constructs from imperative programming such as sequencing, conditional excecution, iteration and function/procedure calls.

The notes cover seven main topics.

  1. Object-oriented programming
  2. Exception handling
  3. Event-driven programming
  4. Reflection
  5. Concurrent programming
  6. Functional programming
  7. Logic programming

The first five topics are illustrated using Java, also providing a quick introduction to Java in the process. Functional programming is illustrated through Haskell and logic programming through Prolog.