CS40032: Principles Of Programming Languages

From Metakgp Wiki
Jump to navigation Jump to search
CS40032
Course name Principles Of Programming Languages
Offered by Computer Science & Engineering
Credits 3
L-T-P 3-0-0
Previous Year Grade Distribution
40
28
16
15
4
10
3
EX A B C D P F
Semester Spring


Syllabus[edit | edit source]

Syllabus mentioned in ERP[edit | edit source]

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.


Concepts taught in class[edit | edit source]

Student Opinion[edit | edit source]

How to Crack the Paper[edit | edit source]

Classroom resources[edit | edit source]

Additional Resources[edit | edit source]