CS320/520N: Organization of Programming Languages
Winter 2012
Time and Location: Tue, Thu 3:10pm – 5:00pm, Grover E218
Instructor: Razvan Bunescu
Office: Stocker 337
Office Hours: Tue, Thu 11am – 1:00pm, or by email appointment
Email: bunescu @ ohio edu
Textbook:
Concepts of Programming Languages (9th edition) by Robert W. Sebesta. Addison-Wesley, 2009.
Recommended Supplementary Text:
Compilers: Principles, Techniques, & Tools (2nd edition) by Aho, Lam, Sethi, and Ullman. Addison-Wesley, 2007.
Prerequisites:
CS240B (Introduction to Computer Science)
CS300 (Discrete Structures)
Course description:
This course introduces the fundamental syntactic and semantic concepts underlying modern programming languages. The imperative, functional and logic programming paradigms will be discussed, with illustrative examples in C/C++, Java, Ada, Scheme, Python, and Prolog.
Major topics include:
Context Free Grammars, Lexical Analysis and Syntactic Parsing.
Bindings, Type Checking and Scopes.
Expressions, Control Structures and Functions.
Lecture notes:
Resources:
- ANSI C:
- Ada:
- Scheme:
- Python:
- Ruby:
- Prolog: