Credits: 1 unit (4 credit hours)
Contact Hours: 3 lecture
Instructor: Professor Ge Xia
Last Taught: Spring 2013
Text Book: Programming Languages: an Interpreter-Based Approach.
By Ramsey and Kamin. (Preprint.)
Description: An introduction to the theory of the design and implementation of contemporary programming languages. Topics include the study of programming language syntax and semantics, translators, and imperative, functional, logic and object-oriented language paradigms. Lecture/laboratory.
Prerequisites: CS202 (Analysis of Algorithms) and
CS203 (Computer Organization)

Specific Course Goals:

After successfully completing this course, the student will be able to:

  • Understand and use the major underlying principles of modern programming languages.
  • Understand and use the basic typing systems.

Student Outcomes:

ABET/CAC Outcome 1 Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
ABET/CAC Outcome 6 Apply computer science theory and software development fundamentals to produce computing-based solutions.

Topics covered:

  • Imperative programming
  • Operational semantics
  • Applicative programming
  • First-class functions and closures
  • Higher-order functions
  • Polymorphism and polymorphic types
  • Type inference
  • From Operational semantics to interpreter
  • Type systems and polymorphic type systems
  • Object-oriented Programming
  • Logic Programming