PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/MarkUp/DTD/xhtml1-strict.dtd"> Adventures in Advanced Symbolic Programming

Spring 2024: 6.5150 (6.945) (grad AAGS), 6.5151 (6.905) (AUS)

Adventures in Advanced Symbolic Programming

Officially: Large-scale Symbolic Systems

3-0-9, Grad AAGS Level, AI Concentration

Gerald Jay Sussman,

with Joseph Camacho


Overview:

Concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Means for decoupling goals from strategy. Mechanisms for implementing additive data-directed invocation. Working with partially-specified entities. Managing multiple viewpoints. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Substantial weekly programming assignments are an integral part of the subject.

There will be extensive programming assignments, using MIT/GNU Scheme. Although MIT/GNU Scheme is Free (Libre) Software that you may install on your personal computers, we will supply alternative computing resources to support our class. Students should have significant programming experience in Scheme, Common Lisp, Haskell, CAML or other "functional" language. A strong background in Python is OK.

This subject is appropriate for undergraduates who have the prerequisite experience.


Prerequisites: 6.034, or comparable experience. For example, good performance in 6.009 is appropriate experience.. Programming experience in a functional language recommended.
Time: MWF 2:00PM
Room: 35-225
Textbook: Textbook: Software Design for Flexibility.
Office Hours:
GJS will be available on Wednesday afternoons from 3:15--4:30.
(and he is often around in other afternoons!)
You are welcome to visit his office at 32-G514, but call first to confirm availability.
MIT phone: (617) 253-5874
Email gjs@mit.edu

Joseph Camacho will be available on Wednesday 12:45-1:45pm in G521 or the room adjacent to it.


Announcements:

Code Updates: There is a new update of the SDF code base:

The previously announced rare bug in the unifier is now fixed.

There is a new version of the "better-layering" flavor. Also, there are additional textbook pages explaining the better-layering code here, and the continuation-passing interpreter it is based on here.

Be careful: If you have modified your copy of the sdf code base, do not just replace it with the newer one, because you will lose your modifications. Instead, copy the newly changed files to your copy, or copy your changes to a new copy of the code base that you download with a new name.


Class materials:


Reference documentation: