RTL/2

Uses your system voice; voice and rate in settings.

Snapshot

≈ 3 min read

Names in other languages

No names in other languages are held for this entry yet.

Article bodies are English and are not machine-translated. A name in another language is not a translation of the article.

RTL/2 (Real-Time Language) is a discontinued high-level programming language for use in real-time computing, developed at Imperial Chemical Industries, Ltd. (ICI), by J.G.P. Barnes. It was originally used internally in ICI but was distributed by SPL International in 1974. It was based on concepts from ALGOL 68, and intended to be small and simple. RTL/2 was standardised in 1980 by the British Standards Institution.

RTL/2 (Real-Time Language) is a discontinued high-level programming language for use in real-time computing, developed at Imperial Chemical Industries, Ltd. (ICI), by J.G.P. Barnes. It was originally used internally in ICI but was distributed by SPL International in 1974. It was based on concepts from ALGOL 68, and intended to be small and simple. RTL/2 was standardised in 1980 by the British Standards Institution.

Language overview

The data types in RTL/2 were strongly typed, with separate compiling. The compilation units contained one or more items named 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 reentrant. 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. There was no heap or garbage collection, so programmers had to implement memory management manually. 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 used varied depending on the host environment in which RTL/2 programs 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 accessible in RTL/2 but implemented in some other language in the host environment. TITLE Hello World; LET NL=10; EXT PROC(REF ARRAY BYTE) TWRT; ENT PROC RRJOB() INT; TWRT("Hello World#NL#"); RETURN(1); ENDPROC; CODE 6,0; JMP CODE_ENT ; This code insert can be set to a fixed length as it jumps to a new psect. this method is especially useful on systems such as VMS where the length of instructions is variable .SAVE_PSECT ; Save current program section .PSECT ASMB_CODE,EXE,NOWRT,LONG CODE_ENT: MOVL *PARAM1(AP),*COUNTER/MYDATA JMP CODE_EX .RESTORE_PSECT CODE_EX: RTL This code insert moves the value of a variable passed into the RTL/2 procedure into a variable named COUNTER in a data brick named MYDATA .

References

Text derived from https://en.wikipedia.org/w/index.php?oldid=1090768686 under CC BY-SA 4.0; modifications have been made.

Sources cited in this revision

Extracted from the cited revision's reference blocks; absent citations are not invented.