Subject: comp.lang.modula2: Answers to Common Questions - v1.13 95.05.12
Date: 10 Nov 1995 08:06:37 -0800
Summary: This posting contains a list of Frequently Asked Questions (and
.their answers) about the programming language Modula-2 and the Usenet
.newsgroup comp.lang.modula2.  It might well be read by anyone before
.posting a question to comp.lang.modula2.

Version: 1.14

Originally-By: mgallo@iptech.com (Mike Gallo)
Maintained-By: randy@psg.com (Randy Bush)

Copyright 1992-5, M Gallo and R Bush.  All rights reserved.  May be
distributed for free only in toto, including this notice.

Additions corrections solicited.  Commercials and commercial products are
intentionally undermentioned.  Implementors are preferred to distributors.


CONTENT

1)  What is comp.lang.modula2?
2)  What is Modula-2?
3)  What about Modula-2 standardization?
4)  What are Oberon and Oberon-2?
5)  What about Modula-3, Object Oberon, and Seneca?
6)  Where can I find implementations of Modula-2?
7)  Where can I find implementations of Oberon[-2]?
8)  Where can I find interesting libraries and sources?
9)  Some popular FTP sites


1)  What is comp.lang.modula2?

comp.lang.modula2 is a forum for the discussion of the Modula-2 programming
language and related topics.  Prominent "related topics" have been the Oberon
languages, Modula-3, the new ISO Modula-derived languages, etc.  The newsgroup
is gated to the FidoNet echo conference MODULA-2.

Folk with only Internet E-Mail access can participate in the discussion by
joining the INFO-M2 mailing list.  To do this, send an E-Mail message to
listserv@ucf1vm.cc.ucf.edu, with the following in the message body:
    subscribe info-M2 yourFirstname yourLastName
This server also has a very large archive of previous messages.

2)  What is Modula-2?

Modula-2 is a programming language designed by Niklaus Wirth of Pascal fame.
Among other things, it features strong typing,modules, a rich variety of data
types, a powerful set of control statements, procedure types, opaque types, and
coroutines.


3)  What about Modula-2 standardization?

There is no a formal standard for the Modula-2 language or library.  There
is an ISO drafting effort, led by the BSI, which has been in process for
over a decade, and which goes far beyond N Wirth's text, "Programming in
Modula-2".  There is an ISO committee, ISO/JTC1/SC22/WG13, which is
extending it even further every year.  To find out what's happening with
standardization, contact the chair of WG13, Mark Woodman,
<m.woodman@open.ac.uk>.


4)  What are Oberon and Oberon-2?

The Oberon language was a part of Wirth's Oberon operating system.  Oberon is
the successor to Modula-2 by its original designer,Niklaus Wirth of ETH,
Zurich.  In brief, it removes variant records, opaque types, enumerations,
subranges, the CARDINAL type, local modules, automatic qualifications, general
indexing, the FOR and WITH statements, and even the notion of a program or
main module.  Oberon adds type extension (inheritance) and, in its purest
form, automatic garbage collection.

Oberon-2 is Oberon with a small set of extensions by H. Moessenboeck, also of
ETH, Zurich.  These extensions are type-bound procedures (methods), read-only
export, open array variables, a WITH statement with variants, and the
reintroduction of the FOR loop.

More detailed information can be found in "Software: Practice and Experience"
(July 1988, September 1989) and by anonymous ftp from the host
neptune.inf.ethz.ch:/Oberon/Docu.

"Project Oberon, The Design of an Operating System and Compiler"
N. Wirth and J. Gutknecht
ACM Press and Addison-Weseley Publishing Company, 1992
ISBN 0-201-54428-8 
neptune.inf.ethz.ch (129.132.101.33)
in ~ftp/Oberon/Examples/ProjectOberon.tar.Z
File ~ftp/Oberon/Examples/readme.PO gives some further information.

"Programming in Oberon", Reiser & Wirth, ACM Press, 320 pgs, 1992.

"The Programming Language Oberon-2", Moessenboeck & Wirth, _Structured
Programming_, Vol. 12, No. 4, pp. 179-195, 1991.


5)  What about Modula-3, Object Oberon, and Seneca?

Modula-3 is an interesting language designed at DEC Software Research Center,
also as a successor to Modula-2.  Unless there is a specific question about
how it relates to Modula-2 or Oberon, posts about Modula-3 would be better
directed to Comp.lang.modula3.

Object Oberon is an Oberon variant designed by H.  Moessenboeck and J. Templ
of ETH, Zurich.  It eventually evolved into Oberon-2.

