CMPS 350 Concepts of Programming Languages
Course Description
Computer Science Department
California State University, Bakersfield
V.1, 5/6/2003
Catalog Description : |
Basic issues in programming language design and implementation. Context-free grammars, static semantics and dynamic semantics, lexical analysis, parsing, variable declarations and types, references, values, pointers, expression and assignment statements, objects, classes, inheritance and polymorphism are covered. |
||||||||||||
Prerequisite: |
CMPS 223 |
||||||||||||
Units: |
5 |
||||||||||||
Coordinator: |
Wei Li |
||||||||||||
Goals/Objectives: |
|
||||||||||||
Current Text(s): |
|
||||||||||||
Topics: |
Overview of programming languages (PL1): History of programming languages; Brief survey of programming paradigms; Procedural languages; Object-oriented languages; Functional languages. Virtual machines (PL2): The concept of a virtual machine; Hierarchy of virtual machines; Intermediate languages. Introduction to language translation (PL3): Comparison of interpreters and compilers; Language translation phases (context-free grammars †, static semantics and dynamic semantics †, lexical analysis, parsing). Declarations and types (PL4): The conception of types as a set of values with together with a set of operations; Declaration models (binding, visibility, scope, and lifetime); Overview of type-checking. Abstraction mechanisms (PL5): Procedures, functions, and iterators as abstraction mechanisms; Parameterization mechanisms (reference vs. value, pointers †); Expression and assignment statements †. Object-oriented programming (PL6): Object-oriented design; Encapsulation and information-hiding; Separation of behavior and implementation; Classes and subclasses; Inheritance (overriding, dynamic dispatch); Polymorphism (subtype polymorphism vs. inheritance); Class hierarchies. Functional programming (PL7): Overview and
motivation of functional languages † Topics not included in ACM curricula |
||||||||||||
ACM Sub-Areas or Units Covered : |
PL: Programming Languages |
||||||||||||
Laboratory: |
Students will spend two and half hours each week on the
following subjects: (8) Discuss objects, classes, inheritance and polymorphism.
|
||||||||||||
Oral and Written Communication: |
|
||||||||||||
Social and Ethical Issues: |
|
||||||||||||
Problem Analysis: |
Students investigate basic concepts in programming languages, and understand methodology for high level programming language implementation and design. |
||||||||||||
Solution Design: |
Conceptual design and implementation of programming languages and will be conducted in laboratory hours. |
||||||||||||
Version & Date |
Version 1, 5/6/2003 |
||||||||||||
Comments |
The first draft based on ACM curricula 2001 in the format of ABET sample course description. |