Harvey Mudd College
Computer Science 131
Programming Languages
Fall Semester 1999
Syllabus
Supporting Software
Basic Info on Emacs Mode for SML-NJ
More Info on Emacs Mode for SML-NJ
-- This is the documentation that comes with the sml-mode. Some key-bindings have been changed for the version used in CS-131.
The SML Standard Basis Library
Wetware
Josh Hodas (Professor)
Assignments
Project 01 (due 9/14/99)
- Warm-Up Programming in SML: Numbers, Lists, and Strings
Project 02 (due 9/23/99)
- Warm-Up Programming in SML: Higher-Order Functions and Miscellaneous Munging
Project 03 (due 10/8/99)
- Warm-Up Programming in SML: User Defined Recursive Types and A Simple Read-Eval-Print Loop
Project 04 (due 10/21/99)
- Interpreter for a Simple Calculator Language -- Phase 1: From Concrete to Abstract Syntax
Project 05 (due 10/29/99)
- Interpreter for a Simple Calculator Language -- Phase 2: Evaluation
Formal Specification of Expresion Evaluation for Project 05
Project 06 (due 11/12/99)
- Interpreter for a Simple Calculator Language -- Phase 3: Fruition
Project 07 (due 11/23/99)
- Interpreter for a Dynamically Scoped Mini-Lisp
Project 08 (due 12/3/99)
- Interpreter for a Lexically Scoped Mini-Scheme
Project 09 (due 12/10/99)
- Programming in Mini-Scheme
Homework 01 (due 11/05/99) - A Pencil and Paper Assignment on Parsing
Lectures
Lecture 01 (1/20/99) - Background, Course Details
Lecture 02 (1/25/99)
- Compilers & Interpreters, History of ML, Base Types, Built-in Structured Types
Lecture 03 (1/27/99)
- Functions, Pattern Matching, Polymorphism
Lecture 04 (2/1/99)
- Tail Recursion, Six Higher-Order Functions
Lecture 05 (2/3/99)
- Scope,
local
and
let
Definitions, Handling Aberant Conditions
Lecture 06 (2/8/99)
- Handling Exceptions, Mutable Data with Refs.
Lecture 07 (2/10/99) - TypesFest '99
Lecture 08 (2/15/99)
- A More Involved Datatype Example, The SML Module System: Structures and Signatures
Lecture 09 (2/22/99)
- The SML Module System: Functors, Conrete vs. Abstract Syntax
Lecture 10 (2/24/99)
- Lexical Analysis: Regular Expressions
Lecture 10a (2/24/99, 3/1/99)
- Lexical Analysis: Finite Automata (Deterministic and Non-Deterministic)
Lecture 10b (3/1/99)
- Lexical Analysis: Converting NFA's to DFA's
Lecture 11 (3/3/99)
- Abstract vs. Concrete Syntax for Project 04
Lecture 11, 12, 13 (3/3/99, 3/8/99, 3/10/99)
- SLR(1) Parsing
Lecture 14 (3/22/99)
- Continuations
Lecture 15 (3/29/99)
- Continuations, continued
Lecture 16 (3/31/99) - Denotational and Operational Semantics
Lecture 17 (4/5/99) - Comparison of Scoping in Various Languages
Lecture 18 (4/7/99) - Upward & Downward FunArg problem, Using Closures to Implement Lexical Scope in Higher-Order Functional Languages.
Lecture 19 (4/12/99) - Representing Infinite Data with Stream, Lazy Evaluation.
This page copyright ©1998 by
Joshua S. Hodas
. Last changed on Mon, Apr 12, 1999 at 1:56 PM.
http://cs.hmc.edu/~hodas/courses/cs131/index.html