PTCCS358 Principles of Programming Languages Syllabus:
PTCCS358 Principles of Programming Languages Syllabus – Anna University Part time Regulation 2023
COURSE OBJECTIVES:
To understand and describe syntax and semantics of programming languages
To understand data, data types, and basic statements
To understand call-return architecture and ways of implementing them
To understand object-orientation, concurrency, and event handling in programming languages
To develop programs in non-procedural programming paradigms
UNIT I SYNTAX AND SEMANTICS
Evolution of programming languages – describing syntax – context-free grammars – attribute grammars – describing semantics – lexical analysis – parsing – recursive-descent – bottom up parsing
UNIT II DATA, DATA TYPES, AND BASIC STATEMENTS
Names – variables – binding – type checking – scope – scope rules – lifetime and garbage collection – primitive data types – strings – array types – associative arrays – record types – union types – pointers and references – Arithmetic expressions – overloaded operators – type conversions – relational and boolean expressions – assignment statements – mixed mode assignments – control structures – selection – iterations – branching – guarded statements
UNIT III SUBPROGRAMS AND IMPLEMENTATIONS
Subprograms – design issues – local referencing – parameter passing – overloaded methods – generic methods – design issues for functions – semantics of call and return – implementing simple subprograms – stack and dynamic local variables – nested subprograms – blocks – dynamic scoping
UNIT IV OBJECT-ORIENTATION, CONCURRENCY, AND EVENT HANDLING
Object-orientation – design issues for OOP languages – implementation of object-oriented constructs – concurrency – semaphores – monitors – message passing – threads – statement level concurrency – exception handling – event handling
UNIT V FUNCTIONAL AND LOGIC PROGRAMMING LANGUAGES
Introduction to lambda calculus – fundamentals of functional programming languages – Programming with Scheme – Programming with ML – Introduction to logic and logic programming – Programming with Prolog – multi-paradigm languages
TOTAL: 45 PERIODS
COURSE OUTCOMES:
CO1: Describe syntax and semantics of programming languages
CO2: Explain data, data types, and basic statements of programming languages
CO3: Design and implement subprogram constructs
CO4: Apply object-oriented, concurrency, and event handling programming constructs and Develop programs in Scheme, ML, and Prolog
CO5: Understand and adopt new programming languages
TEXT BOOKS
1. Robert W. Sebesta, “Concepts of Programming Languages”, Twelfth Edition (Global Edition), Pearson, 2022.
2. Michael L. Scott, “Programming Language Pragmatics”, Fourth Edition, Elsevier, 2018.
3. R. Kent Dybvig, “The Scheme programming language”, Fourth Edition, Prentice Hall, 2011.
4. Jeffrey D. Ullman, “Elements of ML programming”, Second Edition, Pearson, 1997.
5. W. F. Clocksin and C. S. Mellish, “Programming in Prolog: Using the ISO Standard”, Fifth Edition, Springer, 2003.
