PL/M
Developer | Gary Kildall[1]atMicrocomputer Applications Associates |
---|---|
First appeared | 1973[2][3] |
Influenced by | |
ALGOL,PL/I,XPL |
ThePL/M programming language (an acronym ofProgrammingLanguage forMicrocomputers[2][3]) is a high-levellanguageconceived and developed by Gary Kildall[2][3][4][1]in 1973[2][3]forHank Smith[2][3]atIntelfor itsmicroprocessors.
Overview
[edit]The language incorporated ideas fromPL/I,ALGOL[citation needed]andXPL,[2][3]and had an integratedmacro processor.As a graduate of theUniversity of WashingtonKildall had used theirBurroughs B5500computer,[5]and as such was aware of the potential of high-level languages such asESPOLfor systems programming.
Unlike other contemporary languages such asPascalorBASIC,PL/M had no standard input or output routines. It included features targeted at the low-level hardware specific to the target microprocessors, and as such, it could support direct access to any location in memory, I/O ports and the processor interrupt flags in a very efficient manner. PL/M was the first higher level programming language for microprocessor-based computers and was the original implementation language for those parts of theCP/Moperating system which were not written in assembler. Many Intel andZilog Z80-basedembedded systemswere programmed in PL/M during the 1970s and 1980s. For instance, thefirmwareof the Service Processor component of CISCIBM AS/400was written in PL/M.
The original PL/Mcompilertargeted theIntel 8008.[6]An updated version (PL/M-80) generated code for the8080processor, which would also run on the newerIntel 8085as well as on the Zilog Z80 family (as it isbackward-compatiblewith the 8080). Later followed compilers for theIntel 8048andIntel 8051-microcontroller family (PL/M-51) as well as for the8086 (8088)(PL/M-86),80186 (80188)and subsequent 8086-based processors, including the advanced80286and the 32-bit80386.There were also PL/M compilers developed for later microcontrollers, such as theIntel 8061and 8096 /MCS-96architecture family (PL/M-96).[7]
While some PL/M compilers were "native", meaning that they ran on systems using that same microprocessor, e.g. for the IntelISISoperating system, there were alsocross compilers,for instancePLMX,which ran on other operating environments such asDigital ResearchCP/M,Microsoft'sDOS,andDigital Equipment Corporation'sVAX/VMS.
PL/Mis no longer supported by Intel, but aftermarket tools like PL/M-to-Csource-code translatorsexist.[citation needed]
PL/M sample code
[edit]FIND:PROCEDURE(PA,PB)BYTE;
DECLARE(PA,PB)BYTE;
/* FIND THE STRING IN SCRATCH STARTING AT PA AND ENDING AT PB */
DECLAREJADDRESS,
(K,MATCH)BYTE;
J=BACK;
MATCH=FALSE;
DOWHILENOTMATCHAND(MAXM>J);
LAST,J=J+1;/* START SCAN AT J */
K=PA;/* ATTEMPT STRING MATCH AT K */
DOWHILESCRATCH(K)=MEMORY(LAST)AND
NOT(MATCH:=K=PB);
/* MATCHED ONE MORE CHARACTER */
K=K+1;LAST=LAST+1;
END;
END;
IFMATCHTHEN/* MOVE STORAGE */
DO;LAST=LAST-1;CALLMOVER;
END;
RETURNMATCH;
ENDFIND;
References
[edit]- ^abSwaine, Michael(2001-06-22)."Gary Kildall and Collegial Entrepreneurship".Dr. Dobb's Journal.Archivedfrom the original on 2019-07-26.Retrieved2006-11-20.
- ^abcdefShustek, Len (2016-08-02)."In His Own Words: Gary Kildall".Remarkable People.Computer History Museum.Archivedfrom the original on 2019-10-03.Retrieved2020-02-02.
- ^abcdefKildall, Gary Arlen(2016-08-02) [1993].Kildall, Scott;Kildall, Kristin (eds.).Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry(Manuscript, part 1). Kildall Family.Retrieved2016-11-17.
- ^Johnson, Herb (2019-07-21)."ISIS, Intellec, PL/M, iRMX, and Intel - 20th century".Retrotechnology.Archivedfrom the original on 2019-10-02.Retrieved2020-01-29.
- ^Kildall, Gary Arlen(September 1970)."APL\B5500 - The Language And Its Implementation"(PDF).University of Washington,Computer Science Group. Technical Report 70-09-04.Archived(PDF)from the original on 2019-12-20.Retrieved2020-01-29.
- ^Kildall, Gary Arlen(1974-06-27)."High-level language simplifies microcomputer programming"(PDF).Electronics.McGraw-Hill Education.pp. 103–109.Archived(PDF)from the original on 2021-11-14.Retrieved2021-11-14.
- ^"Translators And Utilities For Program Development".Software Handbook(PDF).Intel Corporation.1984 [1983]. p. 3-1. 230786-001.Archived(PDF)from the original on 2020-01-29.Retrieved2020-01-29.
[…] A LANGUAGE FOR EVERY NEED […] PL/M is the most popular 8086 language for systems programming and provides the best of both optimal code and high level language capabilities. […] PL/M-51 was the first high level language ever to be introduced for a microcontroller. The8096is similarly supported with PL/M-96. […]
Further reading
[edit]- PL/M-80 Programming Manual(PDF).Intel Corporation.January 1980 [1976]. Doc # 98-268B.Archived(PDF)from the original on 2019-12-21.Retrieved2020-01-29.
- MCS-8 Guide to PL/M Programming(PDF).Intel Corporation.September 1973.Archived(PDF)from the original on 2019-12-21.Retrieved2020-02-02.
- PL/M 386 Programmer's Guide(PDF).RadiSys Corporation.December 1999.Archived(PDF)from the original on 2006-08-14.Retrieved2020-01-29.(NB. Includes entire syntax of PL/M inBNFnotation.)
- McCracken, Daniel D.(1978).A Guide to PL/M Programming for Microcomputer Applications.Pearson/Addison-Wesley.
- Burgett, Ken (2017-11-10)."Development of Intel ISIS Operating System - An interview with Ken Burgett".Archivedfrom the original on 2023-11-24.Retrieved2023-11-25.[1][2]