Principles of Programming Languages
Overview
POPL is meant as a precursor for Compiler Construction. This course takes you through the design of programming languages and programming grammars. It also covers programming paradigms like functional programming (LISP
, logic programming (Prolog
) and C++
. You will also learn the various data structures and ideas involved in the backend of these languages such as activation records
, tail recursion
, etc.
Navigation
Prerequisites
This course is a prerequisite for:
This course has the following prerequisites:
Textbooks
Title | Author(s) | Edition |
---|---|---|
Introduction to Programming Languages | Arvind Kumar Bansal | 5th (2014) |
Fundamentals of Programming Languages | Ellis Horowitz | 2nd (1984) |
Programming Languages : Principles and Practice | Kenneth C. Louden & Kenneth A. Lambert | 3rd (2011) |
Programming Language Design Concepts | David A. Watt & William Findlay | 2nd (2004) |
Concepts of Programming Languages | Robert W. Sebesta | 11th (2016) |
Compilers : Principles, Techniques & Tools | Alfred V. Aho, Monica S. Lam, Ravi Sethi & Jeffrey D. Ullman | 2nd (2007) |
Videos
- LISP Tutorial, Derek Banas
- Prolog Tutorial, Derek Banas
- C++ Tutorial, freeCodeCamp
- Postfix & prefix:
- Leftmost & rightmost derivation, Neso Academy
- Ambiguous grammar, Neso Academy
- Left Recursion & Left Factoring, Knowledge Gate