Richard Harter’s World
Home page for San
San specifications
Comp. Sci.
March 2007

San specification revisions – March 1, 2007

This page describes the March 1, 2007 revisions to the San programming language specification. There are some new features, the most significant being “pronouns” and the infinite range of dimensioning. There are a number of clarifications of obscure passages, and the correction of some outright errors.

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. Introduce pronouns and aliases
    Original text:(none)
    New text: Two new features, pronouns and aliases, are added. The at sign, @, is a pronoun that stands for the target of an assignment statement. Aliases are a generalization of pronouns. Aliases contain identifier component names. Identifiers can contain pronouns as components. The alias will be replaced by referent name at execution time. Aliases can change contents at execution time.
    Changed sections: 3.2.9., 3.4.6

  2. Added a section on special identifiers
    Original text: (none)
    New text: A short section on special identifiers has been added to the identifiers section, 3.4.
    Changed sections: 2.3, 3.4.6,

  3. Mentioned “self” object in 3.4.4
    Original text: Local identifiers reference fields and aspects of the containing object.
    New text: The following two sentences were added: “The keyword ‘self’ is used to refer the containing object. Local identifiers can also be naked identifiers.”
    Changed sections: 3.4.4

  4. Scope of dimensioning
    Original text:Identifiers can represent multi-dimensional arrays.
    New text: San objects are multi-dimensional arrays with arbitrarily large scope.
    Changed section: 3.4.2

  5. Lists only of vector of fields
    Original text: Qualifiers can denote sublists of the vector of fields.
    New text: They can only the full list.
    Changed sections: 3.4.5

  6. Clarified the string substitution operator
    Original text: The original text only discussed what happens with variables and literals as arguments for the string substitution operator.
    New text: Operation with function invocations has been spelled out along with the treatment of punctuation and special data types.
    Changed sections: 4.6

  7. Add a reference to 6. in 5.4
    Original text:There was no link to section 6 in section 5.4.
    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: 5.4

  8. The assignment section was rewritten
    Original text:There were three subsections on assignment, entitled Direct assignment, Direct Assignment to Scalar Lists, and Distributed assignment.
    New text: The three aforeaid sections were replaced by two new sections, 11.2 Assignment syntax, and 11.3 Evaluation order. The distributed assignment operator, ->, was eliminated. Distributed assignment was subsumed into list assignment. Evaluation order was clarified. A new subsection, 11.6 Declarative assignment, was added.
    Changed sections: 11
    Renumbered sections: 11.5 was changed to 11.4, and 11.6 was changed to 11.5.

  9. Eliminate the -> operator
    Original text:Distributed assignment was done withe ->
    New text: References to -> were removed.
    Changed sections: 3.3
    Renumbered sections: 3.3.2 was changed to 3.3.1.

Richard Harter’s World
Home page for San
San specifications
Comp. Sci.
March 2007