1
Principles of Programming Languages. Instructor: Prof. S. Arun Kumar, Department of Computer Science and Engineering, IIT Delhi.
1111 years
40
This course introduces the major programming paradigms, and the principles and techniques involved in design and implementation of modern programming languages. And also it introduces frameworks for specifying and reasoning about programming languages. Topics covered in the lectures include: Notions of syntax and semantics of programming languages; introduction to operational/natural semantics of functional and imperative languages. Data abstractions and control constructs; block-structure and scope, principles of abstraction, qualification and correspondence; parameter passing mechanisms; runtime structure and operating environment; practical and implementation issues in run-time systems and environment; abstracts machines; features of functional and imperative languages; the untyped and simply-typed Lambda calculus' type systems for programming languages including simple types and polymorphism; objects, classes and inheritance in object-oriented languages. (from nptel.ac.in)
Course Currilcum
- Lecture 01 – Introduction Unlimited
- Lecture 02 – Syntax Unlimited
- Lecture 03 – Grammars Unlimited
- Lecture 04 – Ambiguity Unlimited
- Lecture 05 – PL0: Syntax Unlimited
- Lecture 06 – Semantics Unlimited
- Lecture 07 – Syntactic Classes Unlimited
- Lecture 08 – Transition Systems Unlimited
- Lecture 09 – PL0: Expressions Unlimited
- Lecture 10 – Binding Unlimited
- Lecture 11 – Environments Unlimited
- Lecture 12 – Declarations Unlimited
- Lecture 13 – Commands Unlimited
- Lecture 14 – Stores Unlimited
- Lecture 15 – Summary So Far Unlimited
- Lecture 16 – Declarations and Commands Unlimited
- Lecture 17 – Blocks Unlimited
- Lecture 18 – Qualification Unlimited
- Lecture 19 – Pragmatics Unlimited
- Lecture 20 – Data Unlimited
- Lecture 21 – Structured Data Unlimited
- Lecture 22 – Sequences Unlimited
- Lecture 23 – Control Unlimited
- Lecture 24 – Non-Determinacy Unlimited
- Lecture 25 – The λ Notation Unlimited
- Lecture 26 – The λ Calculus Unlimited
- Lecture 27 – λ α β: The Trinity Unlimited
- Lecture 28 – Data as Functions Unlimited
- Lecture 29 – Data and Fixpoints Unlimited
- Lecture 30 – Normal Forms Unlimited
- Lecture 31 – Typed λ Calculus Unlimited
- Lecture 32 – Monomorphism Unlimited
- Lecture 33 – Polymorphism Unlimited
- Lecture 34 – Type Checking Unlimited
- Lecture 35 – Contexts Unlimited
- Lecture 36 – Abstracts Unlimited
- Lecture 37 – Procedures Unlimited
- Lecture 38 – Meanings Unlimited
- Lecture 39 – Parameters Unlimited
- Lecture 40 – The Future Unlimited