Меню
Главная
Случайная статья
Настройки
|
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.
Ссылки
|
|