Course CSE307
Title Principles of Programming Languages
Credits 3
Course Coordinator

C.R. Ramakrishnan


Presents examples of important programming languages and paradigms such as LISP, ALGOL, ADA , ML, Prolog, and C++. Students write sample programs in some of the languages studied. The languages are used to illustrate programming language constructs such as binding, binding times, data types and implementation, operations (assignment data-type creation, pattern matching), data control, storage management, parameter passing, and operating environment. The suitability of these various languages for particular programming tasks is also covered.

Bulletin Link


C or higher: CSE 219 or CSE 260; CSE 220; CSE major.

Course Outcomes
  • Knowledge of, and ability to use, language features used in current programming languages.
  • An ability to program in different language paradigms and evaluate their relative benefits.
  • An understanding of the key concepts in the implementation of common features of programming languages.


Scott, Michael L., Programming Language Pragmatics (3rd ed.), Morgan Kaufmann, 2009, ISBN-10: 0123745144.

Major Topics Covered in Course
  • Principles of Language Design
  • Specification of Language Syntax
  • Survey of Procedural and OO Languages
  • Intro. to Functional Programming
  • Intro. to Logic Programming
  • Programming Language Semantics
  • Values
  • Bindings
  • Types
  • Programming Language Constructs
  • Expressions
  • Statements
  • Procedures and Environments
  • Parameter Passing

Laboratory Projects
  • Syntax and grammars, 1 week
  • Functional Programming, 2 weeks
  • Logic Programming, 2 weeks
  • Programming Language Semantics, 2 weeks
  • Run-time Structures: Interpreters, 2 weeks

Course Webpage