PL/M: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
←Nuova pagina: {{WIP|Leo72}} Il '''PL/M''' (acronimo di '''''P'''rogramming '''L'''anguage for '''M'''icrocomputers'') è un linguaggio di programmazione ad alto livello creato d... |
m →Collegamenti esterni: clean up, replaced: IDE → IDE |
||
(19 versioni intermedie di 14 utenti non mostrate) | |||
Riga 1:
{{Linguaggio di programmazione
|immagine =
|didascalia =
|versione =
|utilizzo =
|tipizzazione =
|specifiche =
|estensione =
|ha_influenzato =
|implementazione_riferimento =
|sistema_operativo =
|lingua =
|licenza =
|sito_web =
}}
Il '''PL/M''' (sigla di '''''P'''rogramming '''L'''anguage for '''M'''icrocomputers'') è un [[linguaggio di programmazione ad alto livello]] creato da [[Gary Kildall]] nel [[1972]] per i [[microprocessore|microprocessori]] [[Intel]]<ref name="swaine">{{cita pubblicazione|nome=Michael|cognome=Swaine|data=22/06/2001|titolo=Gary Kildall and Collegial Entrepreneurship|rivista=Dr. Dobb's Journal|url=http://www.drdobbs.com/184410428;jsessionid=TMPFOC1SMKZGPQE1GHRSKHWATMY32JVN|accesso=19/09/2010}}</ref>. Il PL/M non è più supportato da Intel ma esistono comunque in circolazione dei traduttori da PL/M a [[C (linguaggio)|C]].
==Caratteristiche==
Il PL/M incorporava concetti ripresi da preesistenti linguaggi quali il [[PL/I]], l'[[ALGOL]] e l'[[XPL (linguaggio di programmazione)|XPL]], ed integrava un [[Macro (informatica)|esecutore di macro]]. A differenza di altri linguaggi contemporanei come il [[Pascal (linguaggio di programmazione)|Pascal]], il [[C (linguaggio)|C]] o il [[BASIC]], il PL/M non aveva [[funzione (informatica)|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 [[memoria (informatica)|locazione di memoria]], alle [[porta (informatica)|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'[[IBM System i|AS/400 (CISC)]]. I [[compilatore|compilatori]] PL/M sono stati resi disponibili per diverse piattaforme: [[Intel 4004]], [[Intel 8008|8008]], [[Intel 8080|8080]], [[Intel 8085|8085]], [[Intel 8051|8051, 8052]], 8096, 80196, [[Intel 8086|8086/8088]], [[Intel 80186|80186/80188]], [[Intel 80286|286]] e [[Intel 80386|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 [[MS-DOS|DOS]] di [[Microsoft]] o il [[OpenVMS|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==
<references/>
==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==
* {{Collegamenti esterni}}
* [http://www.slac.stanford.edu/grp/cd/soft/rmx/manuals/PLM_386.PDF ''PL/M 386 Programmer's Guide''] {{pdf}} – RadiSys Corporation, dicembre 1999. Include la sintassi completa del PL/M in notazione [[Backus-Naur Form|BNF]]. Disponibile anche su [https://web.archive.org/web/20060814050742/http://www.slac.stanford.edu/grp/cd/soft/rmx/manuals/PLM_386.PDF ''Archive.org''].
* [https://web.archive.org/web/20110516200821/http://www.ristancase.com/da-plm/index.php Development Assistant for PL/M (DA-PL/M)] – [[Ambiente di sviluppo integrato|IDE]] commerciale per PL/M sviluppapta da RistanCASE GmbH
* [http://www.plm2c.com/ PLM2C - PL/M to C Translator] – Traduttore commerciale PL/M->C di Alternative Solutions
* [https://web.archive.org/web/20100914184007/http://www.pennington.com/plmcee.htm XTRAN Demonstration: Translating PL/M to C] – Traduttore commerciale PL/M->C di Pennington Systems, Inc.
{{Controllo di autorità}}
[[Categoria:Linguaggi di programmazione procedurali]]
[[Categoria:Linguaggi di programmazione strutturati]]
|