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.
Prerequistes:   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.
    (ABET/CAC Outcome I)
  • Understand and use the basic typing systems.
    (ABET/CAC Outcome A)

Student Outcomes:

  ABET/CAC Outcome A   An ability to apply knowledge of computing and mathematics appropriate to the discipline.
  ABET/CAC Outcome I   An ability to use current techniques, skills, and tools necessary for computing practice.

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