Topics to study for CSC330 Final - Summer 2007
The exam is open book.
Chapter and Subsections to read: 3, 4.1, 4.2, 4.4, 4.5, 5, 6, 9, 10,
12, 15
Notes/slides are available from the Schedule link.
- LISP
- History
- Basic Commands/Syntax
- Understanding of simple LISP programs
- Converting simple LISP programs to ML and vice versa
- Compilers and Syntax
- Structure of a compiler
- Lexical Analysis
- Syntax Analysis/Parsing
- Grammars and Parse Trees
- Lambda Calculus
- Syntax (difference between abstract and application)
- Variable binding
- Renaming bound variables
- alpha-equivalence, beta-equivalence
- Reduction
- ML and functional programming
- History
- Basic syntax
- Lists/Tupples/Records
- Higher-order functions
- Datatypes
- Currying
- Type safety, checking and inference
- Polymorphism and overloading
- Tail-recursive functions
- ML Module System
- Signatures, Structures and Functors
- Concepts in Object Oriented Languages
- Dynamic lookup
- Abstraction
- Subtyping
- Inheritance
- Inheritance in not subtyping
- C++
- Constructors/destructors (order of calling)
- Copy constructor/assignment operator
- Dynamic lookup using virtual functions
- Pointers, references, const
- Streams and the standard template library
- Surrogates
- Logic Programming - Prolog
- Horn clauses
- Expressing knowledge about a problem using Prolog
- Order-of-evaluation
- Search trees for small prolog programs