MMC203

PRINCIPLES OF PROGRAMMING LANGUAGES

UNIT I: PRELIMINARY CONCEPTS [10]
High Level Languages, Issues in Programming - Case studies, Programming paradigms, Language implementation. Syntactic Structure — Language representation, Abstract Syntax tree, Lexical syntax, Context Free Grammars, Variants of CFG, Issues involved and Normal Forms for CFG.

UNIT II: IMPERATIVE LANGUAGES [10]
Structured Programming — Need and Design issues. Block Structures(Pascal), types arrays, records, sets, pointers, procedures, parameter passing, scope rules(in C).

UNIT III: OBJECT ORIENTED LANGUAGES [10]
Grouping of data and Operations — Constructs for Programming Structures, Information Hiding, Program Design with Modules, Defined types, Templates Object oriented programming — concept of Object, inheritance, Derived classes and Information hiding (Using C++ as example language).

UNIT IV: FUNCTIONAL PROGRAMMING [10]
Functional Programming — Features, Implementation, Types — values and operations, Product of types. Lists and Operations on Lists, Functions from a domain to a range, Function Application, Lexical Scope. Bindings of values and functions (Using Haskell as example language)

UNIT V: LOGIC PROGRAMMING [10]
Formal Logic Systems, Working with relations and their implementation.(Using Prolog as example). Database query Languages, Exception handling (Using SQL as example)

REFERENCES:
1. Pratt, Ze!kowitz, “Programming Languages: Design and Implementation Edition, 1998, PHI
2. Ravi Sethi, “Programming Language Concepts and Constructs”, Addison Wesley, 1989
3. Doris Appleby, Julius J. Vandekopple, “Programming Languages: Paradigms and Practice”, McGraw Hill, 1997
4. Damir Medak and Gerhard Navratil, “Haskell-Tutorial”, Available on the Web, Feb 2003.
5. Paul Hudak, John Peterson and Joseph H. Fasel, “A gentle Introduction to Haskell-98”, Available on the Web, Oct 1999.