(CS 420) Programming Languages
Virtual machines, language translation, declarations and types, abstraction mechanisms, object-oriented programming.
Course Outcomes
1. Learn about interpreters as an architectural concept.
2. Learn how to write programs in a functional language: Racket.
3. Learn how to use BNF to describe data structures and how BNF drives the structure of programs.
4. Learn how programs can be described using abstract syntax and how that abstract syntax is manipulated.
5. Learn how to read and write interpreters.
6. Learn how programming language features are implemented.
7. Learn the vocabulary of programming language design, syntax, and semantics.
8. Develop an understanding of how programming languages differ.
9. Learn how to create language enhancements as a transformation of a simple syntax into a standard language.
10. Add the concept of little languages to your programming tool belt.