Category:PL/M: Difference between revisions

From Rosetta Code
Content added Content deleted
m (Fixed link)
(Note about the forms of DO statements available)
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{stub}}{{language}}
{{language|PL/M
|tags=plm
}}


PL/M (Programming Language for Microcomputers) is (as the name suggests) a language designed for microcomputer software, particularly system software.
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>
<br>
<br>
It is approximately a very small subset of PL/1 (though not a strict subset).
It is approximately a very small subset of PL/1 (though not a strict subset).
<br>
<br>
The following statements were available:
The following statements from PL/1 (with some changes) were available:
* assignment
* assignment
* CALL
* CALL
* DECLARE
* DECLARE
* DO-END (4 forms: statement grouping, counted loops, while loops and case statements)
* DO-END
* IF-THEN-ELSE
* IF-THEN-ELSE
* GOTO
* GOTO
* PROCEDURE-END
* PROCEDURE-END
* RETURN
* RETURN
Additionally a number of compiler directive statements existed. There are no built-in I/O statements - calls to appropriate routines would be made instead.
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>
<br><br>
Unlike PL1, PL/M keywords are reserved and so cannot be used as identifiers.
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>
<br>
Available datatypes (BYTE, WORD, etc.) reflected the available types of the microprocessors.
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>
<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.:
The declaration of structures in PL/M does not use level-numbers, instead a syntax more like C structs is used, e.g.:
<lang PLM>DECLARE A STRUCTURE ( B BYTE, C WORD );</lang>
<code>DECLARE A STRUCTURE ( B BYTE, C WORD );</code>
declares a structure A with two members, B and C.
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>
<br>
<br>
PL/M was used in the development of the CP/M operating system and associated applications.
PL/M was used in the development of the CP/M operating system and associated applications.
<br>
<br>
Compilers were available for a number of microprocessors including the 8080 Z80.
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>
<br>
<br>
==See Also==
==See Also==
* [[wp:PL/M|Wikipedia page on PL/M]]: [https://en.wikipedia.org/wiki/PL/M]
* [[wp:PL/M|PL/M on Wikipedia]]
* [[PL/1]]
* [[PL/1]]
* [[Polyglot:PL/I and PL/M]]
* [[Tasks not implemented in PL/M]]

Latest revision as of 15:33, 10 December 2023

Language
PL/M
This programming language may be used to instruct a computer to perform a task.
Lang tag(s): plm
See Also:


Listed below are all of the tasks on Rosetta Code which have been solved using PL/M.

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.

It is approximately a very small subset of PL/1 (though not a strict subset).
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.
There are no built-in I/O statements - calls to appropriate routines would be made instead.

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: &, |, ¬.
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.

The declaration of structures in PL/M does not use level-numbers, instead a syntax more like C structs is used, e.g.: DECLARE A STRUCTURE ( B BYTE, C WORD ); declares a structure A with two members, B and C. Note that structures were not part of the original 8008/8080 PL/M languages.

PL/M was used in the development of the CP/M operating system and associated applications.
Compilers were available for a number of microprocessors including the 8080/Z80, 8051, 8086, 80186, 80286 and 80386.
The available datatypes varied depending on the processor.

Kildall's original PL/M compiler was implemented entirely in standard Fortran 66.

See Also

Subcategories

This category has the following 3 subcategories, out of 3 total.

Pages in category "PL/M"

The following 165 pages are in this category, out of 165 total.