Лучшие вопросы
Таймлайн
Чат
Перспективы

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

Примечания

Литература

Ссылки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads