CSE 307 Back to CSE Courses

Course CSE307
Title Principles of Programming Languages
Credits 3
Course Coordinator C.R. Ramakrishnan
Current Catalog Description

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.


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.
Textbook 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 CSE307
Department of Computer Science • Songdo Moonwha-ro 119, Yeonsu-Gu, Incheon, Korea 406-840 • Tel:+82-32-626-1202 Fax:+82-32-626-1199
Stony Brook University Home Page