[Oberon] Life without local procedures

Richard Hable informujo at aon.at
Sat Feb 24 21:20:02 CET 2018


On 2018-02-24 02:40, Chris Burrows wrote:

>> Of course, if a procedure is written to use declarations of the
>> surrounding procedure, the programmer has already decided to
>> implement it in a way that it is only usable within this procedure.
>>
> 
> That is precisely what triggered the discussion about the relevance of local procedures. Since the recent (2016) change to the Oberon language that disallows access to intermediate objects (not just variables) these use-cases no longer exist.

Unfortunately...

> Can you point to an example in Project Oberon 2013 which clearly illustrates what you mean by 'it may make assumptions which only make sense in the context of the caller'. Alternatively, if no example exists, where you think it should have been done and why?

Sorry, don't know the Project Oberon source by heart. ;)

But in my recent use case of parsing a file line by line I needed a
predicate function to check if a line within the file contains relevant
information.

Technically, this function did not rely on anything except the single
input parameter (content of a single line as string), and so could just
as well have been declared as a private function in parallel to the
calling method.

Nevertheless, it checked the line content with the assumption that the
line came from that specific file, which was only accessed by the
calling method. Thus it logically should only be accessable within that
method.

Richard



More information about the Oberon mailing list