CS41009: Principles Of Programming Languages
CS41009 | |
---|---|
Course name | Principles Of Programming Languages |
Offered by | Computer Science & Engineering |
Credits | 3 |
L-T-P | 3-0-0 |
Previous Year Grade Distribution | |
{{{grades}}} | |
Semester | Autumn |
Syllabus[edit | edit source]
Syllabus mentioned in ERP[edit | edit source]
The aim is to study and appreciate different types of languages and the underlying mathematical theories. This may help to design and also to 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 languages : 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, inheritence, 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 program. Formal Semantics : Operational, denotational and axiomatic semantics of toy languages, languages with higher order consstructs and types, recursive type, subtype,semantics of nondeterminism and concurrency.