CS216 Programming Languages Final Exam Review

Spring 2000

  1. Introduction

  2. Major Language Evaluation Criteria: Readability, Writability, and Reliability
    Strength and weakness of the following languages:
    a. Imperative languages: Fortran, Cobol, Visual Basic, C
    b. Object-oriented languages: Ada, C++, Smalltalk, Java
    c. Functional and Logic programming languages: Lisp and Prolog.
    d. Script/Shell/Query languages: Perl, JavaScript, tcl/tk, Unix Shell, SQL
     
  3. Describing Syntax and Semantics

  4. Context-Free Grammars, Backus-Naur Form (BNF) and EBNF
    Parse tree
    Attribute Grammars:  Syntax and semantic rules.
    Operational Semantics: Basic Process
    Axiomatic Semantics: Precondition and postcondition, Weakest Precondition.
     
  5. Names, Bindings, Type Checking, and Scopes; Data Types

  6. Type Bindings: Static and Dynamic
    Storage Bindings and Lifetime: Static/Stack-Dynamic/Explicit Heap-Dynamic/Implicit Dynamic variables
    Type Checking: Strong/Weak, Type casting
    Scope: Static/Dynamic.
    User-defined Structured Data Types
    Ponters/Reference variables.
     
  7. Expressions and Assignment Statements; Statement-Level Control Structures; Subprograms

  8. Side Effects.
    Control structures: sequential, selection, iteration, and subroutine calls.
    Parameter passing: pass-by-value, pass-by-result, pass-by-value-result, pass-by-name, pass-by-reference.
     
  9. Concurrency

  10. Multiprocessor architectures: SIMD, MIMD
    Subprogram-level concurrency: Multi-process and multi-thread.
    Tasks Synchronization: Semaphores, Monitor, Message Passing
     
  11. Exception Handling

  12. Basic concept
    Exception Handling in Ada, C++, and Java.
     
  13. Functional and Logical Programming

  14. Functional programming basics (What, Why, How).
    Simple recursive Lisp program.
    Symbolic Logic programming basics (proposition, inference rules, predicate calculus).
    Simple Prolog program.