The OpenNET Project / Index page

[ /++ | | wiki | ]

:   | Other

Modula-2 FAQ/part2

This file contains the answers to some commonly asked questions about the programming language Modula-2.
Archive-name: computer-lang/Modula2-faq/part2
Version: 2.27
Last-modified: 2003 03 26
Posting-frequency: Monthly

                  Modula-2 Frequently Asked Questions Part 2


4. WHERE CAN I GET SOURCE CODE, OTHER INFO?

4.1.1 Is there source or other info available on the net?
A. Here are some net sites I have accessed at one time or another. I 
am not sure if all are still available or what is in them.
ftp://ftp.psg.com/pub/modula-2/
http://www.arjay.bc.ca/Modula-2/m2faq.html ( Home of this FAQ)
ftp://ftp.inf.ethz.ch/pub/
ftp://NIC.SWITCH.CH
ftp://ftp.mathematik.uni-ulm.de/pub/soft/modula/

WWW sites
http://dir.yahoo.com/Computers_and_Internet/Programming_and_Development/Languages/Modula_2/

http://i44www.info.uni-karlsruhe.de/~modula

http://cs.ru.ac.za/homes/cspt/modula2.htm


4.2 What other FAQs or lists of pages are available?
A1. http://burks.bton.ac.uk/burks/language/modula2/index.htm
A2. http://dmoz.org/Computers/Programming/Languages/Modula-2/Compilers/
A3http://murray.newcastle.edu.au/users/staff/peter/m2/Modula2.html

4.3  Where can I find graphics libraries, etc?
A. Try the PMOS library for various platforms at one of the following sites:
   ftp://ftp.psg.com/pub/modula-2/code  (North America)
ftp://cs.ru.ac.za/pub/languages   (South Africa)
ftp://dutiba.twi.tudelft.nl/pub/modula2 (Western Europe)
ftp://ftp.cnit.nsu.ru/pub/msdos/programm.ing/modula2   (Eastern Europe).

4.4 Are there any mathematical libraries available?
A1. See Numerical Procedures in Modula-2 -- authorized translation of 
Numerical recipes in Pascal from PolyWare (Klara Vancso): 
klarav@telic.nl   (work) OR k.vancso@tip.nl   (home) The CD-ROM has 
the Modula-2 sources. See http://www.nr.comNote that sources given in 
this book are of the "quick and dirty" variety and cannot be sold as 
such, only in compiled form.

A23. LMathLib is a library that defines a number of mathematical 
functions for Modula 2 programs. Unlike other libraries of the same 
kind, LMathLib patches the Modula 2 compiler. All library functions 
are inlined as assembler code for the Floating Point Unit. This 
results in faster code compared to the traditional solution with 
subroutine calls. Due to this machine dependent technique, you can 
use the library ONLY with the (free) GMD Modula System Mocka for 
Linux on INTEL based machines. You can get the LMathLib library via 
anonymous ftp from 
ftp://tee-1.tee.uni-essen.de/pub/Mocka/(132.252.131.33) Documentation 
is included.

A3. MATHPAK 87/32 is available for most 32-bit compilers. A lite 
version for Canterbury M2 is freely downloadable from 
http://www.webcom.com/mhc/welcome.html
Features:
  Written fully in INTEL CPU machine language
   Math Coprocessor control
   Basic Math functions
   Vector and Vector-Scalar Routines
   Vector and Vector-Scalar 'Skip' Procedures
   Complex Number Routines
   Complex Vector and Vector-Scalar Routines
   Polynomial Manipulation Routines
   Simple Matrix and Vector-Matrix Routines
   Solving Systems of Linear and Nonlinear Equations
   Unconstrained Minimization
   Nonlinear Least-Squares Minimization
   Eigenvalues and Eigenvectors
   Singular Value Decomposition
   Extrapolation of Vector-Sequences
   Statistical and Data-Fitting Rountines
   Fourier Transforms and Convolution
   Spectral Analysis Routines
   Numerical Integration
   Differential Equations


4.5  Where can I get a Modula-2 to C converter?
A: The program mtc is available from
ftp://ftp.ira.uka.de/pub/programming/cocktail/mtc.tar.gz
ftp://ftp.Uni-Koeln.DE/usenet/comp.archives/languages/modula-2/mtc/
An already ported version for DOS+DJGPP can be found at
ftp://ftp.uni-stuttgart.de/pub/unix/programming/modula/
Several of the compilers available work or can work by producing C or 
C++ code and can also serve this purpose. See p1, XDS and Ulm's m2c 
(not the same as mtc) listings for examples.


