TAL(ID:2552/tal001)

Tandem systems language 


Transaction Application Language.

Molloy: "a proprietary block-structured systems programming language, derived from Algol-60"

Algol 60 dialect serving as a primary system programming language on Tandem computers

(Contrary to common statements on the Net, Tandem only started with a proprietary stack-based architecture with no assembler, then ported to MIPS architecture, before being acquired by HP)


Related languages
SPL => TAL   Derivation of
TAL => microTAL   Evolution of
TAL => pTAL   Port of

References:
  • Mark Molloy et al "Automatic interoperability test generation for source-to-source translators" International Symposium on Software Testing and Analysis Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis Clearwater Beach, Florida, United States pp93 - 101 view details Extract: pTAL, pointers, optional parameters
    Both our original language, pTAL, and the language of the
    translation we produce, C++, use a combination of value
    and pointer parameters. To check pointer parameters, the
    Do component creates an instance of the domain type then
    passes a pointer to it. The Verify component checks the
    value, then fills in a new value that is in turn checked by the
    Do component upon return. Languages that implement
    value/result parameters would check values similarly.
    If the profile has a result type, the Verify component returns
    a procedure result value, which is checked by the Do
    component.
    The pTAL language contains a mechanism for optionally
    passing parameters; the maximum number of parameters is
    known and any parameter may be either present or absent.
    This feature differs significantly from the C language
    "va_list" model in which the maximum number of
    parameters is not known. The AITG checks all
    combinations of presence and absence for the first four
    parameters* and selected combinations beyond that. A
    similar strategy might check for various lengths of
    parameter lists, assuming heuristics about how long the
    parameter list might be.