Лучшие вопросы
Таймлайн
Чат
Перспективы
PL/M
Из Википедии, свободной энциклопедии
Remove ads
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.
Remove ads
Синтаксис
Суммиров вкратце
Перспектива
Ключевые слова
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 символами.
Remove ads
Пример
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;
Remove ads
Примечания
Литература
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads