Notes
These links contain various documents that will be referred to in class.
General
The Evolution of Programming Languages
Variables in programming languages
Syntax
The Syntax Module
(A
Self-Tes
t
with
Answers
accompanies it)
Parsing Techniques - A Practical Guide
(
Title page
)
JavaCC home page
JavaCC Tutorial
Interpreters
The JavaCC parser generator
and a
tutorial
for it
The JavaCC parser generator and a 4 function calculator
An Java/JavaCC interpreter for an imperative language
Setting up Eclipse to use JavaCC
Run-time structures
Activation records in static scoping
Static and dynamic scoping in Perl
Parameters
Sample code for calling a procedure using dynamic scoping
(
search method
)
Sample code for calling a procedure using static scoping
(
search method
)
Sample code for calling a procedure using a static pointer chain
(
search method
)
Sample code for calling a procedure with pass-by-value parameters
Sample code for calling a procedure with pass-by-value and pass-by-reference parameters
Semantics
Operational semantics
Axiomatic semantics
Denotational semantics
Lambda Calculus Reference
Formalized Lambda Calculus
From syntax to Java via semantics
(
Scheme version
) (
Haskell version
)
Functional Languages
Introduction
List processing in Scheme
Scheme functions
Scheme-- in Scheme - a simple interpreter
and
Two ways to handle recursion
Definition of the Lambda Calculus
and the
use of combinators
to describe common objects
Pattern parameters in ML and Haskell
Type Inference and Lazy Evaluation
A Gentle Introduction to ML
A Gentle Introduction to Haskell
The latest ML documentation
Interpreters for functional languages
Object-Oriented Languages
Encapsulation
Inheritance
Late binding or method polymorphism
Example classes in Java
A C++ Dynamic Array
A C++ Concept Map
Example use of Collections in Java
An STL Tutorial
Differences Between C++ and Java
(short)
Differences between Java and C++
(longer)
Comparing C++ and Java
(very thorough)
Java Threads
The new standard for C++
Logical Languages
How Prolog Can Do Arithmetic
An Introduction to Logic
Backtracking in Prolog
List processing in Prolog
Non-logical features in Prolog
Tests
Topic lists for the first test
Topics lists for the final exam.
Examples questions for the first test
First test given in Fall 98
,
with sample answers
First test given in Spring 01, with sample answers
Take-home final given in Fall 00
, with
sample answers
.
Final from Spring 2003
with
answers
Final from Spring 2005
with
answers