Week | Homeworks | Class Notes | Textbook reading assignments | Tests | Due Dates |
13. | Homework 13 | Parser Implementation
Compiler compiler | Sections 2.2 and 2.3 | 4/26/23 | |
12. | Homework 12 | Parsers
| Sections 2.2 and 2.3 | Quiz 12 | 4/19/23 |
11. | Homework 11 | Regular grammars
| Sections 2.2 and 2.3 | Quiz 11 | 4/12/23 |
10. | Homework 10
Class Exercise 3 | Formal grammars
General recursive transformation | Sections 2.1 and 2.2 | Quiz 10 | 4/5/23 |
9. | Homework 9 | Deep Recursion
Dynamic Programming Catch-throw Optional & unlimited function parameters | Sections 10.2, 10.5, 10.6 | Quiz 8
Midterm: Wednesday, March 22 | 3/13/23 |
8. | Homework 8
Class Exercise 2 | Tail Recursion
Symbols in Lisp | Sections 10.2, 10.5, 10.6 | Quiz 8
Midterm: Wednesday, March 22 | 3/8/23 |
7. | Homework 7 | Recursion
Symbols in Lisp | Sections 10.2, 10.5, 10.6 | Quiz 7 | 3/1/23 |
6. | Homework 6 | Scope
Symbols in Lisp | Sections 10.2, 10.5, 10.6 | Quiz 6 | 2/22/23 |
5. | Homework 5 | Scope
Mutator functions | Sections 10.2, 10.5, 10.6 | Quiz 5 | 2/15/23 |
4. | Homework 4 | First class objects
Loops: while | Sections 10.2, 10.5, 10.6 | Quiz 4 | 2/8/23 |
3. | Homework 3 | First class objects
Loops: dotimes and dolist | Sections 1.6, 10.2 | Quiz 3 | 2/1/23 |
2. | Homework 2 | Introduction
Variables and functions in Lisp | Sections 1.1, 1.2, 1.3 | Quiz 2 | 1/25/23 |
1. | Lab 1 Homework 1 | Common Emacs key bindings
Introduction to Lisp | Sections 1.1, 1.2, 1.3 | Quiz 1 | 1/18/23 |
Links
Emacs Lisp interface -
quick reference and links
Prerequisites: C243 Data Structures and C335 Computer Structures.
Textbook: Programming Language Pragmatics, 3rd edition, by M. L. Scott. Morgan Kaufman, 2009.
Course description:Design and implementation of programming languages: syntax; semantics; comparison of programming paradigms such as imperative, functional, logic, and object oriented. Implementation of concepts such as binding, scope, looping, branching, subprograms and parameter passing, tasks and concurrency, heap management, exception handling, templates, inheritance, overloading.
Grading system:
Guidelines for assignments:
Programming environment:
Course Objectives
The student who completes this course: