Category:PL/M: Difference between revisions
m (Minor addition to the statements list and differences from PL/1) |
(Note about the forms of DO statements available) |
||
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{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> |
||
Line 10: | Line 12: | ||
* 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 |
||
Line 18: | Line 20: | ||
There are no built-in I/O statements - calls to appropriate routines would be made instead. |
There are no built-in I/O statements - calls to appropriate routines would be made instead. |
||
<br><br> |
<br><br> |
||
Unlike |
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.: |
||
< |
<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 |
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| |
* [[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
This programming language may be used to instruct a computer to perform a task.
Lang tag(s): | plm |
---|---|
See Also: |
|
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.
@
- PL/M examples needing attention (empty)
- PL/M Implementations (1 P)
- PL/M User (3 P)
Pages in category "PL/M"
The following 167 pages are in this category, out of 167 total.
A
C
D
E
F
H
I
L
M
N
- N'th
- N-grams
- Narcissistic decimal number
- Nice primes
- Non-decimal radices/Convert
- Number names
- Numbers divisible by their individual digits, but not by the product of their digits.
- Numbers in base 10 that are palindromic in bases 2, 4, and 16
- Numbers in base-16 representation that cannot be written with decimal digits
- Numbers which are the cube roots of the product of their proper divisors
- Numbers whose binary and ternary digit sums are prime
P
R
S
- Safe and Sophie Germain primes
- Semiprime
- Sequence: smallest number greater than previous term with exactly n divisors
- Set consolidation
- Show ASCII table
- Sierpinski triangle
- Sieve of Eratosthenes
- Smallest square that begins with n
- Smith numbers
- Sorting algorithms/Gnome sort
- Sorting algorithms/Heapsort
- Sorting algorithms/Insertion sort
- Special divisors
- Special neighbor primes
- Special pythagorean triplet
- Sphenic numbers
- Square but not cube
- Steady squares
- Stern-Brocot sequence
- Strange numbers
- Strange plus numbers
- Strip a set of characters from a string
- Sum digits of an integer
- Sum of divisors
- Sum of elements below main diagonal of matrix
- Sum of first n cubes
- Sum of squares
- Sum of the digits of n is substring of n
- Sum of two adjacent numbers are primes
- Sylvester's sequence
- Syntax highlighting using Mediawiki formatting