Richard Harter's World
Home page for San
San specifications
Comp. Sci.
January 2006
email

San specification revisions - Jan 01, 2006

This page describes the January 1, 2006 revisions to the San programming language specification. Many of the changes were suggested during an preliminary implementation of the San interpreter in San. Each revision description consists of a informal description of the original text, an informal description of the new text including motivation, and a listing of altered, delelted, and new sections.

  1. Added a detailed table of contents
    Original text: (none)
    New text: A final section at the end of the page was added that contains links to all title levels; it was added to make it easier to navigate.

  2. Changed the comment character
    Original text: Comments start with // (not enclosed in a string) within a line and continue to the end of the line, or if / was the first non white space character then the entire line is a comment.
    New text: Comments start with # (if not enclosed in a string) and continue to the end of the line. A minor justification for this change is that it simplifies lexing and parsing; the real reason for it is that the author decided he preferred the # character.
    Changed sections: 2.3, 3.2.3, 3.2.4, and 4.3. The old 3.3.2 was deleted and the old 3.3.3 renumbered to 3.3.2. Also 76 occurrences of // were changed to #.

  3. Added case expression lists in switches
    Original text: The case statement consists of the case keyword, a case expression, a colon (:), and an action.
    New text: Instead of a single case expression there can be a list of case expressions.
    Changed sections: 12.2

  4. Object signatures
    Original text: (none)
    New text: The object signature is the list of aspects and the vector of fields. Object signatures can change during execution.
    New section: 6.8

  5. Expanded object copying
    Original text: The only kind of usage for the set command was simple object cloning.
    New text: The usage is extended to include any kind of assignment, with the caveat that object signatures in lists must be consistent.
    Changed sections: 11.6

  6. Added the "self" object
    Original text: The original specification provided for "naked" identifiers, i.e., identifiers that omit the object name because the reference is to the current object.
    New text: The "self" identifier has been added. Naked identifiers are retained as a convenience but not as a necessity.
    Changed sections: 6.6

  7. Restrict string substitution
    Original text: Originally the string substitution operator could be used to produce modified identifiers.
    New text: The string substitution operator can only produce strings. Identifiers may not be modified; this revision is needed for compilable code. It also facilitates parsing.
    Changed sections: 4.6

Richard Harter's World
Home page for San
San specifications
Comp. Sci.
January 2006
email