UNBCIC@BRFAPESP.BITNET (06/07/91)
=> Date: Sat, 1 Jun 91 07:38:17 GMT
=> From: editor%ucf1vm.BITNET@LILAC.BERKELEY.EDU
=> Subject: RE: Why no ** operator in Modula2?
=> DW> The question came up in class today: Why is there no ** or (x to the
=> DW> nth power) operator in standard Modula2? To make you start your own
=> DW> private module collection of goodies? Because it is machine
=> DW> dependant???
=>
=> I am a student of computer science at the federal institute of technology in
=> zurich. as you know, Wirth is doing his stuff here. so we hear some inside
=> informations here and there.
=>
=> now the most possible answer to your question:
=>
=> because taking functions liker power into the language makes the compiler
=> bigger!!!
=>
=> note: Wirth: a compiler has to be as small as possible (see also Oberon).
=>
=> for my opinion this is a good solution for compiler writers and it is easy to
=> port such a compiler (in comparision to e.g. a ADA-compiler). decentralism
=> (hm?)
That's why I like Forth. 2Kb compilers are possible. 8 Kb very complete
compilers are exists. 11 Kb compilers with assembler, or ANS (currently
dpANS) compilers with most of it's (many) extensions are a reality.
Trade-offs: Simplified sintax (RPN), no Floating Point (most times; obviously
it's avaible, but we aren't used to it), no operator overload.
So, making the compiler bigger can be a good reason for not put something. But
I doubt a ** operator would do that much, comparing to the current size of the
Modula 2 compilers. What I really think it's the reason it's that N. Wirth
doesn't think an ** operator is useful. I suppose he thinks that ** would be
used as many times as a SIN, for example. So, he taked the ** out of the
compiler, and the *LANGUAGE* gets smaller. Less things to learn. BTW, Forth,
although small in size is a BIG language, and surelly takes lots of time to
learn.
(8-DCS)
Daniel C. Sobral
UNBCIC@BRFAPESP.BITNET
P.S.: BTW, does someone know where I can get the Modula 3 -> C compiler source?
=>
=> Read ya
=> Bernd Goetz
=>
=>
=> --
=> uucp: uunet!m2xenix!puddle!2!302!815.21!Bernd.Goetz
=> Internet: Bernd.Goetz@p21.f815.n302.z2.fidonet.org