RTL/2
Paradigm | Multiparadigm : imperativ , strukturerad , realtid |
---|---|
Familj | ALGOL |
Designad av | JGP Barnes |
Utvecklare | Imperial Chemical Industries |
Dök först upp | 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