CS 476 - Exam 1 Topics
The first exam will be held on Thursday, 3/8/2007, during lecture.
It will cover the following material:
- Chapter 1: Overview
- Three Principles: Syntax, Name & Type, Semantics
- Design Goals:
- Simplicity and Readability
- Clarity About Binding
- Reliability
- Support
- Abstraction
- Orthogonality
- Efficient Implementation
- Chapter 2: Syntax
- Grammars, BNF and EBNF Form
- Parse Trees
- Ambiguous Grammars
- Abstract Syntax
- Chapter 4: Names
- Binding, Static & Dynamic
- Identifiers: Keywords, Variables
- Scope, Lifetime, Visibility, Overloading
- Chapter 5: Types
- Static Typing & Dynamic Typing
- Weak Type Checking & Strong Type Checking
- Equivalence: Name, Structural
- Chapter 7: Semantics
- Program State
- Assignment: Statement or Expression
- Control Flow
- Turing Complete
- Boehm-Jacopini Theorem
- Exceptions
- Chapter 9: Functions
- Parameters Actual/Arguments vs Formal/Parameter
- Pass-by-Value
- Pass-by-Reference
- Pass-by-Value-Result
- Pass-by-Result
- Pass-by-Name
- Activation Record, Runtime Stack
- Recursion
- Chapter 11: Memory Management
- Heap
- Dynamic Arrays
- Garbage Collection:
- Reference Counting
- Mark-Sweep
- Copy Collection