Svoboda | Graniru | BBC Russia | Golosameriki | Facebook

To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

4,5
Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
Live Statistics
English Articles
Improved in 24 Hours
Added in 24 Hours
Languages
Recent
Show all languages
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.
.
Leo
Newton
Brights
Milds

From Wikipedia, the free encyclopedia

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.[1] It was based on concepts from ALGOL 68, and intended to be small and simple.[2][3][4] RTL/2 was standardised in 1980 by the British Standards Institution.[5]

YouTube Encyclopedic

  • 1/3
    Views:
    115 574
    7 243
    2 037
  • The Nobel Prize in Chemistry: Molecular Machines, Explained - Speaking of Chemistry
  • Derek Lovley - Protein Nanowires for Sensing, Energy Harvesting & Wiring Cells to Electronics
  • High Performance Computing with AWS

Transcription

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.

Hello World

TITLE Hello World;

LET NL=10;

EXT PROC(REF ARRAY BYTE) TWRT;

ENT PROC RRJOB() INT;
TWRT("Hello World#NL#");
RETURN(1);
ENDPROC;

Embedded assembly

RTL/2 compiles to assembly language and provides the CODE statement to allow including assembly language in RTL/2 source code. This is only available when compiled with a systems programming option (CN:F)

The CODE statement takes two operands: the number of bytes used by the code insert and the number of bytes of stack used.

Within code statements two trip characters are used to access RTL/2 variables. These vary between different operating systems. On a Digital Equipment Corporation (DEC) PDP-11 running RSX-11M, and a VAX running VMS, the trip characters are * and /.

While the specifics varied by operating system the following is an example of a code insert on VAX/VMS:

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.

Reserved words

  • ABS
  • AND
  • ARRAY
  • BIN
  • BLOCK
  • BY
  • BYTE
  • CODE
  • DATA
  • DO
  • ELSE
  • ELSEIF
  • END
  • ENDBLOCK
  • ENDDATA
  • ENDPROC
  • ENT
  • EXT
  • FOR
  • FRAC
  • GOTO
  • HEX
  • IF
  • INT
  • LABEL
  • LAND
  • LENGTH
  • LET
  • LOR
  • MOD
  • NEV
  • NOT
  • OCT
  • OF
  • OPTION
  • OR
  • PROC
  • REAL
  • REF
  • REP
  • RETURN
  • RTL
  • SHA
  • SHL
  • SLA
  • SLL
  • SRA
  • SRL
  • STACK
  • SVC
  • SWITCH
  • THEN
  • TITLE
  • TO
  • VAL
  • WHILE

References

  1. ^ Barnes, J.G.P. (September 1980). "The Standardisation of RTL/2". Software: Practice and Experience. Wyley. 10 (9): 707–719. doi:10.1002/spe.4380100904. S2CID 5050804.
  2. ^ RTL/2 Language Specification
  3. ^ "The Encyclopedia of Computer Languages". Archived from the original on 10 March 2011.
  4. ^ Barnes, J.G.P. (1 January 1976). RTL/2 design and philosophy. Heyden. ISBN 978-0855012243.
  5. ^ BS 5904:1980: Specification for computer programming language RTL/2. 30 September 1980. ISBN 978-0580114410. {{cite book}}: |website= ignored (help)

SPL documentation

SPL published a range of documentation for RTL/2. Each such document was assigned a reference number. The following is an incomplete list.

RTL/2 Ref 1  – RTL/2 Language Specification
RTL/2 Ref 2  – Introduction to RTL/2
RTL/2 Ref 3  – RTL/2 Training Manual
RTL/2 Ref 4  – System Standards
RTL/2 Ref 5  – Stream I/O
RTL/2 Ref 18 – Hints on writing RTL/2 Programs
RTL/2 Ref 26 – Language Reference Card
RTL/2 Ref 39 – Run time environment on the PDP-11
RTL/2 Ref 63 – User Manual for the PDP-11 under RSX-11M
RTL/2 Ref 107 – VAX/VMS RTL/2 User Manual
RTL/2 REF 130 – The RTL/2 32-bit run time environment on the VAX
This page was last edited on 31 May 2022, at 07:32
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.