CS40032: Principles Of Programming Languages
CS40032 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Course name | Principles Of Programming Languages | ||||||||||||||||||||||||||||
Offered by | Computer Science & Engineering | ||||||||||||||||||||||||||||
Credits | 3 | ||||||||||||||||||||||||||||
L-T-P | 3-0-0 | ||||||||||||||||||||||||||||
Previous Year Grade Distribution | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
Semester | Spring |
Syllabus
Syllabus mentioned in ERP
Theory: The aim is to study and appreciate different types of languages and the underlying mathematical theories. This may help design and appreciate new language features.Introduction: Overview of different programming paradigms e.g. imperative, object oriented, functional, logic and concurrent programming.Syntax and semantics of programming langu-ages: A quick overview of syntax specification and semiformal semantic specification using attribute grammar.Imperative and OO Languages: Names, their scope, life and binding. Control-flow, control abstraction; in subprogram and exception handling. Primitive and constructed data types, data abstraction, inheritance, type checking and polymorphism.Functional Languages: Typed-calculus, higher order functions and types, evaluation strategies, type checking, implementation, case study.Logic Programming Languages: Computing with relation, first-order logic, SLD-resolution, unification, sequencing of control, negation, implementation, case study.Concurrency: Communication and synchronization, shared memory and message passing, safety and liveness properties, multithreaded programs.Formal Semantics: Operational, denotational and axiomatic semantics of toy languages, languages with higher order constructs and types, recursive type, subtype, semantics of nondeterminism and concurrency.References1.Glynn Winskel, A Formal Semantics of Programming Languages: An Introduction, MIT Press.2.John C. Mitchell, Foundations for Programming Languages, MIT Press.3.Benjamin C. Pierce, Types and Programming Languages, MIT Press.4.Daniel P. Friedman, Mitchell Wand and Christopher T. Haynes, Essentials of Programming Languages, Prentice Hall of India.5.Ravi Sethi, Programming Languages: Concepts and Constructs, Addison-Wesley.6.H. P. Barendregt, The Lambda Calculus: Its Syntax and Semantics, North-Holland.