Seneca is an Oberon variant focusing on numerical applications and is by R.
Griesemer of ETH, Zurich. It is still under development.


6)  Where can I find (preferably free) implementations of Modula-2?

While there have been several implementations of Modula-2, they are not as
numerous nor as easy to find as, for example, C.  Some implementations are
listed below.  These are merely some commonly used implementations, and should
not be taken as a recommendation of any of the following products.  Only
implementors are listed, not distribuors.  Free or shareware implementations
receive preferential treatment, as they encourage the new and/or experimental
Modulan.

For MS-DOS:

     Fitted Software Tools
     P.O. Box 867403
     Plano, TX 75086
     USA
     ftp at ftp.psg.com:pub/modula-2/pc
     FidoNet .REQuest from 1:105/6

     Gardens Point Modula-2
     ftp at pluto.fit.qut.edu.au:/pub/gpm_modula2

     Clarion Topspeed Modula-2
     Clarion Software
     150 East Sample Road
     Pompano Beach, FL  33064
     USA

     Extasy Modula-2 (demo version)
     Multiscope, Inc.
     1235 Pear Ave.
     Mountain View, CA  94043
     USA
     (415) 968-4892

     Stony Brook Software
     187 East Wilbur, Suite 9
     Thousand Oaks, CA 91360
     USA
     Tel: +1 (805) 496 5837 (tech Support)
     Fax; +1 (805) 496 7429

Sun-4:

    The only free Sun4-implementation I've heard of is that of Metrowerks
    (ftp 132.208.12.5, login metro, passwd release4.0) but I haven't tested
    it yet.
    -- borchert@mathematik.uni-ulm.de

    While Sun (more properly SunPro) has discontinued direct support of M2,
    responsibility for it has been transferred to Edinburgh Portable
    Compilers Ltd (see below).

Sun-3:

    From: borchert@MATHEMATIK.UNI-ULM.DE (Andreas Borchert)

    Ulm's Modula-2 system for SUN 3 is now available via anonymous ftp from
    titania.mathematik.uni-ulm.de (134.60.66.21). You'll find it in the
    subdirectory pub/soft/modula/ulm/sun3.

