Date: Tue, 10 Dec 1996 16:46:31 GMT
Server: NCSA/1.4.2
Content-type: text/html
CSE 413 (Winter 1996) Tentative Schedule
CSE 413 (Winter 1996)
Tentative Schedule of Topics
1. Introduction (Jan 2)
Why programming languages? Programming language paradigms
Interpreters vs compilers
Overview
2. Lisp (Jan 2, 4, 9, 11)
Introduction
Basic functions and expressions of Lisp
Alternative control structures
Rules of evaluation
How to write
recursive functions, etc.
3. Programming Techniques with Lisp (Jan. 16).
String and File manipulation in Lisp. Examples:
fileanal.cl, and
postcalc.cl,
An evaluator in Lisp with extra tracing features
Production systems and Pattern matching (Jan 18)
4. Dynamic Memory Management (Jan 23)
Allocation of space for data
Garbage Collection
5. Prefix, Infix, and Postfix notations and conversions (Jan 23)
Infix to prefix conversion with interpretation by Lisp
Stack machines and their emulation in Lisp
Infix to postfix conversion with stack machine evaluation
6. Lexical analysis (Jan 25)
Regular expressions
Finite-state automata
Regular expressions for tokens of programming languages
A simple lexical analyzer in Lisp (Assignment 4)
7. Parsing (Jan 30)
Grammars
Context-free grammars
Recursive-descent parsing
Lisp implementation
Other parsing techniques
8. Translation and Code Generation (Jan 30)
Syntax-directed translation
Three-address code
9. Logic Programming (Feb 1)
Horn-clause logic
Unification.
Prolog syntax and semantics
Logic programming in Lisp
10. MCL Graphics and
Visual Programming
(Feb 6 and 13)
Graphics in MCL
Data flow paradigm
Drawing programs for VP
Liveness
Iconic representation of operations and data
Midterm Exam (Feb 8)
11. English-language programming
(Feb 15)
Semantic grammars
Augmented transition nets
Grammars for English
Mixed-initiative interfaces
12. The C language (Feb 20)
Essentials of C
Example program:
print10.c
Example program:
bincard.c
13. Introduction to Java (Feb 22)
How to construct the Hello World applet.
Sample graphics program (HTML and applet)
Sample graphics program (Java source)
14. Expert System Languages
(Feb 27)
Rule-writing
Inference techniques
Implementation of shells
15. Hybrid Programming Environments (Feb 29)
Integration of Lisp with Domain-Specific Libraries
Embedding sublangages in Lisp
Live demonstration of the XFORM programming environment.
16. C-oriented Language processing tools (Mar 5)
Lex
Yacc
17. Trends in Programming Languages (Mar 5)
Support for Reuse
Increased functionality
Ease of expressing computations
Making programmers of nonprogrammers
Little languages
Scripting languages
End-user languages
Support for safety/reliability in software
Aesthetic beauty
Ultimate power
Project Presentations (Mar 7)
Review for Final Exam (Mar 8)
(meeting 4:00-5:00 PM in Sieg 422)
Final Examination (Mar 11)
tanimoto@cs.washington.edu
29 December 1995.