Prev Up Next
Go backward to Appendices:
Go up to Top
Go forward to Appendix B: Bibliography

Appendix A: Abstract Syntax

The  abstract syntax is central to the definition of a formal language. It stands between the concrete representations of documents, such as marks on paper or images on screens, and the abstract entities, semantic relations, and semantic functions used for defining their meaning.

The abstract syntax has the following objectives:

There are many possible ways of constructing an abstract syntax, and the choice of form is a matter of judgement, taking into account the somewhat conflicting aims of simplicity and economy of semantic definition.

The abstract syntax is presented as a set of production rules in which each entity is defined in terms of its constituent parts. The productions form a context-free grammar. The notation X*, X+, X? indicates the repetition of X any number of times, at least once, and at most once, respectively. The context conditions for well-formedness of specifications are not determined by the grammar (these are to be defined separately).

For each of the entities defined in the abstract syntax, there will eventually be a subsection in the reference manual describing its representation and meaning. To obtain a clear relationship with the concrete representation, the constructors used to distinguish the alternatives may later be replaced by more suggestive symbols. The order in which components of constructs are currently listed does not necessarily correspond to that to be used in the concrete representation.

The current emphasis of the abstract syntax is on documenting the individual constructs, and on fixing terminology. The internal organization of the abstract syntax will almost certainly need adjusting before it is optimal for use in connection with semantics or tools. Note that an abstract syntax is provided for the entire language, not just for a semantic kernel (but the semantics of constructs that are essentially just abbreviations or `syntactic sugar' may still be defined by expansion).

  • Identifiers
  • Basic Specifications
  • Basic Specifications with Subsorts
  • Structured Specifications
  • Named and Generic Specifications
  • Architectural and Unit Specifications
  • Specification Libraries

  • CoFI Document: CASL/Summary-v0.97 --Version 0.97-- 20 May 1997.
    Comments to cofi-language@brics.dk

    Prev Up Next