4.6  Where can I get a Modula-2 to Modula-3 converter?
A. m2tom3 is available under the terms of the GNU Library General 
Public License from
ftp://ftp-i3.informatik.rwth-aachen.de/pub/Modula-3-Contrib/m2tom3/
    m2tom3 is a system to port Modula-2 programs to Modula-3. It consists
of two parts:
  - A conversion program which tries to create a Modula-3 source text
    with the same semantics as the Modula-2 input while retaining the
    original look and feel as good as possible.
  - A base library which tries to emulate the Modula-2 standard library
    using the Modula-3 standard library.
   contact: Peter Klein
   office:  Ahornstrasse 55, 52074 Aachen, Germany
   e-mail:  pk@i3.informatik.rwth-aachen.de.
   Tel.: +49/241/80-21316
   Fax.: +49/241/8888-218


4.7  Where can I get a Modula-2 to Component Pascal converter?
A.This is available from http://www.lrz.de/~Bernhard_Treutwein/m2o.txt
Note: Component Pascal is an Oberon dialect, but the translator does 
not use any CP specific features, i.e. generates standard Oberon-2.

4.8 Are there any Modula-2 applications around?
A. The Idaho National Engineering Laboratory (INEL) develops and 
maintains a now
  ~350,000 line MODULA-2 reusable component library called SAGE. For 
more information on SAGE send E-Mail to hotline@sage.inel.gov or see 
the web site at http://sage.inel.gov/homepage.htm


4.9 Are there any compiler construction tools available?
A1. Some old ones appear in ftp://ftp.gmd.de/GMD/cocktail/

A2. Coco/R generates recursive descent parsers and their associated 
scanners from attribute grammars.  Full source code, and a variety of 
simple example applications are supplied in the distribution kits. 
The Modula versions (1.50 is the latest) are available from 
ftp://ftp.ssw.uni-linz.ac.at/pub/Coco/  and the Java versions are 
there too, at ftp://ftp.ssw.uni-linz.ac.at/pub/Coco/javacoco.htm
See also:
ftp://ftp.inf.ethz.ch:/pub/software/Coco
ftp://ftp.psg.com:/pub/modula-2/coco
ftp://cs.ru.ac.za:/pub/coco
ftp://ftp.fit.qut.edu.au:/pub/coco
There are versions for the MS-DOS compilers (JPI, FST, Logitech, 
StonyBrook, Gardens Point), for the Mocka compiler for Linux and 
FreeBSD, as well as for the Gardens Point Unix compilers, including 
Linux and FreeBSD.  There is also a version that produces TurboPascal 
units very similar to the Modula-2 modules. This is also FreePascal 
compliant now. A port for the p1 compiler on the Mac is also 
available. Latest information is available at 
http://cs.ru.ac.za/homes/cspt/cocor.htm. Pat Terry's textbook 
"Compilers and Compiler Generators" that uses Coco/R is now online at 
http://www.scifac.ru.ac.za/compilers.

A2. A copy of the EBNF for ISO Modula-2 can be found in Appendix 3 at:
http://www.arjay.bc.ca


