RTL/2

RTL/2
Paradigm Multiparadigm : imperativ , strukturerad , realtid
Familj ALGOL
Designad av JGP Barnes
Utvecklare Imperial Chemical Industries
Dök först upp 1972 ; 51 år sedan ( 1972 )
Maskinskrivningsdisciplin statisk , stark , säker , strukturell
Omfattning Lexikalisk
Plattform PDP-11 , VAX
OS Cross-(multi-)plattform RSX-11M, VMS
Dialekter
ingen
Influerad av
ALGOL 68

RTL/2 ( Real-Time Language ) är ett avvecklat högnivåprogrammeringsspråk för användning i realtidsberäkningar , utvecklat vid Imperial Chemical Industries, Ltd. (ICI), av JGP Barnes . Den användes ursprungligen internt i ICI men distribuerades av SPL International 1974. Den var baserad på koncept från ALGOL 68 och tänkt att vara liten och enkel. RTL/2 standardiserades 1980 av British Standards Institution .

Språköversikt

Datatyperna i RTL/2 var starkt typade , med separat kompilering . Sammanställningsenheterna innehöll en eller flera föremål med namnet tegelstenar , dvs.

  • Förfarande tegelstenar
  • Dataklossar
  • Stapla tegelstenar

En procedursten var en procedur som kan eller inte kan returnera ett (skalärt) värde, ha (skalära) parametrar eller ha lokala (skalära) variabler . Ingångsmekanismen och implementeringen av lokala variabler var återinträdande . Icke-skalär data kunde endast nås via referens (så kallade REF-variabler ansågs vara skalära).

En datategel var en namngiven statisk samling av skalärer, arrayer och poster. Det fanns ingen hög eller sophämtning , så programmerare var tvungna att implementera minneshantering manuellt.

En stackbrick var ett lagringsområde reserverat för att köra alla procedurer i en enda process och innehöll anropsstacken, lokala variabler och andra hushållsartiklar. I vilken utsträckning stackstenar användes varierade beroende på värdmiljön där RTL/2-program kördes.

Tillgång till värdmiljön för ett RTL/2-program gavs via speciella förfaranden och datablock som kallas SVC-procedurer och SVC-data . Dessa var tillgängliga i RTL/2 men implementerade på något annat språk i värdmiljön.

Hej världen

TITLE Hej världen; LET NL=10; EXT PROC(REF ARRAY BYTE) TWRT; ENT PROC RRJOB() INT; TWRT("Hej världen#NL#"); RETURN(1); ENDPROC;

Inbäddad montering

RTL/2 kompilerar till assemblerspråk och tillhandahåller CODE- satsen för att tillåta inkludering av assemblerspråk i RTL/2- källkoden . Detta är endast tillgängligt när det kompileras med ett systemprogrammeringsalternativ (CN:F)

CODE - satsen tar två operander: antalet byte som används av kodinsättningen och antalet byte av stack som används.

Inom kodsatser används två trip-tecken för att komma åt RTL/2-variabler. Dessa varierar mellan olika operativsystem . På en Digital Equipment Corporation (DEC) PDP-11 som kör RSX-11M och en VAX som kör VMS , är trip-tecknen * och / .

Även om detaljerna varierade beroende på operativsystem, är följande ett exempel på en kodinsättning på VAX/VMS:

 0
  


 
 

 
 


 KOD  6  ,  ;  JMP  CODE_ENT  ; Denna kodinsats kan ställas in på en fast längd när den hoppar till en ny psekt.   ; denna metod är särskilt användbar på system som VMS där längden på   ; instruktioner är variabel   .SAVE_PSECT  ; Spara aktuellt programavsnitt   .PSECT  ASMB_CODE  ,  EXE  ,  NOWRT  ,  LONG  CODE_ENT:  MOVL  *  PARAM1  (  AP  ),  *  COUNTER  /  MYDATA  JMP  CODE_EX  .RESTORE_PSECT  CODE_EX:  *  RTL 

Denna kodinsättning flyttar värdet på en variabel som skickas in i RTL/2-proceduren till en variabel som heter COUNTER i en databricka som heter MYDATA .

Reserverade ord

  • magmuskler
  • OCH
  • ARRAY
  • BIN
  • BLOCKERA
  • FÖRBI
  • BYTE
  • KODA
  • DATA
  • DO
  • ANNAN
  • ELSEIF
  • SLUTET
  • ENDBLOCK
  • SLUTDATA
  • ENDPROC
  • ENT
  • EXT
  • FÖR
  • FRAC
  • GÅ TILL
  • HEX
  • OM
  • INT
  • MÄRKA
  • LANDA
  • LÄNGD
  • LÅTA
  • LOR
  • MOD
  • NEV
  • INTE
  • OKT
  • AV
  • ALTERNATIV
  • ELLER
  • PROC
  • VERKLIG
  • REF
  • REP
  • LÄMNA TILLBAKA
  • RTL
  • SHA
  • SHL
  • SLA
  • SLL
  • SRA
  • SRL
  • STACK
  • SVC
  • VÄXLA
  • SEDAN
  • TITEL
  • TILL
  • VAL
  • MEDAN

SPL dokumentation

SPL publicerade en rad dokumentation för RTL/2. Varje sådant dokument tilldelades ett referensnummer. Följande är en ofullständig lista.

RTL/2 Ref 1 – RTL/2 Språkspecifikation RTL/2 Ref 2 – Introduktion till RTL/2 RTL/2 Ref 3 – RTL/2 Training Manual RTL/2 Ref 4 – Systemstandarder RTL/2 Ref 5 – Stream I/ O RTL/2 Ref 18 – Tips om att skriva RTL/2-program RTL/2 Ref 26 – Språkreferenskort RTL/2 Ref 39 – Körtidsmiljö på PDP-11 RTL/2 Ref 63 – Användarmanual för PDP-11 under RSX-11M RTL/2 Ref 107 – VAX/VMS RTL/2 Användarmanual RTL/2 REF 130 – RTL/2 32-bitars körtidsmiljö på VAX