Macintosh:

    MacMETH Modula-2 for the Mac
    neptune.inf.ethz.ch:~/macmeth/*
    ftp.psg.com:~/pub/.modula-2/macMETH/*

    p1 GmbH
    Hogenbergstr. 20
    W-80686 Munich 21
    Germany
    Tel   : +49(89)5461310
    Fax   : +49(89)5802597
    E-Mail: GER.XSE0109@AppleLink.Apple.COM (Elmar Henne)
    (features Object oriented extensions which are compatible with Apple's
     Object Pascal and MacApp)

    Metrowerks, Inc.
    The Trimex Bldg, Rte 11
    Mooers, NY 12958
    USA
    Tel  : (514) 458-2018
    Email: achim@mips1.info.uqam.ca (Marcel Achim)
    (Wirth's one-pass ported to MacOS, module size limited to 32k)

VMS:

    Florian Matthes
    Fachbereich Informatik
    Universitaet Hamburg
    Vogt-Koelln-Strasse 30
    D-22527 Hamburg
    Germany
    Tel: + (49) 40 54715 332

    TERRA Datentechnik
    Bahnhofstrasse 33
    CH-8703 Erlenbach
    Switzerland
    (M2VMS (formerly Logitech's?) + distributor for others)
    Phone: +41 1 910 35 55
    Fax:   +41 1 910 19 92
    BBS:   +41 1 910 35 31 (300 - 9600 baud, 8, N, 1)

Misc:

    A Modula-2 compiler for VAX BSD & ULTRIX and for MIPS/ULTRIX is available
    via FTP from gatekeeper.dec.com:pub/DEC/Modula-2.

    2i Industrial Informatics GmbH
    Haierweg 20e
    D-79114 Freiburg
    Germany
    (MOCKA Modula-2 for DEC VAX(VMS&ULTRIX) & maybe others)
    ( there is some doubt they are still active )

    A+L AG
    D"aderiz 61
    CH-2540 Grenchen
    (From: hartmut@oberon.nbg.sub.org (Hartmut Goebel)
    (distributes both a M2 and an Oberon-2 compiler for AmigaOS)

    Armadillo Computing
    5225 Marymount Drive
    Austin, Texas 78723 USA
    512/926-0360
    Internet: jolinger@bix.com
    (M2 for Amiga)
    (From: jolinger@bix.com)

    Associated Computer Experts b.v.
    Van Eeghenstraat 100
    Amsterdam 1071GL
    Netherlands
    (Modula-2 for 680x0)

    Edinburgh Portable Compilers, Ltd.
    17 Alva Street
    Edinburgh EH2 4PH
    UK
    support@epc.ed.ac.uk  voice: +44 131 225 6262  fax: +44 131 225 6644
    20 Victor Square
    Scotts Valley
    California 95066
    info@epc.com  +1 408 438 1851
    (SCO Unix V.[34], Motorola 88000 UNIX V.[34], SPARC UNIX & Solaris,
    RS/6000 AIX)

    Gardens Point Modula-2
    Prof. John Gough <gough@fit.qut.edu.au>
    Queensland University of Technology
    Gardens Point Branch
    2 George Street
    GPO Box 2434
    Brisbane, Queensland  4001
    Australia
    +61 7-864-2132 (voice)
    +61 7-864-1801 (fax)
    (for DOS and most UNIX workstations)

    MOCKA: Modula Compiler Karlsruhe:
    Universitaet Karlsruhe
    Institut fuer Programm- und Datenstrukturen
    Vincenz-Priessnitz-Strasse 3
    D-76128 Karlsruhe (FRG)
    Phone: *-49-721-608 6088        FAX: *-49-721-691462
    ---
    system       | operating system    |   processor         |
    -------------+---------------------+---------------------+
    SUN 4        | SUN OS              | SPARC               |
    SUN 4        | Solaris2.x/SunOS 5.0| SPARC               |
    DEC Station  | ULTRIX              | R3000, R2000 (MIPS) |
    Silicon      | IRIX                | R3000, R2000 (MIPS) | *
      Graphics   |                     |                     |
    Sony NEWS    | News                | MC 68020 with 68881 | *
    SUN 3        | SUN OS              | MC 68020 with 68881 |
    PCS Cadmus   | UNIX                | MC 68020 with 68881 | *
    NeXT         | Mach/UNIX           | MC 68020 with 68881 | *
    HP 9000/300  | HPUX                | MC 68020 with 68881 | *
    HP 9000/700  | HPUX                | C back end          |
    RS6000       | AIX                 | C back end          | *
    VAX          | UNIX (BSD) / ULTRIX | VAX                 | *
    PC           | Linux               | 80386               | +
    PC           | 386BSD              | 80386               | +
    C-back end   | UNIX                | different           |
    translates   |                     |                     |
    M-2 To C     |                     |                     |
    ---
    we [no longer] have access to the maschines marked with a * , it is
    therefor not possible for us to update the version of Mocka for these
    architectures.
    ---
    The versions marked with a + are free, i.e. no orderform must be send to
    us, no lincence fee to be paid. If you use them, please send an email to
    ---
    For more information please send an email to:
    modula@ipd.info.uni-karlsruhe.de
    ---
    i44s10.ira.uka.de..in /pub/mocka/linux
    sunsite.unc.edu..in /pub/Linux/Incoming
    tsx-11.mit.edu..in /incoming

    Introl Corporation
    9220 W. Howard Avenue     647 W. Virginia St.
    Milwaukee, WI 53288       Milwaukee, WI 53204
    U.S.A>
    (Cross compiler for targets H630x, M680x, M680x0, NS32000)

    Jefferson Software
    12416 N. 28th Dr. #18-236
    Phoenix, AZ 85029-2434
    U.S.A.
    (Jefferson Modula-2 for Atari ST (and others?))

    Mandeno Granville Electronics Ltd.
    128 Grange Rd.
    Auckland 3
    New Zealand.
    ph +64 9 6300558
    fax =64 9 6301720
    (compiler available for the Intel 8051 family of Micro's)
    (From: dekker@decus.org.nz)

    Masthaven Development Limited
    East Suite, 511 Coldham Lane
    Cambridge CB1 3LN
    United Kingdom
    (Modula-2 for 68000 UNIX)

    Megamax
    1200 East Collins, Suite 214
    Richardson, TX 75081
    U.S.A.
    (Modula-2 for Atari ST)

    ModulaWare Dotzel
    Meolans Revel
    F-04340 Le Lauzet
    France
    Tel/Fax +33 92.81.30.99
    ModulaWare GmbH
    Haselbachstr. 113
    D-97653 Bischofsheim
    Germany
    Tel/Fax +49 (9772) 7101
    e-mail: 100023.2527@compuserve.com
    (distributor and developer for many platforms)

    Rowley Associates
    32 Rowley
    Cam, Dursley
    Glos. GL11 5NT
    United Kingdom
    (Modula-2 for "most platforms")
    (ROMable, realtime, ... specialties)

    Vail Silicon Tools Inc.
    Box 165
    Pompano Beach, FL 33069
    U.S.A.
    (cross-compiler (PC host) for 8051 controller)

    WATCOM
    415 Phillip Street
    Waterloo, Ontario  N2L 3X2
    Canada
    Tel.:  (519) 886-3700
    FAX:   (519) 747-4971
    BBS:   (519) 884-2103
    Telex: 06-955458
    email: tech@watcom.on.ca
    (Modula-2 VM/SP CMS)

[ m2c, a Modula-2 to C translator kit ]

    From: sgccseh@citecuc.citec.oz.au (Stephen Hocking)

    It is in ftp.gmd.de:/gmd/cocktail/mtc.tar.Z where the bloke who wrote it
    all (Josef Grosch) is based. You will also need reuse.tar.Z and
    front.tar.Z from the same directory. For those interested in compilers,
    that directory is a goldmine.

    Ross L Richardson <rlr@postoffice.utas.edu.au> comments:

    I believe mtc was originally written by M[atthias] Martin, as some kind
    of Diploma project.

Modula-2*

    Modula-2* Compiler Available

    Modula-2* constructs allow for clear and portable parallel software
    without intolerable loss of efficiency.  The following list contains
    the main advances of Modula-2*:

    o The programming model of Modula-2* is a strict superset of data
      parallelism.  It allows both synchronous and asynchronous parallel
      programs.
    o Modula-2* is problem-oriented in the sense that the programmer can
      choose the degree of parallelism and mix the control mode (SIMD- or
      MIMD-like) as needed by the intended algorithm.
    o Parallelism may be nested to arbitrary depth.
    o Procedures may be called from sequential or parallel contexts and can
      themselves generate parallel activity without any restrictions.
    o Most Modula-2* programs can be translated into efficient code for both
      SIMD and MIMD architectures.

    I386  =  386/486/Pentium PC running BSDI/386 Unix (sequential)
    KSRP  =  Kendall Square Research KSR-1/KSR-2 running KSR-OS (parallel)
    KSRS  =  Kendall Square Research KSR-1/KSR-2 running KSR-OS (sequential)
    LINX  =  386/486/Pentium PC running Linux (sequential)
    MASP  =  MasPar MP-1/MP-2 with DECStation frontend running MP-Ultrix
.     (parallel)
    MIPS  =  R3000/R4000 DECStation running Ultrix (sequential)
    SUN3  =  680x0 Sun-3 running SunOS (sequential)
    SUN4  =  SPARC Sun-4/SparcStation running SunOS (sequential)

    You can get the IPD Modula-2* distributions for all supported
    architectures by anonymous ftp from "ftp.ira.uka.de" [129.13.10.90] in the
    directory "pub/programming/modula2star".


7)  Where can I find implementations of Oberon(-2)?

Guy Laden <laden@math.tau.ac.il> maintains a list at 
http://www.math.tau.ac.il/~laden/Oberon.html

To repeat, this should not be taken as a recommendation of any of the
following products, but. . .

ETH, Zurich has released free implementations of the Oberon system.  These
include Oberon compilers.  They are available by anonymous ftp at
neptune.inf.ethz.ch:/Oberon/* or gatekeeper.dec.com:/pub/plan/oberon/*.

Oberon-M is an independently produced Oberon compiler for MS-DOS systems that
can also be found at neptune and gatekeeper.

There is also a Modula-2/Oberon-2 to C translator available through
    Real Time Associates Ltd.
    Canning House
    59 Canning Road
    Croydon, Surrey  CRO 6QF
    UK

From: thutt@THAMA1.APGEA.ARMY.MIL

    The source to the Oberon compilers is not publicly available however, you
    can license the front end and/or the back end for the Oberon-2 compiler
    from ETH for 1000 Swiss Francs.  The license agreement does prohibits you
    from redistributing the source, but you are free to do whatever you want
    with any derivative product, provided you give ETH credit for the original
    compiler source.

    You are also required to make ETH aware of your product, and provide the
    product to them should they ask.  It does not state if it needs to be
    source or executable code, however.

    It is a pretty loose agreement, but not so loose to hinder ETH.  1000 SFr
    is about 757 dollars, as of last month.

AmigaOberon:
    Fridtjof Siebert
    fridi@amokst.stgt.sub.org

Modulaware (see above) has commercial implementations of Oberon-2 for a
number of platforms.


There now is a free Oberon compiler for Amiga called Oberon-A. It can be
found on AmiNet, AMOK-Disks and at several other places.


8) Where can I find interesting libraries and sources?

The FTP sites listed in 9.

Amiga Sources:

    From: htgoebel@cip.informatik.uni-erlangen.de (hartmut Goebel)
    
    At ftp.uni-paderborn.de in /amiga/amok you can get all the disks from the
    AMOK series via anonymous ftp.  Please download only 18.00 - 8.00 h
    (MET), cause the transmitt rate is low. Perhaps someone call move the
    disks to overseas, too.

    On this series there are several modules both for Oberon and modula2 and
    executable programms (most with source).  While the Programms almost run
    only on the Amiga, the modules may be interesting for other systems, too.

    There are modules for many diverent usages, not only generic.

MAS Modula-2 Algebra System

    From: kredel@unipas.fmi.uni-passau.de (Heinz Kredel)

    MAS is an experimental computer algebra system combining imperative
    programming facilities with algebraic specification capabilities for
    design and study of algebraic algorithms.  MAS views mathematics in the
    sense of universal algebra and model theory and is in some parts
    influenced by category theory.

    MAS (0.3x and 06.x) is available on electronic networks (internet) via
    anonymous ftp from:  alice.fmi.uni-passau.de = 123.231.10.1

Repertoire and other software component libraries
    PMI
    P.O. Box 8402                 3279 N. Nicolet Drive
    Green Bay, WI 54308-8402      Green Bay, WI 54311
    U.S.A.

    PMOS is a collection of modules to allow you to write multitasking
    programs.  It runs on IBM-PC compatible computers.  It has been
    compiled with TopSpeed Modula-2.  Porting to other machines and
    compilers is possible, but should probably be tackled only by
    experienced programmers.
    
PMOS - a multitasking library (ftp.psg.com)

    The package is potentially of interest to
     - people who want to write real-time applications for the IBM-PC;
     - Modula-2 programmers who want a collection of utility modules;
     - students of operating systems who want to look at real code.
    Full source is included.
    
    The PMOS package includes
     - a kernel which contains a CreateTask procedure, plus various
       routines to support the multitasking.
     - intertask communication via semaphores, mailboxes, queues;
       or you can add your own mechanisms.
     - device drivers for keyboard, printer, A/D, floppy disk, hard
       disk, hardware timer.  (No mouse as yet.)
     - a file system compatible with the MS-DOS FAT system; or you
       can choose to use standard library file operations.
     - screen windows in both text and graphics modes.  (The text-mode
       support is very complete; graphics modes are less fully
       supported so far.)
     - screen utilities such as menus, on-screen editing of defined
       data fields, multiple virtual screens.
     - miscellaneous modules: random numbers, some data structures,
       sorting, etc.

Application framework for Windows using TopSpeed M2

    <steinrya@ifi.uio.no> has written an application framework for Windows
    using TopSpeed M2 version 3.xx. It defines a set of classes using the OO
    extensions of the TopSpeed compiler. Full source code is available at:

    ftp.ifi.uio.no pub/sjr/m2afx.zip

    The library allows you to write Windows applications without dealing
    with the messy Windows API, and is modelled after the book "Windows++"
    by Paul DiLascia.  The book describes how to build an application
    framework in C++.  My system has very little documentation, so reading
    the book is highly recommended.

    Stein J. Ryan
    Phd Student
    University of Oslo, Norway

MultiGraph-2, a graphics library

    There exists a graphics library for M2, info about which could be
    included into Your remarkable M2-FAQ. The library is called
    MultiGraph-2, and it works on PC platform with TopSpeed 1.17, TopSpeed
    3.10 and Stony Brook 2.02 compilers. It supports nearly all the
    Super-VGA graphics modes on VESA-compatible graphics boards, including
    high-color and true-color modes.

    ftp://garbo.uwasa.fi/pc/programming/mg202ts1.zip  TopSpeed 1.17
    ftp://garbo.uwasa.fi/pc/programming/mg202ts3.zip  TopSpeed 3.10 (rt,xt)
    ftp://garbo.uwasa.fi/pc/programming/mg202sb2.zip  for Stony Brook 2.02

    Alex F. Iakovlev, Ph.D.  Computing Center of Russian Academy of Sciences
    iak@ccas.ru, iak@sms.ccas.msk.su 40, Vavilov St., Moscow, 117967, Moscow

9) Some Popular FTP sites:

    neptune.inf.ethz.ch
    gatekeeper.dec.com
    ftp.psg.com
    titania.mathematik.uni-ulm.de
    i44s10.ira.uka.de

-30-
-- 
Randy Bush <randy@psg.com>
