Syllabus  |   Lectures  |   Downloads  |   FAQ  |   Ask a question  |  
Course Co-ordinated by IIT Delhi


Download Syllabus in PDF format

Engineering ChemistryI (Theory) - Web Course


Prerequisites: Data Structures, and an introductory course in Computer Architecture.

Course objective:

To introduce the major programming paradigms, and the principles and techniques involved in design and implementation of modern programming
languages. To introduce frameworks for specifying and reasoning about programming languages.

Course contents:

Notions of syntax and semantics of programming languages; introduction to operational/natural semantics of functional and imperative languages. Data abstractions and control constructs; block-structure and scope, principles of abstraction, qualification and correspondence; parameter passing mechanisms; runtime structure and operating environment; practical and implementation issues in run-time systems and environment; abstracts machines; features of functional and imperative languages; the untyped and simply-typed Lambda calculus' type systems for programming languages including simple types and polymorphism; objects, classes and inheritance in object-oriented languages.

Course Organization (topics and hours)

Abstract Syntax and Semantics (algebraic)
Operational Semantics (functional paradigm, logic paradigm)       5
Block Structure and Control (imperative paradigm)                     4
Principles of Abstraction, Qualification, Correspondence               4
Abstract Machines and Runtime structures
Parameter Passing and Runtime stacks
Type Systems and Type checking/inference                               5
Object-oriented systems
Lambda Calculus

Brief description of laboratory activities:

Programming exercises will include use of tools for lexical analysis and parsing; representation of abstract syntax; abstract machines for
imperative and functional languages; translations from high-level languages to abstract machine instructions; implementation of run-time
structures and parameter-passing; type checking and type-inference; term reduction.

Suggested texts and reference materials:
1. Programming Language Pragmatics. Michael Scott, Morgan Kaufmann, 2000.
2. Essentials of Programming Languages. Friedman, Wand and
   Haynes, Prentice-Hall International (PHI), 1998.
3. Principles of Programming Languages. Tennant. PHI, 1981.

Resources required for the course:
Modern language compilers (SML, Prolog, Java, ...)
PCs for programming exercises, preferably running Linux.

Under development

Important: Please enable javascript in your browser and download Adobe Flash player to view this site
Site Maintained by Web Studio, IIT Madras. Contact Webmaster: