Il PL/M (sigla di Programming Language for Microcomputers) è un linguaggio di programmazione ad alto livello creato da Gary Kildall nel 1972 per i microprocessori Intel[1]. Il PL/M non è più supportato da Intel ma esistono comunque in circolazione dei traduttori da PL/M a C.
Caratteristiche
Il PL/M incorporava concetti ripresi da preesistenti linguaggi quali il PL/I, l'ALGOL e l'XPL, ed integrava un esecutore di macro. A differenza di altri linguaggi contemporanei come il Pascal, il C o il BASIC, il PL/M non aveva funzioni standard per la gestione dell'input/output. Includeva delle funzionalità scritte per accedere a basso livello all'hardware dei processori a cui si rivolgeva e, per tale motivo, supportava in maniera molto efficiente l'accesso diretto a qualsiasi locazione di memoria, alle porte di I/O ed ai flag degli interrupt del processore.
Il PL/M è stato il linguaggio con il quale Kildall ha scritto il sistema operativo CP/M; è stato usato anche per scrivere il firmware dell'AS/400 (CISC). I compilatori PL/M sono stati resi disponibili per diverse piattaforme: Intel 4004, 8008, 8080, 8085, 8051, 8052, 8096, 80196, 8086/8088, 80186/80188, 286 e 386. Mentre alcuni di essi erano "nativi", vale a dire che giravano su sistemi che usavano lo stesso microprocessore (ad esempio per il sistema operativo Intel ISIS), c'erano anche dei "cross compiler", che giravano cioè su altri ambienti come il DOS di Microsoft o il VAX/VMS di Equipment Corporation.
Esempio di codice
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;
Note
Bibliografia
- Intel Corporation: PL/M-80 Programming Manual (1976) Doc. nº 98-268B
- Daniel D. McCracken: A Guide to PL/M Programming for Microcomputer Applications (1978) - Pearson Addison-Wesley
Collegamenti esterni