CS 3200/5200N: Organization of Programming Languages
Spring 2016
Time and Location: Tue, Thu 12:00pm – 1:20pm, WALT 245
Instructor: Razvan Bunescu
Office: Stocker 341
Office Hours: Tue, Thu 10:30 – 11:30am, or by email appointment
Email: bunescu @ ohio edu
Teaching Assistant: Sadegh Mirshekarian (sm774113 @ ohio edu)
Office: Stocker 285
Office Hours: Mon, Wed 9:00 – 10:30am, or by email appointment
Textbook:
Programming Language Pragmatics (3rd edition) by Michael L. Scott. Elsevier/Morgan Kaufmann, 2009.
Recommended Supplementary Text:
Compilers: Principles, Techniques, & Tools (2nd edition) by Aho, Lam, Sethi, and Ullman. Addison-Wesley, 2007.
Prerequisites:
CS 2650 and (CS 3000 or MATH 3050) and C or better in CS 2401
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:
Sample Exams:
Resources:
- ANSI C:
- Ada:
- Scheme:
- Python:
- Ruby:
- Prolog: