РТЛ/2
Парадигмы | Мультипарадигма : императивный , структурированный , в режиме реального времени. |
---|---|
Семья | АЛГОЛ |
Разработано | JGP Барнс |
Разработчик | Имперская химическая промышленность |
Впервые появился | 1972 год |
Дисциплина набора текста | статический , прочный , безопасный , структурный |
Объем | Лексический |
Платформа | ПДП-11 , ВАКС |
ТЫ | Кросс-(мульти-)платформенный РСХ-11М, ВМС |
Диалекты | |
никто | |
Под влиянием | |
АЛГОЛ 68 |
RTL/2 ( Real-Time Language ) — это прекращенный язык программирования высокого уровня для использования в вычислениях в реальном времени , разработанный в Imperial Chemical Industries , Ltd. (ICI) компанией JGP Barnes . Первоначально он использовался внутри компании ICI, но в 1974 году был распространен SPL International. [1] Он был основан на концепциях АЛГОЛа 68 и должен был быть небольшим и простым. [2] [3] [4] RTL/2 был стандартизирован в 1980 году Британским институтом стандартов . [5]
Обзор языка [ править ]
Типы данных в RTL/2 были строго типизированы и требовали отдельной компиляции . Единицы компиляции содержали один или несколько элементов, называемых «кирпичиками» , то есть:
- Процедурные кубики
- Блоки данных
- Стек кирпичей
Процедурный блок — это процедура , которая может возвращать или не возвращать (скалярное) значение, иметь (скалярные) параметры или иметь локальные (скалярные) переменные . Механизм входа и реализация локальных переменных были реентерабельными . Доступ к нескалярным данным можно было получить только по ссылке (так называемые переменные REF считались скалярными).
Блок данных представлял собой именованную статическую коллекцию скаляров, массивов и записей. Не было ни кучи, ни сборки мусора , поэтому программистам приходилось реализовывать управление памятью вручную.
Блок стека представлял собой область памяти, зарезервированную для выполнения всех процедур одного процесса и содержащую стек вызовов, локальные переменные и другие служебные элементы. Степень использования блоков стека варьировалась в зависимости от хост-среды, в которой запускались программы RTL/2.
Доступ к хост-среде программы RTL/2 обеспечивался с помощью специальных процедур и блоков данных, называемых процедурами SVC и данными SVC . Они были доступны в RTL/2, но реализованы на каком-то другом языке в среде хоста.
Привет, мир [ править ]
TITLE Hello World;
LET NL=10;
EXT PROC(REF ARRAY BYTE) TWRT;
ENT PROC RRJOB() INT;
TWRT("Hello World#NL#");
RETURN(1);
ENDPROC;
Встроенная сборка [ править ]
RTL/2 компилируется на ассемблере и предоставляет CODE
оператор, позволяющий включать язык ассемблера в исходный код RTL/2 . Это доступно только при компиляции с опцией системного программирования (CN:F).
The CODE
Оператор принимает два операнда: количество байтов, используемых для вставки кода, и количество используемых байтов стека.
В операторах кода для доступа к переменным RTL/2 используются два символа отключения. Они различаются в разных операционных системах . На Digital Equipment Corporation (DEC) PDP-11 под управлением RSX-11M и VAX под управлением VMS символы отключения следующие: *
и /
.
Хотя особенности различаются в зависимости от операционной системы, ниже приведен пример вставки кода в 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
Эта вставка кода перемещает значение переменной, переданной в процедуру RTL/2, в переменную с именем COUNTER
в блоке данных с именем MYDATA
.
Зарезервированные слова [ править ]
- АБС
- И
- МНОЖЕСТВО
- БИН
- БЛОКИРОВАТЬ
- К
- БАЙТ
- КОД
- ДАННЫЕ
- ДЕЛАТЬ
- ЕЩЕ
- ЭЛЬСЕИФ
- КОНЕЦ
- КОНЦЕВОЙ БЛОК
- ДАННЫЕ
- ОКОНЧАТЕЛЬНЫЙ ПРОЦЕСС
- ЛОР
- ЭКШН
- ДЛЯ
- ГРАК
- ПЕРЕЙТИ К
- шестигранник
- ЕСЛИ
- ИНТ.
- ЭТИКЕТКА
- ЗЕМЛЯ
- ДЛИНА
- ПОЗВОЛЯТЬ
- ИХ
- ПРОТИВ
- НЭВ
- НЕТ
- октябрь
- ИЗ
- ВАРИАНТ
- ИЛИ
- ПРОК
- НАСТОЯЩИЙ
- ССЫЛКА
- РЕП
- ВОЗВРАЩАТЬСЯ
- РТЛ
- НАПИТОК
- ШЛ
- Соглашение об уровне обслуживания
- ООО
- СРА
- ООО
- КУЧА
- СВК
- ВЫКЛЮЧАТЕЛЬ
- ЗАТЕМ
- ЗАГОЛОВОК
- К
- ВАЛ
- ПОКА
Ссылки [ править ]
- ^ Барнс, JGP (сентябрь 1980 г.). «Стандартизация RTL/2». Программное обеспечение: практика и опыт . 10 (9). Уайли: 707–719. дои : 10.1002/спе.4380100904 . S2CID 5050804 .
- ^ Спецификация языка RTL/2
- ^ «Энциклопедия компьютерных языков» . Архивировано из оригинала 10 марта 2011 года.
- ^ Барнс, JGP (1 января 1976 г.). Дизайн и философия RTL/2 . Хейден. ISBN 978-0855012243 .
- ^ BS 5904:1980: Спецификация языка программирования RTL/2 . 30 сентября 1980 г. ISBN. 978-0580114410 .
{{cite book}}
:|website=
игнорируется ( помогите )
Документация SPL [ править ]
SPL опубликовала ряд документации для RTL/2. Каждому такому документу был присвоен ссылочный номер. Ниже приводится неполный список.
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