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...
 
Nessun oggetto della modifica
Riga 1:
{{WIP|Leo72}}
Il '''PL/M''' ([[acronimo]] 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]] [[Intel 8080|8080]]<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.ddj.com/184410428|accesso=2006-11-20}}</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]], ed integrava un [[macro|esecutore di macro]]. A differenza di altri linguaggi contemporanei come il [[Pascal (linguaggio)|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)]].<!--
 
PL/M was the original implementation language for the [[CP/M]] operating system. Also the [[firmware]] of the Service Processor component of CISC [[AS400|AS/400]] was written in PL/M. PL/M [[compiler]]s have been made for the following processors/controllers: [[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]], and [[Intel 80386|386]]. While some PL/M compilers were "native", meaning that they ran on systems using that same microprocessor, e.g. for the Intel [[ISIS (operating system)|ISIS]] operating system, there were also "cross compilers" which ran on other operating environments such as Microsoft's [[DOS]], and Digital Equipment Corporation's [[OpenVMS|VAX/VMS]].
 
 
 
'''PL/M Sample code:'''
 
<code>
 
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;
</code>
 
==Notes==
{{reflist}}
 
==References==
*Intel Corporation (1976). ''PL/M-80 Programming Manual''. Doc # 98-268B.
*McCracken, Daniel D. (1978). ''A Guide to PL/M Programming for Microcomputer Applications''. Pearson Addison-Wesley.
 
==External links==
*[http://www.slac.stanford.edu/grp/cd/soft/rmx/manuals/PLM_386.PDF ''PL/M 386 Programmer’s Guide''] ([[Portable Document Format|PDF]]) &ndash; RadiSys Corporation, December 1999. Includes entire syntax of PL/M in [[Backus-Naur Form|BNF]] notation. Also available on [http://web.archive.org/web/20060814050742/http://www.slac.stanford.edu/grp/cd/soft/rmx/manuals/PLM_386.PDF ''Archive.org''].
*[http://www.ristancase.com/da-plm/index.php Development Assistant for PL/M (DA-PL/M)] &ndash; Commercial PL/M [[integrated development environment|IDE]] from RistanCASE GmbH
*[http://www.plm2c.com/ PLM2C - PL/M to C Translator] &ndash; Commercial product from Alternative Solutions
*[http://www.pennington.com/plmcee.htm XTRAN Demonstration: Translating PL/M to C] &ndash; Commercial product from Pennington Systems, Inc.
 
{{compu-lang-stub}}
{{FOLDOC}}
-->
==Note==
<references/>
 
[[Categoria:Linguaggi di programmazione]]
 
[[ca:PL/M]]
[[cs:PL/M]]
[[en:PL/M]]
[[fr:PL/M]]
[[nl:PL/M]]
[[pl:PL/M]]
[[ru:PL/M]]
[[tg:PL/M]]