PL/M
| PL/M | |
| Druh | vyšší programovací jazyk |
|---|---|
| Dátum vzniku | 1973[1][2] |
| Tvorca | Gary Kildall[3] |
| Implementácie | PL/M-80, PL/M-86, PL/M-51, PL/M-96 |
PL/M, skratka z anglického Programming Language for Microcomputers (programovací jazyk pre mikropočítače),[1][2] je vyšší programovací jazyk, ktorý v roku 1973 navrhol a vyvinul Gary Kildall pre Hanka Smitha zo spoločnosti Intel pre mikroprocesor Intel 8008. Neskôr bol rozšírený pre novší Intel 8080.
Procesor 8080 mal dostatočný výkon na to, aby na ňom bežal kompilátor PL/M, chýbala mu však vhodná forma hromadnej pamäte. V snahe preniesť jazyk z počítača PDP-10 na 8080 napísal Kildall v PL/M diskový operačný systém, ktorý umožňoval používať disketu. Ten sa stal základom systému CP/M.
História
[upraviť | upraviť zdroj]Kildall pracoval v roku 1973 na Naval Postgraduate School v Monterey v Kalifornii, keď získal prostriedky na vybavenie počítačového laboratória, najprv stanicami SIM4 založenými na MCS-4 a o rok neskôr systémom Intel Intellec 8 založeným na Intel 8008.[4] V rámci zamestnania smel Kildall venovať jeden deň v týždni vlastným projektom, čoskoro im však venoval oveľa viac času a v noci býval vo svojej dodávke Volkswagen na parkovisku kancelárií Intelu na Bowers Avenue v Santa Clare.[5]
Jedného dňa navštívil Hanka Smitha, ktorý v Inteli viedol drobné oddelenie softvéru pre mikropočítače. Kildall mu vysvetlil svoj nápad vytvoriť pre 8008 vyšší programovací jazyk. Smith koncepciu nechápal, a tak mu Kildall vysvetlil, že programátor môže napísať napríklad X = Y + Z a program to prevedie na niekoľko riadkov kódu v jazyku symbolických inštrukcií, ktoré túto operáciu vykonajú. Smith potom zavolal jednému zo zákazníkov Intelu a spýtal sa, či by mal o takýto produkt záujem; keď zákazník záujem prejavil, Smith Kildallovi okamžite povedal, aby sa do toho pustil.[5]
Kildall napísal PL/M na základe koncepcií jazyka XPL, ktorý vychádzal zo syntaxe a koncepcií jazyka PL/I spoločnosti IBM. XPL bol výslovne navrhnutý na kompiláciu programov podobných PL/I v oveľa jednoduchšom softvérovom systéme, a to výslovne na výučbové účely. Keď Kildall začal jazyk propagovať, zistil, že o neho má záujem len málo programátorov, až kým nepredviedol, že program približne rovnakej veľkosti a výkonu ako v jazyku symbolických inštrukcií sa dá napísať asi za desatinu času.[5]
PL/M pôvodne bežal na veľkých počítačoch PDP-10, ktoré výsledný strojový kód vypisovali na diernu pásku; tá sa potom vložila do programátora pamätí PROM a pamäte ROM sa preniesli do cieľového stroja. S uvedením systému Intellec 8 v roku 1974 sa pokúsil preniesť systém na túto platformu, aby bol „self-hosting“, teda aby programátori mohli všetko robiť priamo na nej. Procesor 8008 však mal veľmi malý zásobník volaní s ôsmimi položkami, ktorý bol pre vyšší programovací jazyk jednoducho príliš malý.[6]
Tento problém vyriešil prvý Intel 8080, uvedený koncom roka 1973, ktorý podporoval zásobník ľubovoľnej veľkosti v pamäti.[7] Intel na základe nového čipu inovoval Intellec 8 na Intellec 8/80. Hoci tento systém mal dostatočný výpočtový výkon na beh PL/M, chýbala mu akákoľvek použiteľná forma hromadnej pamäte a rozšírenie operačnej pamäte na použiteľnú veľkosť bolo mimoriadne drahé.[8] Neďaleko Intelu práve spoločnosť Memorex uviedla novú lacnú disketovú jednotku,[9] čo zasa podnietilo Alana Shugarta založiť spoločnosť Shugart Associates a uviesť na trh lacnejšie jednotky. Kildallovi sa podarilo prehovoriť Finisa Connera, ktorý vtedy pracoval v Shugart, aby mu dal jednu z ich starších testovacích jednotiek.[10]
Pre systémy Intel však neexistoval radič disketovej jednotky, a hoci bol jeden načrtnutý, nikdy sa nezrealizoval. Jednotka rok ležala na polici, kým sa Kildall nerozhodol napísať softvér potrebný na jej používanie v PL/M, ktorý bežal na jeho emulátore 8080 na počítači PDP-10. V roku 1974 zavolal priateľovi z University of Washington, Johnovi Torodemu, ktorý pre 8080 zostrojil radič. Po niekoľkých mesiacoch systém fungoval; Kildall zaviedol ovládač, ten fungoval na prvý pokus a zobrazil výzvu príkazového riadka.[11]
V lete 1975 pôsobil Kildall ako konzultant v spoločnosti Signetics, ktorá ho požiadala o prenesenie PL/M na jej procesor Signetics 2650. Výsledkom bol jazyk PLuS. Procesor 2650 na trhu „prepadol“. Počas tohto pôsobenia sa Kildall zoznámil s Jimom Warrenom, ďalším konzultantom, ktorý zakladal nový časopis Dr. Dobb's Journal zameraný na minipočítače. Warren Kildallovi navrhol, aby v časopise podal inzerát pod názvom CP/M, a tým sa systém dostal na trh.[12]
Prehľad
[upraviť | upraviť zdroj]Jazyk prevzal myšlienky z PL/I a XPL[1][2] a mal integrovaný makroprocesor. Ako absolvent University of Washington Kildall používal ich počítač Burroughs B5500,[13] a preto si bol vedomý potenciálu vyšších jazykov, ako je ESPOL, pre systémové programovanie.
Na rozdiel od iných vtedajších jazykov, ako Pascal alebo BASIC, PL/M nemal žiadne štandardné vstupné ani výstupné rutiny. Obsahoval prvky zamerané na nízkoúrovňový hardvér konkrétnych cieľových mikroprocesorov, a preto dokázal veľmi efektívne podporovať priamy prístup na ľubovoľné miesto v pamäti, k vstupno-výstupným portom a k príznakom prerušení procesora. PL/M bol prvý vyšší programovací jazyk pre počítače založené na mikroprocesoroch a bol pôvodným implementačným jazykom tých častí operačného systému CP/M, ktoré neboli napísané v jazyku symbolických inštrukcií. Mnoho vstavaných systémov založených na procesoroch Intel a Zilog Z80 sa v 70. a 80. rokoch 20. storočia programovalo v PL/M. Napríklad firmware komponentu Service Processor v počítačoch IBM AS/400 s architektúrou CISC bol napísaný v PL/M.
Pôvodný kompilátor PL/M bol určený pre Intel 8008.[14] Aktualizovaná verzia (PL/M-80) generovala kód pre procesor 8080, ktorý bežal aj na novšom Intel 8085 a na rodine Zilog Z80 (keďže je s 8080 spätne kompatibilná). Neskôr nasledovali kompilátory pre rodiny mikrokontrolérov Intel 8048 a Intel 8051 (PL/M-51), ako aj pre 8086 (8088) (PL/M-86), 80186 (80188) a nasledujúce procesory založené na 8086 vrátane pokročilého 80286 a 32-bitového 80386.[15] Kompilátory PL/M vznikli aj pre neskoršie mikrokontroléry, napríklad pre rodinu architektúry 8096 / MCS-96 (PL/M-96).[16]
Niektoré kompilátory PL/M boli „natívne“, teda bežali na systémoch s tým istým mikroprocesorom, napríklad pre operačný systém ISIS od Intelu; existovali však aj krížové kompilátory, napríklad PLMX, ktoré bežali v iných operačných prostrediach, ako CP/M, MS-DOS a VAX/VMS.
Intel už PL/M nepodporuje,[chýba zdroj] existujú však nástroje tretích strán, napríklad prekladače zdrojového kódu z PL/M do jazyka C.[17]
Ukážka kódu v PL/M
[upraviť | upraviť zdroj]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;
Referencie
[upraviť | upraviť zdroj]- 1 2 3 SHUSTEK, Len. In His Own Words: Gary Kildall [online]. Computer History Museum, 2016-08-02, [cit. 2026-10-09]. Dostupné online. Archivované 2019-10-03 z originálu. (po anglicky)
- 1 2 3 KILDALL, Gary Arlen; KILDALL, Scott (ed.); KILDALL, Kristin (ed.). Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry. [s.l.] : Kildall Family, 1993. Rukopis, 1. časť; zverejnené 2016-08-02. Dostupné online. (po anglicky)
- ↑ SWAINE, Michael. Gary Kildall and Collegial Entrepreneurship. Dr. Dobb's Journal, 1997-04-01. Dostupné online [cit. 2026-10-09]. Archivované 2019-07-26 z originálu. (po anglicky)
- ↑ Kildall 1993, s. 48.
- 1 2 3 Kildall 1993, s. 49.
- ↑ Kildall 1993, s. 50.
- ↑ Kildall 1993, s. 51.
- ↑ Kildall 1993, s. 52.
- ↑ Kildall 1993, s. 53.
- ↑ Kildall 1993, s. 54.
- ↑ Kildall 1993, s. 55.
- ↑ Kildall 1993, s. 58.
- ↑ KILDALL, Gary Arlen. APL\B5500 – The Language And Its Implementation [online]. University of Washington, Computer Science Group, 1970-09, [cit. 2026-10-09]. Technical Report 70-09-04. Dostupné online. Archivované 2019-12-20 z originálu. (po anglicky)
- ↑ KILDALL, Gary Arlen. High-level language simplifies microcomputer programming. Electronics (McGraw-Hill), 1974-06-27, s. 103–109. Dostupné online [cit. 2026-10-09]. Archivované 2021-11-14 z originálu. (po anglicky)
- ↑ RadiSys Corporation. PL/M 386 Programmer's Guide. [s.l.] : RadiSys Corporation, 1999. [cit. 2026-10-14]. Dostupné online. Archivované 2006-08-14 z originálu. (po anglicky)
- ↑ Intel Corporation. Software Handbook. [s.l.] : Intel Corporation, 1984. Č. dokumentu 230786-001; 1. vyd. 1983. Dostupné online. Kapitola Translators And Utilities For Program Development, s. 3-1. Archivované z originálu. (po anglicky)
- ↑ PL/M to C UNIX converter [online]. GitHub, [cit. 2026-10-09]. Dostupné online. (po anglicky)
Ďalšia literatúra
[upraviť | upraviť zdroj]- Intel Corporation. PL/M-80 Programming Manual. [s.l.] : Intel Corporation, 1980. Doc # 98-268B; 1. vyd. 1976. Dostupné online. Archivované 2019-12-21 z originálu. (po anglicky)
- Intel Corporation. MCS-8 Guide to PL/M Programming. [s.l.] : Intel Corporation, 1973. Dostupné online. Archivované 2019-12-21 z originálu. (po anglicky)
- RadiSys Corporation. PL/M 386 Programmer's Guide. [s.l.] : RadiSys Corporation, 1999. Obsahuje celú syntax PL/M v Backusovej-Naurovej forme. Dostupné online. Archivované 2006-08-14 z originálu. (po anglicky)
- MCCRACKEN, Daniel D.. A Guide to PL/M Programming for Microcomputer Applications. [s.l.] : Addison-Wesley, 1978. Dostupné online. (po anglicky)
- BURGETT, Ken. Development of Intel ISIS Operating System – An interview with Ken Burgett [online]. 2017-11-10, [cit. 2023-11-25]. Dostupné online. Archivované 2023-11-24 z originálu. (po anglicky)
Zdroj
[upraviť | upraviť zdroj]Tento článok je čiastočný alebo úplný preklad článkov PL/M na anglickej Wikipédii a PL/M na nemeckej Wikipédii.