CSE 413 (Winter 1996)
PROGRAMMING LANGUAGES AND THEIR IMPLEMENTATION

Instructor:
Steve Tanimoto, Department of Computer Science and Engineering, University of Washington, Seattle, WA 98195.
TA:
Ruth Anderson
Meetings:
Tuesdays and Thursdays 10:30 AM to 11:50 AM in Sieg 325. (EXCEPT ON THURSDAY, JAN 4, WE WILL MEET IN THOMPSON HALL, ROOM 3!)
SLN in Time Schedule:
2408
Steve's Office Hours:
Tuesday from 4:30 to 5:30 in Sieg 312.
Thursday from 12 to 1 PM in Sieg 312.
Ruth's Office Hours:
Mondays 12:30 to 1:30, 326a Sieg; Wednesdays 1:30 to 2:30, 326a Sieg.
Course Mailing List: cse413
Mailing list archive.
Schedule:
This is a tentative schedule: of topics and examinations. Most of the transparencies from past lectures are also posted here.

Number of Credits:
3
Grading:
Homework 20%
Midterm exam 25%
Final exam 35%
Project 15%
Class participation 5%
Hardcopy Readings:
Text (selected sections). Many of the readings for the course will be online, but the first set of readings is part of my recent book on Lisp and artificial intelligence. There will be several readings from the book throughout the course, including readings on Lisp, logic programming and Prolog, grammars and parsing, language understanding systems, and shells for expert systems. You can either purchase the whole book at the bookstore (approximately 15 copies have been ordered) or do a combination of getting copies from the copy center and reading in the library. The book is entitled, The Elements of Artificial Intelligence Using Common Lisp, 2nd edition, W. H. Freeman, 1995. Chapter 2 (Introduction to Programming in Common Lisp) and the Lisp glossary may be purchased separately at the Copy Center in the basement of the Communications Building.
Online reference materials for Lisp:
What Lisp is.
The Lisp FAQ provides the answers to many questions about Lisp and its implementations.
Common Lisp: The Language, 2nd edition is the standard reference on Common Lisp. (It seems best if you access it via the table-of-contents page, rather than by trying to download the entire HTML file or postscript.)
You can get the source code for the Lisp programs from The Elements of Artificial Intelligence Using Common Lisp, 2nd edition.
The web site for Digitool, Inc., the company that maintains and supports Macintosh Common Lisp, provides the most current information about MCL.
Here are some interesting links to info about how to use Lisp for
programming World-Wide Web applications.
Online reference materials for C.
Introduction to C Programming is an online tutorial.
Programming in C is another online tutorial, but it's on a website in the UK that doesn't always respond promptly.
These are two of the several tutorials that are listed here.
Online reference materials for Java.
The Java language trail map.

Announcements

January 2.
Welcome to this course and its course web! This course is about programming languages and their implementation. In some of the department's listings, it is called "Languages and Compilers," although in the catalog it is called "Programming Languages and Their Implementation." It covers interpreters, compilers, and other techniques for building programming systems. Our attention will focus mainly on two particular programming languages: Lisp and C. With Lisp, we will explore many issues relevant to intepreted languages, while with C, we will investigate compilers. In addition to traditional language issues and techniques, we will also look into current issues such as visual programming systems and programming facilities for the World-Wide Web.
January 2.
Facilities: This quarter, CSE 413 students will have the use of both the MSCC Macintoshes (running Macintosh Common Lisp 3.0) and the MSCC Unix systems. MSCC is the Mathematical Sciences Computing Center. The MSCC Macs are located in the basement of Thompson Hall. Some of the Macs are in Room 3 and some in Room 9. While the Macs offer MCL (and a variety of other languages such as Mathematica) the MSCC Unix hosts offer, C, Lex, Yacc, Allegro Common Lisp, and other software facilities.

Macintosh Common Lisp provides a particularly powerful environment including full implementation of the Common Lisp standard, integrated editor (called FRED), and extensive facilities for graphics and user interface construction. The Macintosh computers are networked, and files can easily be transferred between them and the Unix host machines of MSCC.

