Computer Science
| CS6613 | Programming Language Interpretation | 3 ch |
|---|---|---|
This course introduces core programming language concepts like scope, environments, lazy and eager evaluation, mutation, recursion, dynamic and static types, and memory management. We will study these language features mainly by writing interpreters. Our interpreters will be implemented in a small dialect of Racket (Scheme); by the end of course students should be able to construct interpreters with all of the important features of our implementation language. The last part of the course will take a deeper look at memory management, with a focus on garbage collection algorithms and performance tradeoffs. Prerequisites: Procedural programming (CS2263 or equivalent). Recursive data structures (CS2383 or equivalent). Exposure to functional programming concepts recommended (CS2613 or equivalent). Self study material will be available for those needing to catch up with Racket. | ||