Survey and comparison of various programming languages and the concepts used in designing, specifying, and evaluating languages. Topics include formal specification, language constructs, translation, binding and binding times, and logic and functional programming. Prerequisite: CISS 350 or CISS 358.
Prerequisite(s) / Corequisite(s):
CISS 350 or CISS 358.
Course Rotation for Day Program:
Offered even Spring.
Most current editions of the following:
Concepts of Programming Languages
By Sebasta, R. W. (Addison-Wesley) Recommended
Programming Language Pragmatics
By Scott, M. L. (Morgan Kaufmann) Recommended
Programming Language Design and Implementation
By Pratt, T. W. & M. V. Zelkowitz (Prentice Hall) Recommended
To understand formal methods for describing language syntax, language design issues and tradeoffs, bindings and binding times, lexical analysis and parsing, and a wide variety of language constructs and associated implementation issues.
To explore a variety of languages including procedural, functional, and logic languages.
Explain how language syntax is defined using formal methods such as Backus Normal Form (BNF), Extended Backus Normal Form (EBNF).
Identify the main issues and tradeoffs one must consider when designing new programming languages.
Identify the language constructs that must be addressed when designing new programming languages.
Explain how to perform lexical analysis and parsing.
Explain binding and binding times.
Identify the characteristics associated with procedural, functional, and logic programming languages.
Create programs using procedural, functional, and logic programming languages.
Syntax, regular expressions, and grammars
Parsing, top-down, bottom-up, recursive decent
Binding and binding times
Design issues and design tradeoffs
subroutines and modularization
Functional and logic languages
Recommended maximum class size for this course: 20
NOTE: The intention of this master course syllabus is to provide an outline of the contents of this course, as specified by
the faculty of Columbia College, regardless of who teaches the course, when it is taught, or where it is taught. Faculty members teaching this
course for Columbia College are expected to facilitate learning pursuant to the course objectives and cover the subjects listed in the topical
outline. However, instructors are also encouraged to cover additional topics of interest so long as those topics are relevant to the course's
subject. The master syllabus is, therefore, prescriptive in nature but also allows for a diversity of individual approaches to course material.