PL/M - PL/M
Deweloper | Gary Kildall w Microcomputer Applications Associates |
---|---|
Po raz pierwszy pojawiły się | 1973 |
Wpływem | |
ALGOL , PL/I , XPL |
Język programowania PL / M (skrót od P programo w anie L anguage dla M icrocomputers ) jest wysoki poziom języka pomyślany i opracowany przez Gary Kildall w 1973 roku dla Hanka Smitha w Intel dla swoich mikroprocesorów .
Przegląd
Język zawierał pomysły z PL/I , ALGOL i XPL oraz posiadał zintegrowany procesor makr . Jako absolwent Uniwersytetu Waszyngtońskiego Kildall używał swojego komputera Burroughs B5500 i jako taki zdawał sobie sprawę z potencjału języków wysokiego poziomu, takich jak ESPOL, do programowania systemów.
W przeciwieństwie do innych współczesnych języków, takich jak Pascal , C czy BASIC , PL/M nie miał standardowych procedur wejścia lub wyjścia. Zawierał funkcje ukierunkowane na sprzęt niskiego poziomu specyficzny dla docelowych mikroprocesorów i jako taki mógł obsługiwać bezpośredni dostęp do dowolnej lokalizacji w pamięci, portów I/O i flag przerwań procesora w bardzo wydajny sposób. PL/M był pierwszym językiem programowania wyższego poziomu dla komputerów opartych na mikroprocesorach i był oryginalnym językiem implementacji tych części systemu operacyjnego CP/M , które nie zostały napisane w asemblerze. Wiele systemów wbudowanych opartych na procesorach Intel i Zilog Z80 zostało zaprogramowanych w PL/M w latach 70. i 80. XX wieku. Na przykład oprogramowanie wewnętrzne komponentu Service Processor w CISC IBM AS/400 zostało napisane w języku PL/M.
Oryginalny kompilator PL/M był ukierunkowany na Intel 8008 . Zaktualizowana wersja (PL/M-80) wygenerowała kod dla procesora 8080 , który działałby również na nowszym Intel 8085, a także na rodzinie Zilog Z80 (ponieważ jest wstecznie kompatybilny z 8080). Później pojawiły się kompilatory dla rodziny mikrokontrolerów Intel 8048 i Intel 8051 (PL/M-51), a także dla procesorów 8086 (8088) (PL/M-86), 80186 (80188) i kolejnych 8086, w tym zaawansowane 80286 i 32-bitowe 80386 . Były też kompilatory PL/M opracowane dla późniejszych mikrokontrolerów, takich jak rodzina architektur Intel 8061 i 8096 / MCS-96 (PL/M-96).
Podczas gdy niektóre kompilatory PL/M były „natywne”, co oznacza, że działały w systemach korzystających z tego samego mikroprocesora, np. dla systemu operacyjnego Intel ISIS , istniały również kompilatory krzyżowe , na przykład PLMX , które działały w innych środowiskach operacyjnych, takich jak Digital Research CP / M, Microsoft 's DOS i Digital Equipment Corporation ' s VAX / VMS .
Technologia PL/M nie jest już obsługiwana przez firmę Intel, ale istnieją narzędzia rynku wtórnego, takie jak translatory kodu źródłowego PL/M-to-C .
Przykładowy kod 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;
Bibliografia
Dalsza lektura
- Instrukcja programowania PL/M-80 (PDF) . Intel Corporation . Styczeń 1980 [1976]. Dokument nr 98-268B. Zarchiwizowane (PDF) z oryginału w dniu 21.12.2019 . Źródło 2020-01-29 .
- MCS-8 Przewodnik po programowaniu PL/M (PDF) . Intel Corporation . Wrzesień 1973. Zarchiwizowane (PDF) z oryginału w dniu 21.12.2019 . Źródło 2020-02-02 .
- Przewodnik programisty PL/M 386 (PDF) . Korporacja RadiSys . Grudzień 1999. Zarchiwizowane (PDF) od oryginału z dnia 2006-08-14 . Źródło 2020-01-29 .(Uwaga. Obejmuje całą składnię PL/M w notacji BNF .)
- McCracken, Daniel D. (1978). Przewodnik po programowaniu PL/M dla aplikacji mikrokomputerowych . Pearson / Addison-Wesley .
Ten artykuł jest oparty na materiale zaczerpniętym z bezpłatnego słownika komputerowego on-line sprzed 1 listopada 2008 r. i włączonym na warunkach „ponownego licencjonowania” GFDL w wersji 1.3 lub nowszej.