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.

Ссылки

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.