CIS 482 Oganization of Programming Languages (3)

Catalog Description:

Study of the features of programming languages and the methods used to specify and translate them. Topics include LISP, virtual machines, syntax and semantics, binding times, scoping rules, implementation choices, procedure calling, and parameter passing. (Offered spring semester only.)


Prerequisites:


CIS 385 Data Structures and Algorithms

Required Course Materials:


Sebesta, R. W., Concepts of Programming Languages, 10th edition, Addison-Wesley, 2012 (ISBN: 978-0-13-139531-2)

Course Coordinator:


Eugene G. Rohrbaugh, Ph.D., Professor of Computer Science

Course Audience:


Required for Computer Information Science majors. Open to any major.

Course Objectives:

To successfully complete this course, students will:

  1. Outline a brief history of programming languages; describe the four major programming paradigms; produce validated and verified code in each.
  2. Define syntax, semantics, names, types and functions in the context of programming languages.
  3. Demonstrate understanding of syntax and semantics by constructing grammars, producing parse trees, (dis)proving generative equivalence of grammars; and describing the semantics of a given code segment.
  4. Demonstrate understanding of naming and binding; basic and non-basic types; static and dynamic typing; function call and return; parameter passing; and recursion.
  5. Work in a team to design and build a moderately complex application in a functional or logic programming paradigm.

Topics:

  1. Programming paradigms
  2. Syntax and semantics
  3. Lexical and syntactic analysis
  4. Names and types
  5. Scoping and binding
  6. Procedure calls and parameters
  7. Functions and functional programming
  8. Predicate logic and logic programming

 

Revised: October 2013 (textbook); February 2013 (course renumbering); September 2011 (objectives); July 2011 (catalog description)

Return to Course Index