[Oberon] (no subject)
muller at inf.ethz.ch
muller at inf.ethz.ch
Wed Aug 28 23:24:07 CEST 2002
"Frank van Riet" <Fvanriet at spescom.com> wrote:
> 3) Dynamic array headers: Why was the decision made to to stick the header
> in the middle of the structure
> and not in-front as with other structures. Not only is it
> non-intuitive nit having the pointer point
> to the firts element, but it would also make language
> interoperability very difficult. Let alone the
> nightmare of porting older code in which this was not the case...
I think the heap structures are evolutionary and there were some
backward-compatability issues. Remember that the Ceres GC didn't
support pointers in array elements at all. Re-doing and simplifying
the heap structures would be a nice improvement.
> Again I'm doing system programming, where we really don't use GC, so if I
> want to pass a
> pointer to an array to a C rountine (say) I don't want the GC specific stuff
> to get in the way.
A workaround is to declare the parameter of the C procedure as a LONGINT
in the Oberon signature and pass the address of the first element:
SomeProc(SYSTEM.ADR(arrayptr[0]))
> To conclude. Let me be clear about this. I work in Oberon every day, and I
> enjoy it. That does
> not mean that one should not think about what goes on behind the scenes, and
> what the reasons
> are (or agree with all of the choices). If anything this will only make us
> better programmers.
Good to hear. I wonder how many of us here use Oberon every day?
> Would anyone who'd like to write
> a runtime system in Java please raise their hands :)
This is not so far-fetched. Java is used for embedded systems work,
and there are even Java VMs written in Java (with some interesting
bootstrapping): http://researchweb.watson.ibm.com/jalapeno/
-- Pieter
P.S. The absence of unsigned numeric types in Oberon is one of the perennial
topics in Oberon discussion forums. Search a bit in comp.lang.oberon
a few years back:
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&group=comp.lang.oberon
Some others are: the absence of enumerated types, System 3 vs. V4,
the 3-button mouse interface, the flat file name space, the absence
of processes, extending the user base. So much for progress :-)
--
Pieter Muller, Computer Systems Institute, ETH Zurich / MCT Lab, Zurich
Native Oberon OS: http://www.oberon.ethz.ch/native/
More information about the Oberon
mailing list