Article View: comp.lang.misc
Article #1130Re: Modula
From: Michael Rys
Date: Mon, 09 Apr 1990 12:18
Date: Mon, 09 Apr 1990 12:18
68 lines
3865 bytes
3865 bytes
In article <1990Mar30.132508.25555@uwasa.fi> fs@uwasa.fi (Filip Sawicki LAKE) writes:
>Other languages:
>
>MODULA:
> Superset of Pascal. Very strongly typed, though typecasting is
> allowed. Pascal inconsistences are gone, and there are no
> functions with variable number of parameters.
>
> ADV: modularization, thus easy type checking and so on. Two types
> of modules: "definition" module and "implementation" one allow to
> change real working code of module without recompiling all program.
> Separate compilation is the greatest advantage over Pascal.
>
> DISADV: slow compilation. Upper case keywords (!!!). Painful I/O:
> separate procedures for printing/reading each variable, like
> WriteChar, WriteInt and so on. Following strange upper/lower case
> rules can drive anyone insane and produce ashes from his fingers.
>
> You can't write Unix in Modula, but lot's of Atari St programs are
> written in it.
>
1. Compilation speed depends upon the implementation. For my taste
Modula-2 generates faster code (faster as adverb and adjective) than
a lot of C compilers, if you use a good implementation.
2. There is no need to write UNIX in Modula-2 since M2 is designed for
small, effective, efficient and controllable tasks. This might even
include an operating system (e.g., there are several OS developed at
the ETH for single-user workstations (e.g. Medos, Medos-2 etc.) and
there might be a multi-user OS as well).
3. The history of M2 (as far as I remember):
After visiting PARC Xerox and playing with Mesa, Wirth came back to
the ETH and designed Modula a true system programming language. This
language was revised to a full programming language called Modula-2
in the late seventies (around 1977/8), which included separate and
independent compilation, "strong" and static type checking, the
concept of coroutines for multiprocessing and some other features
(like the priority scheme). The language evolved, that means the
coroutine concept was taken out of the language, since you can easily
implement it as a module. It also means that the standard library
modules weren't as standard as many hoped, but if you find a better
way, why not providing it in an academical "product"?
To the end of the eighties, when OOP and standardized languages came
en vogue, several OOP-dialects and successors like Modula-2+ and
Modula-3 appeared and a Modula-2 standard was "designed". Since Wirth
doesn't like standardization (;-) and thought the concept of
extenting not only procedures (as you already could do with modules),
but also types, he and his group designed Oberon which allows type
extension (basic point of OOP!).
Sorry for the length, more on request.../Michael
P.S.: Followups go to comp.lang.modula2
+---------------------------------------------------------------+
| Michael Rys, V. Conzett Str. 34; CH-8004 Zuerich; Switzerland |
+---------------------------------------------------------------+
| UUCP: mrys@ethz.UUCP or EAN: mrys@ifi.ethz.ch |
| mrys@bernina.UUCP IPSANet: mrys@ipsaint |
| Voice: +41 1 242 35 87 |
+---------------------------------------------------------------+
-- Wovon man nicht sprechen kann, darueber muss man schweigen. --
Ludwig Wittgenstein, Tractatus logico-philosophicus
Technical Details
Message-ID:
<4146@ethz.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!attcan!uunet!mcsun!cernvax!chx400!ethz!mrysReferences:
<90087.215030PL152008@tecmtyvm.mty.itesm.mx> <6221@wolfen.cc.uow.oz> <1990Mar30.132508.25555@uwasa.fi>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!mcsun!cernvax!chx400!ethz!mrys From: mrys@ethz.UUCP (Michael Rys) Newsgroups: comp.lang.misc Subject: Re: Modula Message-ID: <4146@ethz.UUCP> Date: 9 Apr 90 12:18:45 GMT References: <90087.215030PL152008@tecmtyvm.mty.itesm.mx> <6221@wolfen.cc.uow.oz> <1990Mar30.132508.25555@uwasa.fi> Reply-To: mrys@bernina.ethz.ch.UUCP (Michael Rys) Followup-To: comp.lang.modula2 Organization: ETH Zuerich, Switzerland Lines: 68