PL/M
| PL/M | |
|---|---|
| Класс языка | процедурный |
| Тип исполнения | компилируемый |
| Появился в | 1972 |
| Разработчик | Гэри Килдалл |
| Диалекты | PL/M-80, PL/M-86, PL/M-286, PL/M-386[1] |
| Испытал влияние | ALGOL, PL/I |
PL/M (англ. Programming Language for Microcomputers) — процедурный язык программирования, разработанный в 1972 фирмой Digital Research для микропроцессоров Intel.
Язык заимствовал идеи из PL/I, ALGOL, XPL и имел интегрированный макропроцессор. Компиляторы PL/M существовали для ранних моделей процессоров Intel: 8008, 8080, 8051, 8086, 286, 386 и Intel 80486.
В СССР язык был адаптирован под названием ПЛ/М-80 и использовался в ОС ДОС 1800 для микро-ЭВМ СМ 1800, версия для процессора 8086 под названием ПЛ/М-86 входила в состав набора операционных систем для микро-ЭВМ СМ 1810.
Синтаксис
[править | править код]Ключевые слова
[править | править код]ADDRESS, AND, BASED, BY, BYTE, CALL, CASE, DATA, DECLARE, DISABLE, DO, ELSE, ENABLE, END, EOF, GOTO, GO, HALT, IF, INITIAL, INTERRUPT, LABEL, LITERALLY, MINUS, MOD, NOT, PLUS, PROCEDURE, RETURN, OR, THEN, TO, WHILE, XOR
Идентификаторы
[править | править код]Регистронезависимы. Должны быть от 1 до 31 символа в длину, начинаться только с буквы и могут содержать цифры. Отличительная особенность — знак доллара в идентификаторе игнорируется компилятором и служит для удобства записи: GET$$PROG$$NAME и GETPROGNAME — идентичны.
Типы данных
[править | править код]Числовые переменные могут быть двух типов: BYTE и ADDRESS.
| Имя | Разрядность | Диапазон данных |
| BYTE | 8 | 0-255 |
| ADDRESS | 16 | 0-65535 |
Константы могут быть числовыми (в PL/M 80 — только целыми) и строковыми. Числовые константы в разных системах счисления записываются с определенным суффиксом. Примеры:
- двоичные: 11001B.
- восьмеричные: 31O или 31Q
- десятичные: 25D (суффикс необязателен)
- шестнадцатеричные: 019H префикс 0 обязателен, чтобы не спутать с идентификатором.
Строковая константа заключается в одинарные кавычки, если в строке нужна кавычка, ее следует продублировать. Каждый символ представлен в 7-битной кодировке ASCII.
Строка длиной 1 символ интерпретируется как BYTE а длиной в 2 символа как ADDRESS. Для строк большей длины нужно использовать оператор . (dot operator). В таком случае длина строки ограничена 255 символами.
Пример
[править | править код]FIND: PROCEDURE(PA,PB) BYTE;
DECLARE (PA,PB) BYTE;
/* FIND THE STRING IN SCRATCH STARTING AT PA AND ENDING AT PB */
DECLARE J ADDRESS,
(K, MATCH) BYTE;
J = BACK ;
MATCH = FALSE;
DO WHILE NOT MATCH AND (MAXM > J);
LAST,J = J + 1; /* START SCAN AT J */
K = PA ; /* ATTEMPT STRING MATCH AT K */
DO WHILE SCRATCH(K) = MEMORY(LAST) AND
NOT (MATCH := K = PB);
/* MATCHED ONE MORE CHARACTER */
K = K + 1; LAST = LAST + 1;
END;
END;
IF MATCH THEN /* MOVE STORAGE */
DO; LAST = LAST - 1; CALL MOVER;
END;
RETURN MATCH;
END FIND;
Примечания
[править | править код]Литература
[править | править код]На русском
[править | править код]- Система программного обеспечения СМ 1800. Описание языка ПЛ/М. — Москва: ИНЭУМ, 1980.
- Шаньгин В. Ф., Поддубная Л. М. Программирование на языке ПЛ/М. — Москва: Высшая школа, 1991 (ISBN 5-06-001789-3)
- Гребенников Л. К., Летник Л. А. Программирование микропроцессорных систем на языке ПЛ/М. — Москва: Финансы и статистика, 1996
На английском
[править | править код]- Intel Corporation (1976). PL/M-80 Programming Manual. Doc # 98-268B.
- McCracken, Daniel D. (1978). A Guide to PL/M Programming for Microcomputer Applications. Pearson Addison-Wesley.
Ссылки
[править | править код]- Язык программирования PL/M. Виртуальный компьютерный музей. Дата обращения: 25 апреля 2018.