CS 3323
Topics in Programming Languages
Review for Final Exam, Spring 1999 (May 11, 1:30-4:15 pm)
- Lisp Project.
- Emphasis on last two parts of the project:
- Initial evaluator, eval. [Concepts: Recursive evalution
of S-expressions. Practicing a functional programming style
and the use of abstract data types.]
- setq, cond and defun.
[Concepts: Use of association lists to implement
setq and defun.
Use of selective evaluation to implement cond.
Use of eval in an environment to implement
defun.]
- Material related to a larger project in C:
- Features of C that not all students are familiar to:
union, enum, typedef
- Features of C supporting software development that students
were able to practice with: recursion, use of separate files
and header files, functional programming style with structs
and pointers.
- C++.
- ``Better C'' features: new and delete,
<< and >> for I/O, inline functions,
const variables, reference parameters,
other miscellaneous features.
- Classes. [Text, Chapters 6 and 7.]
- Operator overloading. [Text, Chapter 8, and Assignment 1 (Rational
numbers). Handouts related to complex numbers and to Strings.]
- Inheritance, virtual functions, polymorphism. [Text, Chapters
9 and 10, and Assignment 2 (Book class). Handout related to
the shape class.]
- Templates. [Text, Chapter 12. Handouts showing a stack template.]
- A little about selected further topics: Exceptions, data
structures, strings, stadard template library (STL).
- Java.
- Applications. [Text, Chapter 2. Handouts with Java
applications simulating throwing dice.]
- Arrays and the Java storage model. [Text, Chapter 5.]
- Simple applets, including the events of text in a window
and a button pushed. [Text, all through, and Assignment 1
(High-performance sort applet). Handout with a Java applet that
simulates throwing dice.]
- Data structures, including binary trees. [Text, Chapter 17.
Handouts showing a binary tree in Java, C++, and C.]
- Simple graphics, drawing ovals, etc. [Text, Chapter 9, and
Assignment 2 (Blackjack applet). Handout giving a program
that draws colored ovals.]
- Exceptions. [Handout showing first example in Chapter 12,
along with the similar C++ example.]
References:
- For the Lisp project: Online material.
- For C++: Deitel and Deitel, C++: How to Program,
2nd Ed., Prentice-Hall, 1998.
- For Java: Deitel and Deitel, Java: How to Program,
2nd Ed., Prentice-Hall, 1998.