2K6CS 504: PROGRAMMING LANGUAGE CONCEPTS

Module I (12 hours)
Preliminaries – Reasons for studying concept of programming languages- Programming Domains-Language evaluation criteria- influence on language design-language categories-Implementation methods-Programming environments – Evolution of programming languages- Describing Syntax and semantics-Formal methods of describing syntax- attribute grammars- Dynamic semantics-Names, variables-concept of binding-type checkingstrong typing-type compatibility-Scope and lifetime-referencing environments-Named constants.
Module II (15 hours)
Data types-Primitive-Character strings-Array types-Associative arrays-record and union types-Pointer and reference
types-Expression and assignment statements-arithmetic expressions-Overloaded operators-type conversionsrelational and Boolean expressions-short circuit evaluation-assignment statements-mixed mode assignmentstatement level control structures-selection and iterative statements- unconditional branching and guarded commands- subprograms-Design issues – parameter passing methods-over loaded subprograms-Implementing subprograms-blocks-implementing dynamic scope
Module III (12 hours)
Concept of Abstraction-Data abstraction-design issues-encapsulation constructs-Object oriented programmingDesign issues-support for object oriented programming in C++,JAVA,C# etc- Implementation of object oriented constructs- Concurrency – Subprogram level concurrency-monitors-message passing-threads-statement level concurrency- Exception handling in JAVA & C++ -event handling with JAVA.
Module IV (12 hours)
Functional programming languages – Mathematical functions – fundamentals of functional programming languages- Introduction to COMMON LISP, ML-Application of functional languages- Comparison of functional & Imperative languages – Logic programming languages – Introduction to predicate calculus-Overview of logic programming-origins of prolog-basic elements of prolog Applications of logic programming

Text books
4. Robert W Sebesta, Concepts of programming Languages (7 edn) – Pearson Education
Reference books
1. Sethi R, Programming languages: Concepts & Constructs , Addison Wesley
2. Scott M L, Programming language Pragmatics, Morgan Kaufman