PL/M - PL/M

PL/M
Entwickler Gary Kildall von Microcomputer Applications Associates
Erstmals erschienen 1973 ( 1973 )
Beeinflusst von
ALGOL , PL/I , XPL

Die PL / M Programmiersprache (ein Akronym von P rogrammierung L anguage für M icrocomputers ) ist ein High-Level - Sprache von konzipiert und entwickelt Gary Kildall 1973 für Hank Smith bei Intel für seine Mikroprozessoren .

Überblick

Die Sprache beinhaltete Ideen von PL/I , ALGOL und XPL und hatte einen integrierten Makroprozessor . Als Absolvent der University of Washington hatte Kildall ihren Burroughs B5500- Computer verwendet und war sich als solcher des Potenzials von Hochsprachen wie ESPOL für die Systemprogrammierung bewusst .

Im Gegensatz zu anderen zeitgenössischen Sprachen wie Pascal , C oder BASIC hatte PL/M keine Standard-Ein- oder Ausgaberoutinen. Es umfasste Funktionen, die auf die für die Zielmikroprozessoren spezifische Low-Level-Hardware ausgerichtet waren, und als solche konnte es auf sehr effiziente Weise den direkten Zugriff auf jeden Speicherort, I/O-Ports und die Prozessor-Interrupt-Flags unterstützen. PL/M war die erste höhere Programmiersprache für mikroprozessorbasierte Computer und war die ursprüngliche Implementierungssprache für die Teile des CP/M- Betriebssystems, die nicht in Assembler geschrieben waren. Viele Intel- und Zilog-Z80- basierte Embedded-Systeme wurden in den 1970er und 1980er Jahren in PL/M programmiert. Beispielsweise wurde die Firmware der Serviceprozessorkomponente von CISC IBM AS/400 in PL/M geschrieben.

Der ursprüngliche PL/M- Compiler zielte auf den Intel 8008 ab . Eine aktualisierte Version (PL/M-80) generierte Code für den 8080- Prozessor, der auch auf dem neueren Intel 8085 sowie auf der Zilog Z80-Familie laufen würde (da sie mit dem 8080 abwärtskompatibel ist ). Später folgten Compiler für die Intel 8048 und Intel 8051 -Mikrocontroller-Familie (PL/M-51) sowie für die 8086 (8088) (PL/M-86), 80186 (80188) und nachfolgenden 8086-basierten Prozessoren, darunter die Advanced 80286 und 32-Bit 80386 . Es gab auch PL/M-Compiler, die für spätere Mikrocontroller entwickelt wurden, wie die Intel 8061 und 8096 / MCS-96 Architekturfamilie (PL/M-96).

Während einige PL / M - Compiler „native“ waren, was bedeutet , dass sie auf Systemen lief , dass die gleichen Mikroprozessor, zB für die Intel - ISIS - Betriebssystem gab es auch Cross - Compiler zum Beispiel PLMX , die RAN auf anderen Betriebsumgebungen wie Digital Research CP / M, Microsoft 's DOS und Digital Equipment Corporation ' s VAX / VMS .

PL/M wird von Intel nicht mehr unterstützt, aber es gibt Aftermarket-Tools wie PL/M-to-C -Quellcode-Übersetzer .

PL/M-Beispielcode

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;

Verweise

Weiterlesen

Dieser Artikel basiert auf Material, das vor dem 1. November 2008 aus dem Free Online Dictionary of Computing entnommen wurde und unter die "Relicensing"-Bedingungen der GFDL , Version 1.3 oder höher, aufgenommen wurde.