(Click image for larger picture.)
CS 3723/3721 Programming Languages
Recitations for Fall 2002
Below, "text" refers to chapters and sections in
Concepts of Programming Languages, Fifth Ed.
by Robert W. Sebesta, Addison-Wesley, 2002.
- No goto.
Elimnate all gotos from an arbitrarily
complicated program that includes them. (Most languages except Java
have a goto construct, although all languages
discourage its use.) [Text: 1]
Lexical Analysis and Finite State Machines.
Work on FSMs for C-style comments and for floating
point numbers, [Text: 4.2]
Formal Grammars.
Write parse trees, derivations, and new grammars. [Text: 3.3]
Parsing -- Bottom-up, Shift-Reduce.
Carry out a bottom-up parse by hand, using the shift-reduce
method and a table for a specific grammar. [Text: 4.5]
Parsing -- Top-down, Recursive Descent.
Write a recursive descent parser for a given grammar.
[Text: 4.4]
Semantic Actions, Compilers.
Add semantic actions to translate arithmetic expressions
to machine language. [Class notes]
C/C++/Java: Arrays, Enumerated Types, and Pointers.
Work on examples of these in the different languages. [Text: 6]
C/C++/Java: Functions and Parameters.
Examples and implementation methods. [Text: 9, 10]
C/C++/Java: structs and classes.
Examples in the different languages. [Text: 11, 12]
C/C++/Java: Genericity.
Strategies to achieve generic code in the different
languages. [Text: 9.8]
Lisp and Functional Languages.
Practice with lisp and with writing simple recursive
functions. [Text: 15]
Prolog and Logic Programming.
Practice with simple database examples using Prolog. [Text: 16]
Postscript and 2-dimensional Graphics.
Using simple Postscript to create your own business card.
[Online "Blue" book]
Revision date: 2002-07-20.
(Please use ISO
8601, the International Standard.)