Other links:

Other links:

Programming Language Design and Implementation

This course will introduce you to the basics of designing a language for computer systems, and the inherent, associated tradeoffs. This course will help you change your perspective from that of a consumer of programming languages and help you become a producer.

List of Topics to be Covered

Introduction to programming language Design; Interpretation vs. Compilation; Basics of Linking and Loading; Regular Expressions, Context-Free Grammars; Specifying Syntax - Parsing, Scanning; Assembly basics; HLL to Assembly; Stacks and Heaps, Int/FP Arithmetic; ISA Basics; Compiling for Contemporary Architectures, Names and Bindings, Scoping rules, Dynamic Method Binding; Control Flow: Expressions, sequencing, and selection; Control Flow: Iteration and recursion; Data types; Type systems, type checking; Pointers, references, and dynamic storage management; Subroutines: Stack management, parameter passing; Exceptions and handling mechanisms; Method Binding; Inheritance; Polymorphism; Data Abstraction; Classes; Inheritance; Runtimes - Memory Management and Garbage Collection; Functional Languages; Domain Specific Languages; Transactional Memory.

Study at Ashoka

Study at Ashoka