BrianSmith.PA@PARC-GW.ARPA (03/22/84)
[Forwarded from the SRI CLSI bboard by Laws@SRI-AI.] The following course will be the CSLI Seminar on Computer Languages for the Spring Quarter [at Stanford]. If you are interested in attending, please read the notes on dates and registration, at the end. Lisp: Language and Literature A systematic introduction to the concepts and practices of programming, based on a simple reconstructed dialect of LISP. The aim is both to convey and to make explicit the programming knowledge that is typically acquired through apprenticeship and practice. The material will be presented under a linguistic reconstruction, using vocabulary that should be of use in studying any linguistic system. Considerable hands-on programming experience will be provided. Although intended primarily for linguists, philosophers, and mathematicians, anyone interested in computation is welcome. In particular, no previous exposure to computation will be assumed. However, since we will aim for rigorous analyses, some prior familiarity with formal systems is essential. Also, the course will be more like a course in literature and creative writing, than like a course in, say, French as a second language. The use of LISP, in other words, will be primarily as a vehicle for larger issues, not so much an object of study in and of itself. Since LISP (unlike French) is really very simple, we will be able to teach it in class and lab sessions. Tutorial instruction and some individual programming assistance will be provided. Topics to be covered include: -- Procedural and data abstraction; -- Objects, modularity, state, and encapsulation; -- Input/output, notation, and communication protocols; -- Meta-linguistic abstraction, and problems of intensional grain; -- Architecture, implementation, and abstract machines; -- Introspection, self-reference, meta-circular interpreters, and reflection. Throughout, we will pay particular attention to the following themes: -- Procedural and declarative notions of semantics; -- Interpretation, compilation, and other models of processing; -- Implicit vs. explicit representation of information; -- Contextual relativity, scoping mechanisms, and locality; -- Varieties of language: internal, external, theoretical; -- Syntax and abstract structure: functionalism & representationalism. Organizational Details: Instructor: Brian C. Smith, Xerox PARC/Stanford CSLI; 494-4336 (Xerox); 497-1710 (Stanford), "BrianSmith@PARC" (Arpanet). Classes: Tuesdays and Thursdays, 2:00 - 3:30, in Room G19, Redwood Hall, Jordan Quad. NB: Since we will be using the computers just now being installed at CSLI, there may be some delay in getting the course underway. In particular, it is possible that we will not be able to start until mid-April. A follow-up note with more details will be sent out as soon as plans are definite. Registration: Again, because of the limited number of machines, we may have to restrict participation somewhat. We would therefore like anyone who intends to take this course to notify Brian Smith as soon as possible. Note that the course will be quite demanding: 10 to 20 hours per week will probably be required, depending on background. Sections: As well as classes, there will be section/discussion periods on a regular basis, at times to be arranged at the beginning of the course. Reading: The course will be roughly based on the "Structure and Interpretation of Computer Programs" textbook by Abelson and Sussman that has been used at M.I.T., although the linguistic orientation will affect our dialects and terminology. Laboratory: Xerox 1108s (Dandelions) will be provided by CSLI, to be used for problem sets and programming assignments. Instructors & teaching assistants will be available for assistance at pre-arranged times. Credit: The course may be listed as a special topics course in Computer Science. However (in case that does not work out) anyone wishing to take it for credit should get in touch, so that we can arrange reading course credit.