Fall 2002

Information specific to the Fall 2002 semester

12/17 FINAL EXAM 1pm-3pm. I've decided to make the final exam optional. Please turn in the term project and any other homework by 5pm on Monday, December 16.

12/10 Last day of class 631. Atkinson and Simmons present the basics of Haskell (basics as a pdf handout), powerpoint and some examples; Grossman and Pensy present Sather. Colangelo presents Smalltalk. Since we have three talks, please plan on 20-minute presentations.

12/5 Snow! we'll postpone the two scheduled talks until next Tuesday.

12/3 Riley and Thorpe present Eiffel, with an example (word); Bhatkar et al present Python.

11/28 Thanksgiving Day, No class.

11/26 Block and Chhay present Ruby; Kundu, Siegel and Kim present Tcl/Tk.

11/21 Abraham and Li present COBOL The COBOL handout (pdf)

11/19 Review presentation evaluation form, and discuss the BST functor example functorBST.ml

11/14 Discuss an excerpt from Paul Attie, "Lecture Notes - Axiomatic Semantics and Program Verification", pages 57-62

11/12 Discuss an excerpt from Paul Attie, "Lecture Notes - Axiomatic Semantics and Program Verification", pages 34-47

11/7 Discuss Hoare's paper "An Axiomatic Basis for Computer Programming", and discuss AG evaluator ML project.

The project will be in three parts:

  1. Implement the hash function functors per Exercise 8.3.3 and 8.3.4 on page 281
  2. Modify the parser for arithmetic expressions in Figure 5.25 (pg. 187) and Figure 5.26 (pg. 190) to parse and evaluate string expressions. A string expression is a string enclosed in quotes, a concatenation of two string expressions with the ^ operator, or a string variable. A string variable is an identifier preceded by a dollar sign, e.g $foo. String assignment statements of the form $foo = "cat"^"food" should be supported.
  3. Specify a data type for abstract syntax trees, including productions and semantic functions. Semantic functions are the same as string assignement statements.

11/5 No class, since Charles will be chairing CIKM'02

10/31 Return midterm and homework 6. Schedule team presentations.

10/29 Midterm exam.

10/24 Discussion of homwork 6, and review for exam.

10/22 More on ML, including structures, signatures, and functors.

10/17

10/15 We'll be discussing the Appell and MacQueen paper on SML of New Jersey

10/10 Return Homework 3. Discuss higher-order functions in ML. More on team presentations.

Homework 5, due Thursday 10/17

Exercises 5.4.1, 5.4.5, 5.4.6, and 5.4.7 on pages 166-167 of Ullman's book. Please code up your solutions with some test data to demonstrate that they work.

10/8 Discussion of the Lee and Harper handouts. Return Homework 2. Discussion of student presentations.

Student Presentation proposals, due 10/14

We have reserved time at the end of the semester for student presentations. Please form teams of two members, and send me by COB Monday 10/14 an email saying who your eam is, and which language(s) you wish to present. I will approve the languages to be presented, on the basis of not too old, not too specialized, not too familiar, and not too weird. (I won't use the same criteria for the teams themselves :-)

10/3 More about ml-yacc, from the documentation on the web site. Also distributed handouts, namely Kent Lee's Creating a Recursive-Descent Parser, and an excerpt from Harper's new ML book, sections 11.3-11.5. Both are accessible through the Resources page

10/1 Details of ml-yacc and ml-lex, using the examples found in /cs/sml/src/ml-yacc/examples/calc. Gave another homework assignement, namely:

Homework 4, due Thursday 10/10

Adapt the octal arithmetic AG from Homework 1, converting it to hexadecimal. Use the tools ml-lex, ml-yacc, and cm, as in the calc example. It's ok to assume that the user will type in only hex constatnts, in ML format, but this assignement can be done without assuming this.

9/26 More ML, especially the handout and examples using difference lists and timers. The example program diff.ml

9/24 Collected Homework 2, went through ML slides, including some examples. Assigned

Homework 3, due Tuesday 10/1

Exercises 3.3.1, 3.3.3, 3.3.7, and 3.3.14 on pages 74-76 of Ullman's book

9/19 class is cancelled. I recommend working on an ML tutorial, such as A Gentle Introduction to ML

9/17, Returned Homework 1, and assigned

Homework 2, due Tuesday 9/24

Exercises 2.4.1, 2.4.5, and 2.4.6 in Ullman's book.

9/12 Began talking about ML, and assigned Farrow paper as reading for next time. Collected Homework 1.

9/10 I think we went over the Paakki paper

9/5 Assigned Homework 1, the octal calculator AG

Homework 1, due Thursday 9/12/2002.

Modify the binary attribute grammar example to handle octal arithmetic. Your program should accept octal numbers of reasonable magnitude, perform addition, subtraction, multiplication, and division as indicated, and print the result. The arithmetic operators will have their usual preference. Parentheses have their usual meaning. You may wish to check for division by zero. You may support unary minus if you like. If you wish, allow string expressions with the single operation of concatenation

9/3 Began talking about Knuth paper

8/29 The first day of class, so Introduction to the course