[Oberon] Why macros were not implemented in oberon language?
eas lab
lab.eas at gmail.com
Tue Jul 8 06:42:46 CEST 2014
Let's addreess the OP's repeated claim for 'his perceived need' for macros.
> certain commercial applications can be VERY, VERY time critical!
OK, here's an example:
imagine a <rectangle>: ABCD, which needs it's <corners pulsed>, repeatedly
in a cycle to 10% accuracy:
Pulse(A); wait(0.4pS);
Pulse(B); wait(0.35pS);
Pulse(C); wait(0.25pS);
Pulse(D); wait(3.4pS);
You use dedicated hardware for this - still.
For a longer time scale, you may be able to inline-machine-code, with
NOPs to pad-out extra delays.
ETHO is not designed for this - nor for slicing bread.
Humanity [as reflected by the market] needs ETHO's facilities.
Eg. when I'm 3 screens into reading my gmail, I shouldn't need to
lose my place and scroll up to the top [or bottom = redundant duplication]
to find the required-function amongst a pile-of garbage.
ETHO has a *CONSISTENT* MenuFrame which is always visible/accessible.
] Ultimately, the basic idea behind every language is that it should serve
] as a means for communication. This means that partners must use and
] understand the same language.
Yes, communication between humans.
The big cost wastes come from human effort to manage spurious complexity,
for which macros/in-line-code have nothing to contribute.
== Chris Glur.
On 7/7/14, Alexander Iljin <ajsoft at yandex.ru> wrote:
> Hi, all!
>
>> In a high level language, like Oberon, it doesn't make sense to have two
>> constructs with the same semantic, i.e. two equal procedures P and Q
>> (normal and inline) will exhibit the same behaviour in the entire program.
>
> Also, please keep in mind, everyone, that in the context of dynamically
> loadable (and discardable) modules you really don't want to inline a
> procedure that you've imported from another module. Because if that other
> module happens to change the procedure afterwards, you'll have the old copy
> in your code.
>
> ---=====---
> Александр
>
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>
More information about the Oberon
mailing list