CS41009: Principles Of Programming Languages

From Metakgp Wiki
Jump to navigation Jump to search
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

Syllabus mentioned in ERP

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.


Concepts taught in class

Student Opinion

How to Crack the Paper

Classroom resources

Additional Resources