Jump to content

RTL/2

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Swinnall (talk | contribs) at 14:24, 15 July 2010 (Initial version - overview collated from various sources). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

RTL/2 was a high-level programming language developed at Imperial Chemical Industries Ltd by J.G.P. Barnes in 1972. It was designed for use in real-time computing (hence the acronym RTL = real-time language). Based on concepts from Algol 68, it was intended to be a small, simple language.[1][2] RTL/2 was standardised in 1980 by the British Standards Institution[3].

RTL/2 was a weakly typed language with separate compilation. The compilation units contained one or more items known as "bricks", i.e.:

  • procedure bricks,
  • data bricks,
  • stack bricks.

A procedure brick was a procedure, which may or may not return a (scalar) value, have (scalar) parameters, or have local (scalar) variables. The entry mechanism and implementation of local variables was re-entrant. Non-scalar data could only be accessed via reference (so-called REF variables were considered scalar).

A data brick was a named static collection of scalars, arrays and records. Programmers had to implement memory management themselves (there was no heap or garbage collection).

A stack brick was an area of storage reserved for running all the procedures of a single process and contained the call stack, local variables and other housekeeping items. The extent to which stack bricks were actually used varied depending upon the host environment in which RTL/2 programs actually ran.

Access to the host environment of an RTL/2 program was provided via special procedure and data bricks called SVC procedures and SVC data. These were declared in RTL/2 but implemented in some other language in the host environment.