Instructors: Madhavan Mukund, S P Suresh
Teaching Assistants: Ashwin Baskar (ashwin), Arghyadip Chakraborty (arghyadip), Shubh Sharma (shubhsharma)
Evaluation:
Quizzes (10%), assignments (30%), midsemester exam (20%), final exam (40%)
Copying is fatal
Textbooks and lecture notes:
John C Mitchell: Concepts in Programming Languages, Cambridge University Press (2004)
Michael L Scott: Programming Language Pragmatics, (4th edition), Morgan Kaufmann (2016)
Alfred V Aho, Monica S Lam, Ravi Sethi, Jeffrey D Ullman: Compilers: Principles, Techniques, and Tools, Pearson (2013)
Madhavan Mukund: Lecture notes on Programming Language Concepts (2004)
Madhavan Mukund: Lecture notes on Generic Programming in Java (2006)
Assignment 1, 11 April
2024, due 22 April 26 April 2024.
Assignment 2, 25 April 2024, due 3 May 2024.
Lecture 1, 9 Jan 2024 (Class Notes (pdf))
Mitchell: Chapter 9 (upto 9.2.2)
Lecture 2, 11 Jan 2024 (Class Notes (pdf))
Mitchell: Chapter 10 (upto 10.2)
Lecture 3, 16 Jan 2024 (Class Notes (pdf))
Lecture 4, 18 Jan 2024 (Class Notes (pdf) )
Lecture 5, 23 Jan 2024 (Slides (pdf) )
Java: class hierarchy and polymorphism
Interfaces
Lecture 6, 25 Jan 2024 (Slides (pdf) )
Lecture 7, 30 Jan 2024 (Slides (pdf) )
Lecture 8, 01 Feb 2024 (Slides (pdf) )
Reading material: (Note, there will be details in the references below that were not discussed in class.)
Lecture 9, 08 Feb 2024 (Class Notes (pdf), Rust Notebook (source, pdf) )
Lecture 10, 13 Feb 2024 (Class Notes (pdf), Rust Notebook (source, pdf) )
Lecture 11, 15 Feb 2024 (Class Notes (pdf), Rust Notebook (source, pdf) )
Lecture 12, 20 Feb 2024 (Slides (pdf) )
Lecture 13, 22 Feb 2024 (Rust Notebook (source, pdf) )
Lecture 14, 05 Mar 2024 (Slides (pdf) )
Lecture 15, 07 Mar 2024 (Slides (pdf) )
Lecture 16, 14 Mar 2024 (Rust Notebook (source, pdf) )
Lecture 17, 19 Mar 2024 (Slides (pdf) )
Lecture 18, 21 Mar 2024 (Slides (pdf) )
Lecture 19, 26 Mar 2024 (Slides (pdf) )
Lecture 20–21, 28 Mar/04 Apr 2024 (Slides (pdf) )
Turing machines and recursive functions
Lecture 22, 09 Apr 2024 (Slides (pdf) )
Properties of reduction
Lecture 23, 16 Apr 2024 (Slides (pdf) )
Typed λ-calculus
Lecture 24, 18 Apr 2024 (Slides (pdf) )
Lecture 25, 23 Apr 2024 (Slides (pdf) )