I'm working on modernizing Rosetta Code's infrastructure. Starting with communications. Please accept this time-limited open invite to RC's Slack.. --Michael Mol (talk) 20:59, 30 May 2020 (UTC)


From Rosetta Code
This page is a stub. It needs more information! You can help Rosetta Code by filling it in!
This programming language may be used to instruct a computer to perform a task.
See Also:

Listed below are all of the tasks on Rosetta Code which have been solved using PL/M.
Your Help Needed
If you know PL/M, please write code for some of the tasks not implemented in 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
  • DO-END
  • GOTO

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 declaration of structures in PL/M does not use level-numbers, instead a syntax more like C structs is used, e.g.:


declares a structure A with two members, B and C.

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.

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

See Also[edit]


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