[Oberon] Project Oberon Network Setup
private at claudio.ch
Sat Dec 20 19:21:54 CET 2014
> Where were the sources of <SYSTEM.Mod> exposed: that I've been using for
> the last 20 years?
There cannot be a SYSTEM.Mod source code for the same reason you will not find any module defining +, -, DIV, MOD etc.
The difference between e.g. MOD and SYSTEM.PUT is simply that Wirth wanted to make a distinction between "safe" stuff and stuff that fiddles around at a low level. So you can always use MOD but use PUT only if you explicitly import from SYSTEM and thus flag your module in which you use PUT as a modules which does low-level hacking.
He could have introduced a special construct for doing this, e.g. that you need to define your modules using MODULE! instead of MODULE so you can access PUT but he somehow thought using the import mechanism and introducing a pseudo-module SYSTEM is better. Maybe this is a poor choice maybe this is a good choice anyway this was the choice taken for Oberon and also for its predecessor Modula-2.
The sources for SYSTEM.PUT etc. have always been at the very same place and as open or closed as the sources of DIV or MOD namely in the compiler sources. If you had access to them, then it was open, otherwise it was closed.
Claudio Nieder, Predigerplatz 34, CH-8001 Zürich, Tel +4179 357 6743, www.claudio.ch
More information about the Oberon