[Oberon] Need V4 Code for trivial task.

Skulski, Wojciech skulski at pas.rochester.edu
Wed Dec 7 04:44:58 CET 2016


> But it's not as modular/simple/safe as the canonical piping syntax:
>   InputFile |Filter1 |Filter2....|FilterN > OutputFile

Unix pipes are based on a certain programming paradigm which is different from the Oberon System and from GUI-based systems in general. The piping paradigm is based on the notion of a program transforming input into output, which was inspired by the chain "card reader --> computer --> card punch". You may recall:

PROGRAM CALC (INPUT, OUTPUT)

In Unix input is named stdin, output is named stdout, but the idea is the same. Piping means that the output of one program becomes the input to another one. It can be achieved with punched card decks, files on disk, or FIFO in memory. The technical details are secondary. The key to understanding is the word "sequential". Unix pipes can give you an illusion of concurrent execution, but the data is in in fact transformed sequentially.

The GUI paradigm is a different one. GUI systems do not have one input and one output. GUI can take its input from anywhere and it can put the output anywhere. The GUI is manifestly parallel, even though under the hood all the processing is performed sequentially. But here the sequential processing becomes a secondary implementation detail. The paradigm itself is parallel.

After saying all this I would declare that you are advocating a paradigm which Oberon System (and any other GUI system) has explicitly disposed of. Your piping can be implemented in Oberon with an executable program whose interface would explicitly say PROGRAM (input, output) or "function main (stdin, stdout)", or something compatible. There are Oberon compilers which will produce this kind on an executable. Oberon System is not one of of them.

W.


More information about the Oberon mailing list