InfoCoBuild

Principles of Programming Languages

Principles of Programming Languages. Instructor: Prof. S. Arun Kumar, Department of Computer Science and Engineering, IIT Delhi. 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)

Introduction


Lecture 01 - Introduction
Lecture 02 - Syntax
Lecture 03 - Grammars
Lecture 04 - Ambiguity
Lecture 05 - PL0: Syntax
Lecture 06 - Semantics
Lecture 07 - Syntactic Classes
Lecture 08 - Transition Systems
Lecture 09 - PL0: Expressions
Lecture 10 - Binding
Lecture 11 - Environments
Lecture 12 - Declarations
Lecture 13 - Commands
Lecture 14 - Stores
Lecture 15 - Summary So Far
Lecture 16 - Declarations and Commands
Lecture 17 - Blocks
Lecture 18 - Qualification
Lecture 19 - Pragmatics
Lecture 20 - Data
Lecture 21 - Structured Data
Lecture 22 - Sequences
Lecture 23 - Control
Lecture 24 - Non-Determinacy
Lecture 25 - The λ Notation
Lecture 26 - The λ Calculus
Lecture 27 - λ α β: The Trinity
Lecture 28 - Data as Functions
Lecture 29 - Data and Fixpoints
Lecture 30 - Normal Forms
Lecture 31 - Typed λ Calculus
Lecture 32 - Monomorphism
Lecture 33 - Polymorphism
Lecture 34 - Type Checking
Lecture 35 - Contexts
Lecture 36 - Abstracts
Lecture 37 - Procedures
Lecture 38 - Meanings
Lecture 39 - Parameters
Lecture 40 - The Future

References
Principles of Programming Languages
Instructor: Prof. S. Arun Kumar, Department of Computer Science and Engineering, IIT Delhi. This course introduces the major programming paradigms, and the principles and techniques involved in design and implementation of modern programming languages.