Lably
Skip to content

PL/0

  • 13 min read
  • 6 chapters

Related on Lably

Through Compiler, Constant (computer programming) and Variable (high-level programming language)

Features

All constants and variables used must be declared explicitly.

The only data types are integers. The only operators are arithmetic and comparison operators. There is an odd function that tests whether the argument is odd.

In the original implementation presented by Wirth, there are no input and output routines. The compiler prints the value as a given variable changes. So the program:

<span id="mwHQ"></span><span class="k" id="mwHg">var</span><span class="w" id="mwHw"> </span><span class="n" id="mwIA">i</span><span class="o" id="mwIQ">,</span><span class="w" id="mwIg"> </span><span class="n" id="mwIw">s</span><span class="o" id="mwJA">;</span> <span class="k" id="mwJQ">begin</span> <span class="w" id="mwJg"> </span><span class="n" id="mwJw">i</span><span class="w" id="mwKA"> </span><span class="o" id="mwKQ">:=</span><span class="w" id="mwKg"> </span><span class="mi" id="mwKw">0</span><span class="o" id="mwLA">;</span><span class="w" id="mwLQ"> </span><span class="n" id="mwLg">s</span><span class="w" id="mwLw"> </span><span class="o" id="mwMA">:=</span><span class="w" id="mwMQ"> </span><span class="mi" id="mwMg">0</span><span class="o" id="mwMw">;</span> <span class="w" id="mwNA"> </span><span class="k" id="mwNQ">while</span><span class="w" id="mwNg"> </span><span class="n" id="mwNw">i</span><span class="w" id="mwOA"> </span><span class="o" id="mwOQ"><</span><span class="w" id="mwOg"> </span><span class="mi" id="mwOw">5</span><span class="w" id="mwPA"> </span><span class="k" id="mwPQ">do</span> <span class="w" id="mwPg"> </span><span class="k" id="mwPw">begin</span> <span class="w" id="mwQA"> </span><span class="n" id="mwQQ">i</span><span class="w" id="mwQg"> </span><span class="o" id="mwQw">:=</span><span class="w" id="mwRA"> </span><span class="n" id="mwRQ">i</span><span class="w" id="mwRg"> </span><span class="o" id="mwRw">+</span><span class="w" id="mwSA"> </span><span class="mi" id="mwSQ">1</span><span class="o" id="mwSg">;</span> <span class="w" id="mwSw"> </span><span class="n" id="mwTA">s</span><span class="w" id="mwTQ"> </span><span class="o" id="mwTg">:=</span><span class="w" id="mwTw"> </span><span class="n" id="mwUA">s</span><span class="w" id="mwUQ"> </span><span class="o" id="mwUg">+</span><span class="w" id="mwUw"> </span><span class="n" id="mwVA">i</span><span class="w" id="mwVQ"> </span><span class="o" id="mwVg">*</span><span class="w" id="mwVw"> </span><span class="n" id="mwWA">i</span> <span class="w" id="mwWQ"> </span><span class="k" id="mwWg">end</span> <span class="k" id="mwWw">end</span><span class="o" id="mwXA">.</span>

gives the output:

0 0 1 1 2 5 3 14 4 30 5 55

However, most implementations have single input and single output routines.

Flow control structures are if-then and while-do constructs and user-defined procedures. Procedures cannot accept parameters.

Sign in to keep reading

5 more chapters are free with a Lably account.

More in Computing and communication

Source and licence. Adapted from the Wikipedia article “PL/0” (this version, 2024-08-13) by its contributors, shared under CC BY-SA 4.0. Lablypedia has left out its tables, references and most pictures, and linked it to other Lablypedia articles.