CS216 Programming Languages Final Exam Review
Spring 2000
-
Introduction
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
-
Describing Syntax and Semantics
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.
-
Names, Bindings, Type Checking, and Scopes; Data Types
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.
-
Expressions and Assignment Statements; Statement-Level Control
Structures; Subprograms
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.
-
Concurrency
Multiprocessor architectures: SIMD, MIMD
Subprogram-level concurrency: Multi-process and multi-thread.
Tasks Synchronization: Semaphores, Monitor, Message Passing
-
Exception Handling
Basic concept
Exception Handling in Ada, C++, and Java.
-
Functional and Logical Programming
Functional programming basics (What, Why, How).
Simple recursive Lisp program.
Symbolic Logic programming basics (proposition, inference
rules, predicate calculus).
Simple Prolog program.