PL / M - PL/M
Разработчик | Гэри Килдалл из Microcomputer Applications Associates |
---|---|
Впервые появился | 1973 |
Под влиянием | |
АЛГОЛ , PL / I , XPL |
Язык программирования PL / М (аббревиатура Р rogramming L anguage для M icrocomputers ) является высоким уровнем языка задуман и разработан Килдаллом в 1973 году для Хэнка Смита в Intel для своих микропроцессоров .
Обзор
Язык включает идеи PL / I , ALGOL и XPL и имеет встроенный макропроцессор . Будучи выпускником Вашингтонского университета, Килдалл использовал свой компьютер Burroughs B5500 и поэтому знал о потенциале языков высокого уровня, таких как ESPOL, для системного программирования.
В отличие от других современных языков, таких как Pascal , C или BASIC , в PL / M не было стандартных процедур ввода или вывода. Он включал в себя функции, нацеленные на низкоуровневое оборудование, специфичное для целевых микропроцессоров, и, как таковой, он мог поддерживать прямой доступ к любому месту в памяти, портам ввода-вывода и флагам прерывания процессора очень эффективным образом. PL / M был первым языком программирования более высокого уровня для компьютеров на базе микропроцессоров и исходным языком реализации для тех частей операционной системы CP / M, которые не были написаны на ассемблере. Многие Intel и Zilog Z80 -На встроенные системы были запрограммированы в PL / M в течение 1970 - х и 1980 - х годов. Например, встроенное ПО компонента служебного процессора CISC IBM AS / 400 было написано на PL / M.
Первоначальный компилятор PL / M был нацелен на Intel 8008 . Обновленная версия (PL / M-80) сгенерировала код для процессора 8080 , который также будет работать на более новом Intel 8085, а также на семействе Zilog Z80 (поскольку он обратно совместим с 8080). Позже последовали компиляторы для семейств микроконтроллеров Intel 8048 и Intel 8051 (PL / M-51), а также для 8086 (8088) (PL / M-86), 80186 (80188) и последующих процессоров на базе 8086, включая расширенный 80286 и 32-битный 80386 . Были также разработаны компиляторы PL / M для более поздних микроконтроллеров, таких как семейство архитектур Intel 8061 и 8096 / MCS-96 (PL / M-96).
Хотя некоторые компиляторы PL / M были «родными», то есть они работали в системах, использующих тот же микропроцессор, например, для операционной системы Intel ISIS , были также кросс-компиляторы , например PLMX , которые работали в других операционных средах, таких как Digital Research. CP / M, Microsoft 's DOS , и Digital Equipment Corporation ' s VAX / VMS .
PL / M больше не поддерживается Intel, но существуют дополнительные инструменты, такие как трансляторы исходного кода PL / M-to-C .
Пример кода PL / M
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;
использованная литература
дальнейшее чтение
- Руководство по программированию PL / M-80 (PDF) . Корпорация Intel . Январь 1980 [1976]. Документ 98-268B. Архивировано (PDF) из оригинала 21 декабря 2019 года . Проверено 29 января 2020 .
- Руководство по программированию PL / M MCS-8 (PDF) . Корпорация Intel . Сентябрь 1973 г. Архивировано 21 декабря 2019 г. (PDF) из оригинала . Проверено 2 февраля 2020 .
- Руководство программиста PL / M 386 (PDF) . Корпорация RadiSys . Декабрь 1999. Архивировано (PDF) из оригинала 14 августа 2006 года . Проверено 29 января 2020 .(NB. Включает весь синтаксис PL / M в нотации BNF .)
- Маккракен, Дэниел Д. (1978). Руководство по программированию PL / M для микрокомпьютерных приложений . Пирсон / Аддисон-Уэсли .
Эта статья основана на материалах, взятых из Free On-line Dictionary of Computing до 1 ноября 2008 г. и включенных в соответствии с условиями «перелицензирования» GFDL версии 1.3 или новее.