РТЛ/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, но реализованы на каком-то другом языке в среде хоста.
Привет, мир [ править ]
НАЗВАНИЕ Привет, мир;
LET NL=10;
EXT PROC (REF ARRAY BYTE) TWRT;
ENT PROC RRJOB() INT;
TWRT("Привет, мир#NL#");
ВОЗВРАТ(1);
ЭНДПРОК;
Встроенная сборка [ править ]
RTL/2 компилируется на ассемблере и предоставляет CODE
оператор, позволяющий включать язык ассемблера в исходный код RTL/2 . Это доступно только при компиляции с опцией системного программирования (CN:F).
The CODE
Оператор принимает два операнда: количество байтов, используемых для вставки кода, и количество используемых байтов стека.
В операторах кода для доступа к переменным RTL/2 используются два символа отключения. Они различаются в разных операционных системах . На Digital Equipment Corporation (DEC) PDP-11 под управлением RSX-11M и VAX под управлением VMS символы отключения следующие: *
и /
.
Хотя особенности различаются в зависимости от операционной системы, ниже приведен пример вставки кода в VAX/VMS:
КОД 6 , 0 ;
JMP КОД_ENT ; Для этой вставки кода можно установить фиксированную длину при переходе на новый psect.
; этот метод особенно полезен в таких системах, как VMS, где длина
; инструкции являются переменными
.SAVE_PSECT ; Сохранить текущий раздел программы.PSECT
ASMB_CODE , EXE , NOWRT , LONG CODE_ENT
:
* PARAM1 ( AP ) , * COUNTER / MYDATA
JMP CODE_EX.RESTORE_PSECT
MOVL
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 RTL/2, ссылка 2 – Введение в RTL/2 RTL/2 Ref 3 – Учебное пособие по RTL/2 RTL/2, ссылка 4 – Системные стандарты RTL/2 Ref 5 — Потоковый ввод-вывод RTL/2 Ссылка 18 – Советы по написанию программ RTL/2. RTL/2 Ref 26 – Справочная карта по языку RTL/2 Ref 39 – Среда выполнения на PDP-11 RTL/2 Ref 63 – Руководство пользователя PDP-11 под управлением RSX-11M. RTL/2 Ref 107 – Руководство пользователя VAX/VMS RTL/2 RTL/2 REF 130 – 32-битная среда выполнения RTL/2 на VAX.