ArticleslgStudy

engineering

PL/M

PL/M is a engineering topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand PL/M rather than just read about it. In short: PL/M, an acronym for Programming Language for Microcomputers, is a high-level language conceived and developed by Gary Kildall in 1973 for Hank Smith at Intel for the Intel 8008. It was later expanded for the newer Intel 8080.

Key takeaways

  • PL/M belongs to engineering; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect PL/M to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of PL/M from memory before moving on to harder problems.

Reference excerpt

PL/M, an acronym for Programming Language for Microcomputers, is a high-level language conceived and developed by Gary Kildall in 1973 for Hank Smith at Intel for the Intel 8008. It was later expanded for the newer Intel 8080. The 8080 had enough power to run the PL/M compiler, but lacked a suitable form of mass storage. In an effort to port the language from the PDP-10 to the 8080, Kildall used PL/M to write a disk operating system that allowed a floppy disk to be used. This was the basis of CP/M.

History Kildall was working at the Naval Postgraduate School in Monterey, California in 1973 when he received funds to equip a computer lab, first with MCS-4-based SIM4 and, a year later, the Intel 8008-based Intel Intellec 8. As part of his employment, Kildall was allowed to spend one day a week on his own projects, but soon found himself spending much more than that living in his VW Microbus in the parking lot of the Intel offices on Bowers Avenue in Santa Clara. One day he went to see Hank Smith, Intel's manager for the tiny microcomputer software department. Kildall explained his idea of making a high level language for the 8008. Smith didn't understand the concept, so Kildall explained that a programmer could write something like X = Y + Z and the program would convert that into several lines of assembler code which would perform this operation. Smith then called one of Intel's customers and asked if they might be interested in such a product, and when they expressed their interest, Smith immediately told Kildall to do it. Kildall wrote PL/M based on the concepts of the XPL language, which in turn was based on the syntax and concepts of IBM's PL/I. XPL was explicitly designed to compile PL/I-like programs in a much simpler software system, explicitly for teaching purposes. As Kildall began promoting the language he found that few programmers were interested in it, until he demonstrated that one could write a program of roughly the same size and performance as assembly but in about a tenth of the time. PL/M originally ran on large PDP-10 mainframe computers that would output the final machine language code on punch tape which would then be fed into an programmable ROM burner and then the ROMs would be transferred to the target machine. With the release of the Intellec 8 in 1974, he began an attempt to port the system to this platform to make it "self hosting" so that programmers could do everything on that platform. Unfortunately, the 8008 had a very small eight entry call stack that was simply too small for a high-level language. This problem was solved with the introduction of the first Intel 8080 in late 1973, which supported a stack of any size in memory. Intel upgraded the Intellec 8 to the Intellec 8/80 based on the new chip. Although this system had the processing power to run PL/M, it lacked any useful form of mass storage and adding a useful amount of main memory was extremely expensive. Just down the street from Intel, Memorex had recently introduced a new low-cost floppy disk drive, and this in turn prompted Alan Shugart to start Shugart Associates and introduce lower-cost drives. Kildall was able to talk Finis Conner, then at Shugart, into giving him one of their older test drives. Unfortunately, there was no drive controller for the Intel systems, and while one was sketched out it was never implemented. The drive sat on a shelf for a year before Kildall decided to go ahead and write the software needed to use it in PL/M running on his 8080-emulator on the PDP-10. In 1974 he called a friend from the University of Washington, John Torode, who built a controller for the 8080. After a few months, the system was running, and Kildall loaded the driver and it ran the first time and displayed the prompt. During the summer of 1975, Kildall was working as a consultant at Signetics, who asked him to port PL/M to their Signetics 2650. This resulted in the PLuS language. The 2650 "bombed" in the market and Signetics gave up on it within a year. They decided to license the Fairchild F8 instead. While working there, Kildall met Jim Warren, another consultant, who was setting up the new minicomputer-oriented magazine, Dr. Dobb's Journal. Warren suggested Kildall put an ad in the magazine under the name of CP/M, and this launched the system into the market.

Overview The language incorporated ideas from PL/I and XPL, and had an integrated macro processor. As a graduate of the University of Washington Kildall had used their Burroughs B5500 computer, and as such was aware of the potential of high-level languages such as ESPOL for systems programming. Unlike other contemporary languages such as Pascal or BASIC, PL/M had no standard input or output routines. It included features targeted at the low-level hardware specific to the target microprocessors, and as such, it could support direct access to any location in memory, I/O ports and the processor interrupt flags in a very efficient manner. PL/M was the first higher level programming language for microprocessor-based computers and was the original implementation language for those parts of the CP/M operating system which were not written in assembler. Many Intel and Zilog Z80-based embedded systems were programmed in PL/M during the 1970s and 1980s. For instance, the firmware of the Service Processor component of CISC IBM AS/400 was written in PL/M. The original PL/M compiler targeted the Intel 8008. An updated version (PL/M-80) generated code for the 8080 processor, which would also run on the newer Intel 8085 as well as on the Zilog Z80 family (as it is backward-compatible with the 8080). Later followed compilers for the Intel 8048 and Intel 8051-microcontroller family (PL/M-51) as well as for the 8086 (8088) (PL/M-86), 80186 (80188) and subsequent 8086-based processors, including the advanced 80286 and the 32-bit 80386. There were also PL/M compilers developed for later microcontrollers, such as the Intel 8061 and 8096 / MCS-96 architecture family (PL/M-96). 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, there were also cross compilers, for instance PLMX, which ran on other operating environments such as CP/M, MS-DOS, and VAX/VMS. PL/M is no longer supported by Intel, but aftermarket tools like PL/M-to-C source-code translators exist.

PL/M sample code

References

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with PL/M

Start with the simplest possible case. Write down what PL/M claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In engineering, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to PL/M before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about PL/M ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of PL/M

In research
PL/M appears in engineering research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses PL/M in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
PL/M is common in secondary-school and first-year university syllabi. It links to neighbouring topics Digital Research languages, PL/I programming language family, Procedural programming languages, so understanding it makes those chapters shorter.
In everyday life
Look for PL/M outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study PL/M in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what PL/M means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain PL/M out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is PL/M in simple terms?

PL/M, an acronym for Programming Language for Microcomputers, is a high-level language conceived and developed by Gary Kildall in 1973 for Hank Smith at Intel for the Intel 8008. It was later expanded for the newer Intel 8080.

Why does PL/M matter?

Because it connects several engineering ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study PL/M?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on PL/M.

Tags

  • Digital Research languages
  • PL/I programming language family
  • Procedural programming languages
  • Programming languages
  • Programming languages created in 1972
  • Structured programming languages

Keep exploring