ECS 140A: Programming Language

ECS 140A
Programming Language
Effective Term
2019 Fall Quarter
Learning Activities
Lecture: 3 hours
Discussion: 1 hour
Syntactic definition of programming languages. Introduction to programming language features including variables, data types, data abstraction, object-orientedness, scoping, parameter disciplines, exception handling. Non-imperative programming languages. Comparative study of several high-level programming languages. GE Prior to Fall 2011: SciEng. GE: SE.
ECS 050; (ECS 34 or ECS 036C); ECS 020; ECS 150 recommended
Enrollment Restrictions
Pass One open to Computer Science and Computer Science & Engineering Majors only.

Summary of Course Content

  1. Overview and History
  2. Syntax and Parsing a. BNF, syntax diagrams, parse trees, simple parsing technique
  3. Variables and Expressions
    • Declarations, attributes, aliases, binding
    • Side effects, precedence, order of evaluation
  4. Control Structures
    • Alternation, iteration, generators
  5. Data Types and Type-Checking
    • Polymorphism and overloading, conversion and coercion
    • Static vs. dynamic type-checking
  6. Modularization and Objects
    • Separation of specification and implementation
    • Generics and instantiation
    • Inheritance
    • Dynamic binding and its implementation
  7. Data Abstraction
    • Mutability, adequacy, categorization of operations
    • Abstract specification
  8. Scope and Extent
    • Block structure, visibility and holes, contour model
    • Dynamic vs. static scope
    • Run-time stack and heap implementation
  9. Parameter Passing
    • Parameter transmission methods, procedural parameters
  10. Exception Handling
    • Notions of raising, handling, and propagating
  11. Non-Imperative Programming Paradigms
    • Functional programming languages
    • Logic programming languages
  12. Additional Language Paradigms
    • Concurrent, dataflow, constraint

Illustrative Reading
K. Louden, Programming Languages: Principles and Practice, Thompson, 2nd edition, 2003

Potential Course Overlap
There is no significant overlap with other courses.

Final Exam

Justification for No Final Exam
final exam

Course Category