Category:PL/M: Difference between revisions

Note about the forms of DO statements available
(langgroup)
 
(Note about the forms of DO statements available)
 
(13 intermediate revisions by 2 users not shown)
Line 1:
{{langgrouplanguage|PL/M}}
|tags=plm
}}
 
Designed and implemented in 1973 by Gary Kildall, PL/M (Programming Language for Microcomputers) is (as the name suggests) a language designed for microcomputer software, particularly system software.
<br>
<br>
It is approximately a very small subset of PL/1 (though not a strict subset).
<br>
The following statements from PL/1 (with some changes) were available:
* assignment
* CALL
* DECLARE
* DO-END (4 forms: statement grouping, counted loops, while loops and case statements)
* IF-THEN-ELSE
* GOTO
* PROCEDURE-END
* RETURN
Additionally, a HALT statement, interrupt related statements and a number of compiler directive statements existed.<br>
There are no built-in I/O statements - calls to appropriate routines would be made instead.
<br><br>
Unlike PL/1, PL/M keywords are reserved and so cannot be used as identifiers. The Boolean operators are reserved words: AND, OR and NOT instead of the symbols: &, |, ¬.
<br>
Available datatypes (BYTE, WORD, etc.) reflected the available types of the microprocessors. The original 8008 and 8080 compilers only had BYTE and ADDRESS types - 8 and 16 bit unsigned integers.
<br><br>
The declaration of structures in PL/M does not use level-numbers, instead a syntax more like C structs is used, e.g.:
<code>DECLARE A STRUCTURE ( B BYTE, C WORD );</code>
declares a structure A with two members, B and C. Note that structures were not part of the original 8008/8080 PL/M languages.
<br>
<br>
PL/M was used in the development of the CP/M operating system and associated applications.
<br>
Compilers were available for a number of microprocessors including the 8080/Z80, 8051, 8086, 80186, 80286 and 80386.
<br>
The available datatypes varied depending on the processor.
<br>
<br>
Kildall's original PL/M compiler was implemented entirely in standard Fortran 66.
<br>
<br>
==See Also==
* [[wp:PL/M|PL/M on Wikipedia]]
* [[PL/1]]
* [[Polyglot:PL/I and PL/M]]
* [[Tasks not implemented in PL/M]]
3,025

edits