4.10 Does anyone know of a lexical analysis tool that is written in 
Modula-2 and for Modula-2 code?
A.You want rex, part of Cocktail (also ll and lalr parser generators, 
abstract syntax trees, attribute grammar evaluators, tree.  Free 
version:
ftp://ftp.ira.uka.de:/pub/programming/cocktail/

  Commercial version and support:
   Dr.-Ing. Josef Grosch        Tel.  : 0721-697061
   CoCoLab                      Fax   : 0721-661966
   Hagsfelder Allee 16          EMail : grosch@cocolab.sub.com
   D-76131 Karlsruhe

4.11 Is there an applications framework for Windows programming?
A. Try looking at
ftp://ftp.ifi.uio.no/pub/sjr/m2afx.zip 
orftp://ftp.leo.org/pub/comp/platforms/pc/windows/programming/modula/m2afx.zip

This software is an application framework that implements a number of 
classes that encapsulate the weirdness of the Windows C API and 
attempts to present it in a cleaner way to the Modula-2 programmer.

4.12 Does there exist something to convert a C header file to a 
Modula-2 DEFINITION MODULE file for me?
A. Try looking at the XDS Ltd site for the H2D freeware product on 
some platforms

4.13 Where can I get the C code of a Modula-2 compiler?

A. Most Modula-2 compilers are written in Modula-2.  It seems
rather strange to me that one would want to trust the compilation of a
good language to a tool written in a poor one.




4.14 What can I do with old sources from Modula Corp?

A. From the former president Richard Ohran (ROhran@vinca.com): 
"Modula Corp. is dead. Do whatever you like."



4.15 Are there source code examples anywhere for Windows programmers?

A. Translations of Example Programs in Charles Petzold's book 
"Programming Windows 95" from Visual C++ to Stony Brook and XDS 
Modula-2 by Peter Stadler, Vienna can be found at: 
http://www.nhm-wien.ac.at/Petzold/Index.html


4.16 Isn't there a Modula-Prolog project somewhere?

A. Try ABB Corporate Research and Carlo Muller, who may license it to 
you for non-commercial purposes. mailto:cadamuller@swissonline.ch

4.17 Is C. Lins SCL library available?

A. Yes, at

http://www.aha.ru/~uranus/download/scl.zip

4.18 Can you help me with my assignments?
A1. Some people may give you hints, but please do not subvert your 
professor and your education by submitting work other people do for 
you.

A2. Here are two answers submitted to the newsgroup in response to a 
desperate student's plea for ANY Modula-2 program.  The first is 
rather prosaic; the second a little more imaginative:
MODULE homework;

IMPORT STextIO;

BEGIN
   LOOP
     STextIO.WriteString ("I will do my own homework.");
     STextIO.WriteLn;
   END;
END homework.

main()
{
     int i;

     for(i=0; i<!--&#60100; i++)
         printf("I will do my own homework.\n");

}

  Followup Question: Is that Modula-2? I just finished my first course 
in Modula-2 and that don't look at all familiar. I'm not looking 
forward to the final exam.
  A. (Pat Terry) Computer Science changes sooo rapidly.  Haven't you 
discovered Modula-2++ yet?


5. SPECIFIC QUESTIONS ON CODE AND ALGORITHMS

5.0 Where can I get general information on algorithms?
A Try the site http://www.cs.sunysb.edu/~algorith/

5.1 Where can I get an algorithm for an efficient
ber generator?
A1. Pierre L'Ecuyer: Efficient and Portable Combined Random Number 
Generators, Communications of the ACM, vol. 31, no. 6, pp. 742-749. 
The RNG has a period of approximately 2.3E+18. Generating 1 000 000 
numbers per second, that means that it would take over 73 000 years 
before it repeated a sequence.

A2.Look in the PMOS library. This one uses the 'Minimal standard 
random number generator' described by Park & Miller, CACM 31,10,Oct 
88 p1192. The code has been checked for the 10001st random as 
specified in Park & Miller p1195. One site is:
ftp://ftp.psg.com/pub/modula-2/code/random/

A3. A pseudo random generator using the subtractive method taken from 
Knuth, Seminumerical Algorithms, 3.2.2 and 3.6, belongs to Ulm's 
Modula-2 System that is distributed under the terms of the GPL (and 
in case of the library under the terms of the LGPL). More 
informations may be found at 
http://www.mathematik.uni-ulm.de/modula/ and 
http://www.mathematik.uni-ulm.de/modula/man/man3/RandomGenerator.html


5.2 How can I prevent NIL pointer errors?
A.First guard your reference by writing
IF (myPointer # NIL) AND (myPointer^.fieldname =)...etc.

Because Modula-2 has short circuited Boolean expression evaluation, 
the first part guards the second from being evaluated 
inappropriately. Then, take the radical, unC-like step of checking 
your code design for the logical error that led to the incorrect 
reference in the first place.



5.3 Why doesn't my IF statement compile?
A.See the example in the last subsection.  Boolean expressions must 
be delineated with parentheses.



5.4 Can I assume numeric variables are set to zero and Booleans to FALSE?
A. No. The values of variables are random until your code sets them. 
Declaring does not initialize.




5.5 Why do conversions from real to whole types sometimes crash?
A.You need to protect your conversion code by using MAX (TYPE) and 
MIN (TYPE) which are part of the ISO Modula-2 base language.



5.6 Does a CASE statement always need an ELSE clause?
A. No, but it's not a bad idea, even if you think you have covered 
all the cases. If you have, a good compiler might optimize your code 
away, but if you haven't, you could be in for trouble.



5.7 What are the system types to which all other parameters  are compatible?
A.Just LOC and ARRAY OF LOC (one dimension). This does not work for 
multidimensional arrays of LOC, and there are no defined BYTE and 
WORD types, though implementations may include them as well.



5.8 How do I control the serial port, mouse, network card, TCP/IP or 
other communications protocol or peripheral?
A.These are system dependent, and no modules for this can be found in 
the standard. A vendor MAY supply them. Ask.




5.9 Does the object model for OO-Modula-2 have garbage collection or not?
A. BOTH traced (collected) and untraced (roll your own memory 
management) objects are available.



5.10 What is the arity of inheritance for OO-Modula-2?
A. Single inheritance only.



5.11 What do you use the generic extensions for?
A. These allow you to write code for structures such as lists or 
queues, or for routines such as a sort, without initially specifying 
the data types that are in the structure or the target of the 
routine. The initial module is called a generic module. Such modules 
can be refined for the specific data types by a refining separate 
module (library) or a refining local module.

5.12 How do I clear the screen?
A. This non-standard functionality may be present in a module called Terminal.

5.13 How do redirect screen and keyboard I/O?
A. This non-standard functionality may be present in a module called 
InOut or (in an extension to ISO versions) in RedirStdIO. The 
procedure to use is OpenInput (or OpenOutput). Unfortunately these 
behave differently in every version (one of the reasons we built a 
standard). Some versions produce a prompt at runtime, others take a 
file name. The latter may or may not require a file extension. They 
may look for the name as you have provided it and if they don't find 
it, try with the default extension .txt Others have a way of entering 
the extension. You will have to consult the documentation.



6. WHAT ARE SOME REFERENCE MATERIALS ON MODULA-2?

A1. A shareware text I have written (and that MAY be the only 
currently maintained English language instructional text on Modula-2) 
is available. See section 1.4.
A2.The manuals for some of the commercial products contain much 
useful information.

A3. The Gardens Point sites have documentation available (see their 
listing above.)

A4. A document called Modula-2 for Pascal programmers (Postscript,10 
pages) may be fetched by anonymous ftp at 
ftp://ee.newcastle.edu.au/pub/modula2/Modula2.ps.Z
The author has not updated the contents for a couple of years, so 
there may be inaccuracies in terms of the current language standard.

A5. A variety of ETH papers are stored at ftp.ftp.ethz.ch in 
/doc/diss, /doc/tech-reports and /pub/oberon/docu

A6. What follows is a BIBLIOGRAPHY of some published materials in a 
table delimited by two spaces between fields:

Author  Title  City  Publisher  Year  Subject

	Adams, J. Mack Gabrini, Philippe J & Kurtz, Barry L. An 
Introduction to Computer Science with Modula-2  Lexington, MA  D.C. 
Heath & Co  1988
	Backhurst, Nigel G. Mastering Modula 2  Wilmslow  Sigma  1988
	Beidler, John & Jackowitz, Paul Modula-2  Boston  Prindle 
Weber & Schmidt  1985
	Blaschek, G. & Pomberger, G. Introduction To Programming 
With Modula-2   Springer-Verlag  1990
	Budgen, David Software Development with Modula-2  Reading, 
MA  Addison-Wesley  1989
	Carmony, Lowell A. & Holliday, Robert L. A First Course In 
Modula-2  New York  Computer Science Press  c1990
	Carroll, D. W. Advanced Modula-2 Programming for the IBM PC 
XT and AT  Elsevier  1986
	Chirlian, Paul M. Introduction to Modula-2  Beaverton, Or. 
Matrix Publishers
	Christian, Kaare A guide to Modula-2  New York  Springer-Verlag  1986
	Cooling, J.E. Modula-2 for Microcomputer Systems    Van 
Nostrand Reinhold  1988
	Cooper, Doug Oh My!  Modula-2!  New York  Norton  1990
	Cornelius, Barry Programming with TopSpeed Modula-2 
Reading, MA  Addison Wesley  1991
	Eisenbach, Susan & Sadler, Cristopher Program Design with 
Modula-2  Reading, MA  Addison-Wesley  1989
	Elder, Jim Compiler Construction: A Recursive Descent model 
Hemel Hempstead  England:  Prentice-Hall  1994
	Etling, Don Modula-2 Programmer's Resource Book  Blue Ridge 
Summit, PA  Tab Books  1988
	Feldman, Michael B. Data Structures with Modula-2  Englewood 
Cliffs, NJ  Prentice Hall  1988
	Ford, Gary & Wiener, Richard. Modula-2: A Software 
Development Approach  New York  Wiley  1985
	Gabrini, Philippe J. & Kurtz, Barry L.  Data Structures And 
Algorithms With Modula-2  Lexington, MA  DC Heath  c1992
	Gleaves, Richard Modula-2 for Pascal Programmers  New York 
Springer-Verlag  1984
	Gough, K. John & Mohay, George M. Modula-2: A Second Course 
In Programming  Englewood Cliffs, NJ  Prentice Hall  1988
	Greenfield, Stuart B. Invitation to Modula-2    Petrocelli Books  1985
	Harrison, Rachael Abstract Data Types in Modula-2  New York 
Wiley  1989 Wiley
	Harter, Edward D. Modula-2 Programming.  A First Course 
Englewood Cliffs, NJ  Prentice-Hall  1990
	Helman, Paul & Veroff, Robert Walls and Mirrors: 
Intermediate Problem Solving and Data. Modula-2  Menlo Park, CA 
Benjamin Cummings  1988
	Hewitt, Jill A. & Frak, Raymond J. Software Engineering in 
Modula-2:  an object-oriented approach   London  Macmillan  1989.
Hille, R.F.  Data Abstraction and Program Development Using Modula-2 
Sydney  Prentice Hall  1989
	Hopper, Keith. The Magic of Modula-2  Melbourne  Prentice Hall  1991
	Johnston, Chris Applying Modula-2   Academic Press  1991
	Jones, William C. Jr. Data Structures Using Modula-2  New 
York  Wiley  1988
	Jones, William C. Jr. Modula-2 Problem Solving and 
Programming with Style  New York  Harper & Row  1987
	Joyce, Edward J. Modula-2: A Seafarer's Manual & Shipyard 
Guide  Reading, MA  Addison-Wesley   1985
	Kaplan, Ian & Miller, Mike Modula-2 Programming  Rochelle 
Park, NJ  Hayden Book Co.  1986
	Kelly-Bootle, Stan Modula-2 Primer    Howard W. Sams & Co.  1987
	King, K.N. Modula-2: A Complete Guide  Lexington, MA  D.C. 
Heath & Co  1988
	Knepley, Ed & Platt, Robert Modula-2 Programming  Reston, VA 
Reston Pub. Co.  1985
	Koffman, Elliot B. Problem Solving and Structured 
Programming in Modula-2  Reading, MA  Addison-Wesley  1988
	Kruse, Robert L. Programming With Data Structures Modula-2 
Version   Englewood Cliffs, NJ  Prentice-Hall  1988
	Lawrence, Mike Modula-2 And The Amiga  Avant-Garde Software  1990?
	Leestma, Sanford & Nyhoff, Larry Programming & 
Problem-Solving in Modula-2  New York  Macmillan  1989
	Lins, C. (Charles) The Modula-2 Software Component Library 
Volumes I-IV  New York  Springer-Verlag  1989-
	Mayer, Herbert G. Programming in Modula-2.  the Art & the 
Craft  New York  Macmillan  1988
	McCracken, Daniel D. & W. Salmon A Second Course in Computer 
Science with Modula-2  New York  Wiley  1987
	Messer, P. A. & I. Marshall Modula-2 Constructive Program 
Development  Oxford  Blackwell Scientific Publications  1986
	Metrowerks, Inc. Staff Metrowerks Modula-2 Start Pak  New 
York  Macmillan  1990
	Mitchell, R. J. Modula-2 Applied   London  Macmillan  1991
	Mitchell, Richard Abstract Data Types And Modula-2  A Worked 
Example Of Design Using Data Abstraction   Englewood Cliffs, NJ 
Prentice Hall  1992
	Moore, John B. & McKay, Kenneth N. Modula-2 Text and 
Reference  Englewood Cliffs, NJ  Prentice-Hall  1987
	Novak, M.M. Modula-2 in Science & Engineering  London  McGraw  1990
	Nyhoff, Larry & Leestma ,Sanford Data Structures & Advanced 
Programming in Modula-2  New York  Macmillan  1990
	Ogilvie, John W. L. Modula-2 Programming  New York  McGraw-Hill  1985
	Pinson, Lewis Sincovec, Richard & Weiner, Richard A First 
Course in Computer Science with Modula-2  New York  Wiley  1987
	Pittman, Thomas & Peters, James The Art Of Compiler Design 
Theory And Practice  Englewood Cliffs, NJ  Prentice-Hall  1992
	Pomberger, Gustav. Software Engineering and Modula-2 
Englewood Cliffs, NJ  Prentice Hall  1984
	Rechenberg, P. & Mssenbck, H. (tr. O'Meara, John) A 
Compiler Generator for Microcomputers  Englewood Cliffs, NJ  Prentice 
Hall / Carl Hanser Verlag  1989
	Riley, David D. Data Abstraction and Structures: An 
Introduction To Computer Science II  Boston  Boyd & Fraser Pub. Co. 
1987
	Riley, David D. Using Modula-2: An Introduction To Computer 
Science I  Boston  Boyd & Fraser Pub. Co.  1987
	Sale, Arthur H. J. Modula-2: Discipline & Design  Sydney 
Addison-Wesley  1986
	Sawyer, Brian & Foster, Dennis. Programming Expert Systems 
in Modula-2  New York  Wiley  1986
	Schildt, Herbert Advanced Modula-2  Berkeley, CA  Osborne 
McGraw-Hill  1987
	Schildt, Herbert Modula-2 Made Easy  Berkeley, CA  Osborne 
McGraw-Hill  1986
	Schiper, Andre; (tr. Howlett, Jack) Concurrent programming: 
Illustrated With Examples in Portal, Ada, and Modula-2    Halsted 
Press  1989
	Schnapp, Russell L. Macintosh Graphics in Modula-2 
Englewood Cliffs, NJ  Prentice-Hall  1986
	Sincovec, Richard F. & Richard S. Wiener. Data Structures 
Using Modula-2  New York  Wiley  1986
	Sincovec, Richard F. & Wiener, Richard S. Modula-2 Software 
Components  New York  Wiley  1987
	Stubbs, Daniel F. & Webre, Neil W. Data Structures With 
Abstract Data Types and Modula-2  Monterey, CA  Brooks/Cole Pub. Co. 
1987
	Sutcliffe, Richard J. Introduction to Programming Using 
Modula-2  Columbus, OH  Merrill  1987
	Sutcliffe, Richard J. mailto:rsutc@arjay.ca. Modula-2: 
Abstractions for Data and Programming Structures (Using ISO-Standard 
Modula-2) Mt. Lehman: Arjay Enterprises 1996-2000. 
http://www.arjay.bc.ca (1996 09 16)
	Sutcliffe, Richard J. Standard Generic Modula-2 (Document 
ISO/IEC/JTC1/SC22/WG13 D235) 1996 07 12 
ftp://FTP.twu.ca/pub/modula2/WG13/ca101.GenericModula2CD(1996 09 16)
	Sutherland, Robert J. The Professional Programmer's Guide to 
Modula-2  London  Pitman  1988
	Terry, Patrick D. An Introduction To Programming with 
Modula-2  Reading, MA  Addison-Wesley  1987
	Thalmann, Daniel Modula-2: An Introduction  New York 
Springer-Verlag  1985
	Tremblay, Jean-Paul DeDourek, John M. & Daoust, David A. 
Programming in Modula-2  New York  McGraw-Hill  1989
	Tucker, Allen B. Jr.  Computer science: A Second Course Using 
Modula-2  New York   McGraw-Hill  1988
	Ullmann, Jeffrey Compiling in Modula-2 - A First 
Introduction To Classical Recursive Descent Compiling   Hemel 
Hempstead  England: Prentice-Hall  1994
	Ural, Saim & Ural, Suzan Introduction to Programming with 
Modula-2  New York  Harper & Row  1987
	Walker, Billy K Modula-2 Programming With Data Structures 
Belmont, CA  Wadsworth Pub. Co.  1986
	Walker, Robert D. Modula-2 Library Modules: A Programmer's 
Reference  Blue Ridge Summit, PA  Tab Books  1988
	Ward, Terry A. Advanced Programming Techniques in Modula-2 
Glenview, IL  Scott Foresman  1987
	Welsh, Jim & Elder, John Introduction to Modula-2  Englewood 
Cliffs, NJ  Prentice-Hall  1987
	Wiatrowski, Claude A. & Wiener, Richard S. From C to 
Modula-2--and Back - Bridging The Language Gap  New York  Wiley
	Wiener, Richard Modula-2 Wizard's Programming Reference  New 
York  Wiley  1986
	Wiener, Richard & Ford, G. Modula-2 A Software Development 
Approach  New York  Wiley  1985
	Wiener, Richard & Sincovec, R. F. Software Engineering with 
Modula-2 and Ada  New York  Wiley  1984
	Willis, Claire & Paddon, Derek Abstraction And Specification 
With Modula-2  London  Pitman  1992
	Wirth, Niklaus Programming in Modula-2 (3rd corrected ed.) 
New York  Springer-Verlag  1985
	Wirth, Niklaus Algorithms and Data Structures (1986 edition) 
Englewood Cliffs, NJ  Prentice-Hall  1986
	Wirth, Niklaus Programming in Modula-2 (4th ed.)   New York 
Springer-Verlag  1990
	Woodman, Mark et al Portable Modula-2 Programming 
Maidenhead, Berkshire UK  McGraw-Hill  1989

7. REVIEWS OF MODULA-2 PRODUCTS.

Note: The reviews have been contributed by others and I take no 
responsibility for their accuracy or for any opinions expressed 
therein. I have updated some of the facts.

p1 Modula-2 v5.2 for Macintosh, by Marc Martin, Dec 1994.This is an 
excellent Modula-2 compiler, implemented as an MPW Tool. Highlights 
include ISO language extensions & library, a full set of Macintosh 
toolbox definitions, language extensions to simplify toolbox 
programming, object-oriented extensions and support for MacApp, 
greater than 32k code and globals, code generation comparable to 
Apple's official compilers, several FPU code options, multi-window 
debugger, linkable with other MPW languages, detailed documentation, 
and superb technical support via e-mail. Downsides include high cost 
(US$400), dependency on MPW, lack of SADE support. Version 6.0 has 
been released for creating PowerPC programs under MPW or CodeWarrier.

Appendix: AUTHOR INFORMATION AND DISCLAIMERS

Personal: I have used, written about, and taught Modula-2 (since 
1983) and have maintained some of the information in this list for 
over seven years. I have used at least a dozen different 
compiler/environments in that time on five different platforms, and 
have written numerous articles and reviews for publication. I have 
been a member of the ISO committee WG13 (Modula-2 standardization) 
since its inception and have participated in all the debates and 
meetings of WG13 except for meeting #9 at Lake Wanaka. I have written 
a text on Modula-2 (now shareware), made numerous submissions to WG13 
and directed an implementation of the ISO I/O library in order to 
verify its concepts. I am the author and project editor of Standard 
Generic Modula-2.

Disclaimers:
(i) I take no responsibility for anyone's use or misuse of this information.
(ii) Apart from having been a beta tester, textbook writer, 
programmer and a long time user of Modula-2, I have no financial 
connection with any manufacturer or distributor of software. I am the 
author of some Modula-2 materials (some of which are shareware) as 
noted herein, and of various other books. Some manufacturers may 
distribute my shareware on CD-ROM for a previously arranged fee, but 
that is not an endorsement of their products by me or of mine by them.
(iii) In producing this material, I am NOT acting in an official 
capacity for TWU, WG13, ABC, IEEE, ACM, comp.lang.modula2, or any 
other organization.
(iv) Mention of a book or product is NOT an endorsement unless 
specifically noted.
(v) Inclusion of materials on this list is based on relevance to 
Modula-2 and factual content and is otherwise entirely without 
prejudice. I reserve the right to edit all submissions for brevity, 
clarity, and usage.

To remain authoritative, this and all versions of this FAQ are 
copyright 1991-2002 by Rick Sutcliffe and Arjay Enterprises. This 
document may be freely copied and distributed provided it is not 
altered and no fee is charged with the exception of normal 
downloading or copying costs.

Compiled by:
Rick Sutcliffe (aka The Northern Spy in the old days)
Trinity Western University
7600 Glover Rd.,
Langley, B.C. Canada V2Y 1Y1
1 604 888-7511 Fax 1 604 513-2018

see my personal services web page at
Arjay Enterprises
mailto:rsutc@arjay.ca



-- 
Rick Sutcliffe Professor Math/Cmpt Trinity Western University. Try 
<http://www.arjay.bc.ca> for Christian SF, books on Modula-2 and 
Ethics in Technology. Philology site at <http://www.opundo.com>

    
    
Created 1996-2018 by Maxim Chirkov  
  
Hosting by Ihor