Students who have difficulty getting to the Macintoshes in Thompson Hall can supplement their Macintosh work with work on their own PCs, using such packages as XLISP-STAT for Windows and Micro-Emacs. However, due to our limited ability to support alternative facilities, students who wish to work on their own PCs will need to access these resources themselves from archives on the Internet. Also, note that XLISP-STAT is a bare-bones implementation of Common Lisp and does not have the extensive program-development support that MCL has. While we are fortunate to have the powerful MCL system for this course, there is one disadvantage of using it---you must use it in the MSCC lab unless you purchase your own copy of it from Digitool, Inc.. (MCL normally costs about $500 a copy, but there is a special student deal allowing students to purchase it for $135.) It has been pointed out that there is a free version of Allegro Common Lisp for Windows which can be downloaded from franz.com on the Web. This may be an attractive tool for some students.

Final examination:
The final exam for CSE 413 will be given on Monday, March 11, in Sieg 325 from 10:30 to 12:20. It will be a closed-book test.
January 4.
NOTE THIS: On Thursday, January 4, we will meet in Thompson Hall Room 3, so that we can get introduced to the laboratory facilities for the course. So go to Thompson this time, instead of going to our regular classroom.
January 9.
THIS WEEK ONLY Ruth's Wednesday office hours are moved to Thursday 2:30 - 3:30 in Sieg 326a.
January 21.
A Beginner's guide to HTML might be helpful for Assignment #3.
January 22.
Post of the message sent to the class news group regarding reading files with paths on the Mac.
January 23.
Reminder to please email your assignment #3 to Ruth (rea@cs) today, even if you turned in a hard copy in class. Click here for info on emailing files from the Macs.
January 29.
For assignment #4, please turn in a printout of your tokenize program run on several examples. Also please email a copy of tokenize to Ruth (rea@cs).
February 1.
The midterm examination will be from 10:30-11:50 AM on Thursday, February 8. It will cover these topics..
There will be an optional review session for the midterm exam. The review session will be held 2:30-3:20 PM on Monday, Feb. 5, in Sieg Hall room 422. Please bring in questions on the material to be covered.
*** HOMEWORK #5 HELP ***. Click here for info on converting strings to numbers and symbols.
** Check the cse413 mail archive for an important message about hw#5. The archive can be found at the top of this page. Send email to rea@cs if you have not received any mail from the mailing list.
February 5
Note modifications to the Assignment 5 page -- new deadlines (as announced earlier via email), plus online reading material for part B.
February 6
A free postscript viewer for windows is available here.
February 12
A Picture of a Koch Snowflake here.
March 5
New details on completing the project are given in the project general description page. Check it out to find out about demonstrations and writeups.
The review session for the final exam has been scheduled. It will be from 4:00-5:00 on Friday, March 8 in Sieg 422.
March 8
The final examination will be from 10:30-12:20 on Monday, March 11. It will cover these topics.. Part of the exam will be in multiple-choice format; bring a mark-sense form and a few #2 pencils. The exam is "closed-book."

Assignment 1 due on Tuesday, January 9.

Assignment 2 due on Tuesday, January 16.

Assignment 3 due on Tuesday, January 23. Solution: Part 1. Part 2.

Assignment 4 due on Tuesday, January 30. Solution: Exercises Tokenizer

Assignment 5 (Part A is due on Tuesday, February 13, and Part B is due on Thursday, February 15). Part A Solution: Parser Tokenizer Part B Solution: Koch Snowflake

Assignment 6 due on Tuesday, March 5. Java Tutorial (local copy)

** Assignment #6 Help!! **.

PROJECT: General description, including new info on demonstrations and writeups.

PROJECT Milestone 1 (DUE FEBRUARY 22nd).

PROJECT Milestone 2 (DUE FEBRUARY 29th).

Here is the file that shows how to display text in an MCL window.

Project Demonstrations are scheduled for Thursday, March 7 at 10:30.

Project Writeups are due at or before 4:00PM Friday, March 8.

You may turn them in at the review session for the final exam.
tanimoto@cs.washington.edu