PL/M - PL/M

PL/M
Deweloper Gary Kildall w Microcomputer Applications Associates
Po raz pierwszy pojawiły się 1973 ( 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

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.