Instructors: Madhavan Mukund, S P Suresh
Teaching Assistants: Aryan Agarwala (aryan), Samiparna Biswas (samiparna), Harish Chandramouleeswaran (harishc)
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)
TBA
Lecture 1, 5 Jan 2023 (Class Notes (pdf), Slides (pdf) )
Mitchell: Chapter 9 (upto 9.2.2), Chapter 10 (upto 10.2)
Lecture 2, 10 Jan 2023 (Class Notes (pdf), Slides (pdf) )
Lecture 3, 12 Jan 2023 (Class Notes (pdf), Slides (pdf) )
Lecture 4, 17 Jan 2023 (Slides (pdf) )
Java: class hierarchy and polymorphism
Lecture 5, 19 Jan 2023 (Slides (pdf) )
Abstract classes and interfaces
Lecture 6, 24 Jan 2023 (Slides (pdf) )
Variables, functions, allocation
Lecture 7, 24 Jan 2023 (Slides (pdf) )
Functions and Call Stack
Lecture 8, 2 Fev 2023 (Slides (pdf) )
Heaps and memory management
Lecture 9, 7 Feb 2023 (Class Notes (pdf), Slides (pdf) )
Abstract classes and interfaces
Lecture 10, 9 Feb 2023 (Class Notes (pdf), Slides (pdf) )
Lecture 11, 14 Feb 2023 (Class Notes (pdf), Slides (pdf) )
Lecture 12, 16 Feb 2023 (Class Notes (pdf), Slides (pdf) )
Lecture 13, 28 Feb 2023 (Class Notes (pdf), Slides (pdf) )
Lecture 14, 2 Mar 2023 (Class Notes (pdf), Slides (pdf) )
Lecture 15, 7 Mar 2023 (Class Notes (pdf), Slides (pdf) )
Lecture 16, 9 Mar 2023 (Class Notes (pdf), Slides (pdf) )
Lecture 17, 14 Mar 2023 (Slides (pdf) )
Introduction to the λ-calculus
Lecture 18, 21 Mar 2023 (Slides (pdf) )
Encoding arithmetic functions