RTL / 2 (язык реального времени) - это прекращенный язык программирования высокого уровня для использования в вычислениях в реальном времени , разработанный в Imperial Chemical Industries , Ltd. (ICI) JGP Barnes . Первоначально он использовался внутри ICI, но был распространен SPL International в 1974 году. [1] Он был основан на концепциях АЛГОЛА 68 и должен был быть небольшим и простым. [2] [3] [4] RTL / 2 был стандартизирован в 1980 году Британским институтом стандартов . [5]
Парадигмы | Мультипарадигма : императивная , структурированная , в реальном времени |
---|---|
Семья | АЛГОЛ |
Разработано | JGP Barnes |
Разработчик | Империал Кемикал Индастриз |
Впервые появился | 1972 |
Печатная дисциплина | статический , прочный , безопасный , структурный |
Сфера | Лексический |
Платформа | ПДП-11 , ВАКС |
Операционные системы | Кроссплатформенный (мультиплатформенный) RSX-11M, VMS |
Диалекты | |
никто | |
Под влиянием | |
АЛГОЛ 68 |
Обзор языка
Эти типы данных в RTL / 2 были сильно типизированных , с отдельной компиляции . В единицы компиляции содержала один или несколько элементов с именем кирпич , то есть:
- Кирпичи процедуры
- Блоки данных
- Укладываем кирпичи
Блок процедур - это процедура , которая может возвращать или не возвращать (скалярное) значение, иметь (скалярные) параметры или иметь локальные (скалярные) переменные . Механизм ввода и реализация локальных переменных были реентерабельными . Доступ к нескалярным данным можно было получить только по ссылке (так называемые переменные REF считались скалярными).
Блок данных представлял собой именованный статический набор скаляров, массивов и записей. Не было кучи или сборки мусора , поэтому программистам приходилось реализовывать управление памятью вручную.
Блок стека представлял собой область хранения, зарезервированную для выполнения всех процедур одного процесса и содержащую стек вызовов, локальные переменные и другие вспомогательные элементы. Степень использования блоков стека варьировалась в зависимости от среды хоста, в которой выполнялись программы RTL / 2.
Доступ к принимающей среде программы RTL / 2, при условии , с помощью специальных процедур и данных кирпичей называемых процедурами SVC и данные SVC . Они были доступны в RTL / 2, но реализованы на каком-то другом языке в среде хоста.
Привет мир
НАЗВАНИЕ Hello World;Пусть NL = 10;EXT PROC (REF ARRAY BYTE) TWRT;ENT PROC RRJOB () INT;TWRT ("Hello World # NL #");ВОЗВРАТ (1);ENDPROC;
Встроенная сборка
RTL / 2 компилируется на язык ассемблера и предоставляет CODE
инструкцию, позволяющую включать язык ассемблера в исходный код RTL / 2 . Это доступно только при компиляции с опцией системного программирования (CN: F)
CODE
Оператор принимает два операнда: число байт , используемого код вставки и число байт стеки , используемых.
В операторах кода для доступа к переменным RTL / 2 используются два символа отключения. Они различаются в зависимости от операционной системы . На PDP-11 Digital Equipment Corporation (DEC) с RSX-11M и VAX с VMS символы отключения - и .*
/
Хотя специфика различается в зависимости от операционной системы, ниже приведен пример вставки кода в VAX / VMS:
КОД 6 , 0 ; JMP CODE_ENT ; Эта вставка кода может быть установлена на фиксированную длину при переходе к новому псевдониму. ; этот метод особенно полезен в таких системах, как VMS, где длина ; инструкция является переменной .SAVE_PSECT ; Сохранить текущий раздел программы .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
.
Зарезервированные слова
- АБС
- А ТАКЖЕ
- МНОЖЕСТВО
- BIN
- БЛОКИРОВАТЬ
- ОТ
- БАЙТ
- КОД
- ДАННЫЕ
- ДЕЛАТЬ
- ЕЩЕ
- ELSEIF
- КОНЕЦ
- ENDBLOCK
- КОНЕЧНЫЕ ДАННЫЕ
- ENDPROC
- ЛОР
- EXT
- ДЛЯ
- FRAC
- ПЕРЕЙТИ К
- HEX
- ЕСЛИ
- INT
- МЕТКА
- ЗЕМЛЯ
- ДЛИНА
- ПОЗВОЛЯТЬ
- LOR
- MOD
- NEV
- НЕТ
- Октябрь
- ИЗ
- ВАРИАНТ
- ИЛИ ЖЕ
- ПРОЦЕДУРА
- НАСТОЯЩИЙ
- REF
- REP
- ВОЗВРАЩАТЬСЯ
- RTL
- SHA
- SHL
- SLA
- SLL
- SRA
- SRL
- КУЧА
- SVC
- ВЫКЛЮЧАТЕЛЬ
- ТОГДА
- ЗАГЛАВИЕ
- К
- ВАЛ
- ПОКА
Рекомендации
- ^ Barnes, JGP (сентябрь 1980). «Стандартизация RTL / 2». Практика и опыт работы с программным обеспечением . Уайли. 10 (9): 707–719.
- ^ Спецификация языка RTL / 2
- ^ http://hopl.murdoch.edu.au/showlanguage2.prx?exp=596#_jmp0_
- ^ Барнс, JGP (1 января 1976 г.). Дизайн и философия RTL / 2 . Гейден. ISBN 978-0855012243.
- ^ BS 5904: 1980: Спецификация языка компьютерного программирования RTL / 2 . Британский институт стандартов . 30 сентября 1980 г. ISBN. 978-0580114410.
Документация SPL
SPL опубликовал ряд документации для RTL / 2. Каждому такому документу был присвоен ссылочный номер. Ниже приводится неполный список.
RTL / 2 Ссылка 1 - Спецификация языка RTL / 2RTL / 2 Ссылка 2 - Введение в RTL / 2RTL / 2 Ссылка 3 - Учебное пособие RTL / 2RTL / 2 Ref 4 - Системные стандартыRTL / 2 Ref 5 - Потоковый ввод / выводRTL / 2 Ссылка 18 - Советы по написанию программ RTL / 2RTL / 2 Ref 26 - Справочная карта языкаRTL / 2 Ref 39 - среда выполнения на PDP-11RTL / 2 Ref 63 - Руководство пользователя для PDP-11 под RSX-11MRTL / 2 Ref 107 - Руководство пользователя VAX / VMS RTL / 2RTL / 2 REF 130 - 32-разрядная среда выполнения RTL / 2 на VAX