home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / computer-lang / Modula2-faq / part2 < prev   
Encoding:
Text File  |  2004-04-18  |  27.2 KB  |  656 lines

  1. Path: senator-bedfellow.mit.edu!dreaderd!not-for-mail
  2. Message-ID: <computer-lang/Modula2-faq/part2_1082200966@rtfm.mit.edu>
  3. Supersedes: <computer-lang/Modula2-faq/part2_1079601013@rtfm.mit.edu>
  4. Expires: 31 May 2004 11:22:46 GMT
  5. References: <computer-lang/Modula2-faq/part1_1082200966@rtfm.mit.edu>
  6. X-Last-Updated: 2003/10/10
  7. From: Rick Sutcliffe <rsutc@twu.ca>
  8. Followup-To: poster
  9. Organization: none
  10. Newsgroups: comp.lang.modula2,comp.answers,news.answers
  11. Subject: Modula-2 FAQ/part2
  12. Distribution: world
  13. Approved: news-answers-request@MIT.EDU
  14. Keywords: languages, Modula-2
  15. Summary: This file contains the answers to some commonly asked questions
  16.    about the programming language Modula-2.
  17. Originator: faqserv@penguin-lust.MIT.EDU
  18. Date: 17 Apr 2004 11:26:44 GMT
  19. Lines: 632
  20. NNTP-Posting-Host: penguin-lust.mit.edu
  21. X-Trace: 1082201204 senator-bedfellow.mit.edu 569 18.181.0.29
  22. Xref: senator-bedfellow.mit.edu comp.lang.modula2:20715 comp.answers:56852 news.answers:269769
  23.  
  24. Archive-name: computer-lang/Modula2-faq/part2
  25. Version: 2.28
  26. Last-modified: 2003 10 10
  27. Posting-frequency: Monthly
  28.  
  29.                   Modula-2 Frequently Asked Questions Part 2
  30.  
  31.  
  32. 4. WHERE CAN I GET SOURCE CODE, OTHER INFO?
  33.  
  34. 4.1.1 Is there source or other info available on the net?
  35. A. Here are some net sites I have accessed at one time or another. I 
  36. am not sure if all are still available or what is in them.
  37. ftp://ftp.psg.com/pub/modula-2/
  38. http://www.arjay.bc.ca/Modula-2/m2faq.html ( Home of this FAQ)
  39. ftp://ftp.inf.ethz.ch/pub/
  40. ftp://NIC.SWITCH.CH
  41. ftp://ftp.mathematik.uni-ulm.de/pub/soft/modula/
  42.  
  43. WWW sites
  44. http://dir.yahoo.com/Computers_and_Internet/Programming_and_Development/Languages/Modula_2/
  45.  
  46. http://i44www.info.uni-karlsruhe.de/~modula
  47.  
  48. http://modula2.org
  49.  
  50. http://cs.ru.ac.za/homes/cspt/modula2.htm
  51.  
  52. 4.2 What other FAQs or lists of pages are available?
  53. A1. http://burks.bton.ac.uk/burks/language/modula2/index.htm
  54. A2. http://dmoz.org/Computers/Programming/Languages/Modula-2/Compilers/
  55. A3http://murray.newcastle.edu.au/users/staff/peter/m2/Modula2.html
  56. A4http://www.unet.univie.ac.at/~a9406973/modula2/
  57.  
  58. 4.3  Where can I find graphics libraries, etc?
  59. A. Try the PMOS library for various platforms at one of the following sites:
  60.    ftp://ftp.psg.com/pub/modula-2/code  (North America)
  61. ftp://cs.ru.ac.za/pub/languages   (South Africa)
  62. ftp://dutiba.twi.tudelft.nl/pub/modula2 (Western Europe)
  63. ftp://ftp.cnit.nsu.ru/pub/msdos/programm.ing/modula2   (Eastern Europe).
  64.  
  65. 4.4 Are there any mathematical libraries available?
  66. A1. See Numerical Procedures in Modula-2 -- authorized translation of 
  67. Numerical recipes in Pascal from PolyWare (Klara Vancso): 
  68. klarav@telic.nl   (work) OR k.vancso@tip.nl   (home) The CD-ROM has 
  69. the Modula-2 sources. See http://www.nr.comNote that sources given in 
  70. this book are of the "quick and dirty" variety and cannot be sold as 
  71. such, only in compiled form.
  72.  
  73. A23. LMathLib is a library that defines a number of mathematical 
  74. functions for Modula 2 programs. Unlike other libraries of the same 
  75. kind, LMathLib patches the Modula 2 compiler. All library functions 
  76. are inlined as assembler code for the Floating Point Unit. This 
  77. results in faster code compared to the traditional solution with 
  78. subroutine calls. Due to this machine dependent technique, you can 
  79. use the library ONLY with the (free) GMD Modula System Mocka for 
  80. Linux on INTEL based machines. You can get the LMathLib library via 
  81. anonymous ftp from 
  82. ftp://tee-1.tee.uni-essen.de/pub/Mocka/(132.252.131.33) Documentation 
  83. is included.
  84.  
  85. A3. MATHPAK 87/32 is available for most 32-bit compilers. A lite 
  86. version for Canterbury M2 is freely downloadable from 
  87. http://www.webcom.com/mhc/welcome.html
  88. Features:
  89.   Written fully in INTEL CPU machine language
  90.    Math Coprocessor control
  91.    Basic Math functions
  92.    Vector and Vector-Scalar Routines
  93.    Vector and Vector-Scalar 'Skip' Procedures
  94.    Complex Number Routines
  95.    Complex Vector and Vector-Scalar Routines
  96.    Polynomial Manipulation Routines
  97.    Simple Matrix and Vector-Matrix Routines
  98.    Solving Systems of Linear and Nonlinear Equations
  99.    Unconstrained Minimization
  100.    Nonlinear Least-Squares Minimization
  101.    Eigenvalues and Eigenvectors
  102.    Singular Value Decomposition
  103.    Extrapolation of Vector-Sequences
  104.    Statistical and Data-Fitting Rountines
  105.    Fourier Transforms and Convolution
  106.    Spectral Analysis Routines
  107.    Numerical Integration
  108.    Differential Equations
  109.  
  110.  
  111. 4.5  Where can I get a Modula-2 to C converter?
  112. A: The program mtc is available from
  113. ftp://ftp.Uni-Koeln.DE/usenet/comp.archives/languages/modula-2/mtc/
  114. An already ported version for DOS+DJGPP can be found at
  115. ftp://ftp.uni-stuttgart.de/pub/unix/programming/modula/
  116. Several of the compilers available work or can work by producing C or 
  117. C++ code and can also serve this purpose. See p1, XDS and Ulm's m2c 
  118. (not the same as mtc) listings for examples.
  119.  
  120.  
  121. 4.6  Where can I get a Modula-2 to Modula-3 converter?
  122. A. m2tom3 is available under the terms of the GNU Library General 
  123. Public License from
  124. ftp://ftp-i3.informatik.rwth-aachen.de/pub/Modula-3-Contrib/m2tom3/
  125.     m2tom3 is a system to port Modula-2 programs to Modula-3. It consists
  126. of two parts:
  127.   - A conversion program which tries to create a Modula-3 source text
  128.     with the same semantics as the Modula-2 input while retaining the
  129.     original look and feel as good as possible.
  130.   - A base library which tries to emulate the Modula-2 standard library
  131.     using the Modula-3 standard library.
  132.    contact: Peter Klein
  133.    office:  Ahornstrasse 55, 52074 Aachen, Germany
  134.    e-mail:  pk@i3.informatik.rwth-aachen.de.
  135.    Tel.: +49/241/80-21316
  136.    Fax.: +49/241/8888-218
  137.  
  138.  
  139. 4.7  Where can I get a Modula-2 to Component Pascal converter?
  140. A.This is available from http://www.lrz.de/~Bernhard_Treutwein/m2o.txt
  141. Note: Component Pascal is an Oberon dialect, but the translator does 
  142. not use any CP specific features, i.e. generates standard Oberon-2.
  143.  
  144. 4.8 Are there any Modula-2 applications around?
  145. A. The Idaho National Engineering Laboratory (INEL) develops and 
  146. maintains a now
  147.   ~350,000 line MODULA-2 reusable component library called SAGE. For 
  148. more information on SAGE send E-Mail to hotline@sage.inel.gov or see 
  149. the web site at http://sage.inel.gov/homepage.htm
  150.  
  151.  
  152. 4.9 Are there any compiler construction tools available?
  153.  
  154. A1. Coco/R generates recursive descent parsers and their associated 
  155. scanners from attribute grammars.  Full source code, and a variety of 
  156. simple example applications are supplied in the distribution kits. 
  157. The Modula versions (1.50 is the latest) are available from 
  158. ftp://ftp.ssw.uni-linz.ac.at/pub/Coco/  and the Java versions are 
  159. there too, at ftp://ftp.ssw.uni-linz.ac.at/pub/Coco/javacoco.htm
  160. See also:
  161. ftp://ftp.inf.ethz.ch:/pub/software/Coco
  162. ftp://ftp.psg.com:/pub/modula-2/coco
  163. ftp://cs.ru.ac.za:/pub/coco
  164. ftp://ftp.fit.qut.edu.au:/pub/coco
  165. There are versions for the MS-DOS compilers (JPI, FST, Logitech, 
  166. StonyBrook, Gardens Point), for the Mocka compiler for Linux and 
  167. FreeBSD, as well as for the Gardens Point Unix compilers, including 
  168. Linux and FreeBSD.  There is also a version that produces TurboPascal 
  169. units very similar to the Modula-2 modules. This is also FreePascal 
  170. compliant now. A port for the p1 compiler on the Mac is also 
  171. available. Latest information is available at 
  172. http://cs.ru.ac.za/homes/cspt/cocor.htm. Pat Terry's textbook 
  173. "Compilers and Compiler Generators" that uses Coco/R is now online at 
  174. http://www.scifac.ru.ac.za/compilers.
  175.  
  176. A2. A copy of the EBNF for ISO Modula-2 can be found in Appendix 3 at:
  177. http://www.arjay.bc.ca
  178.  
  179.  
  180. 4.10 Is there an applications framework for Windows programming?
  181. A. Try looking at
  182. ftp://ftp.ifi.uio.no/pub/sjr/m2afx.zip 
  183. orftp://ftp.leo.org/pub/comp/platforms/pc/windows/programming/modula/m2afx.zip
  184.  
  185. This software is an application framework that implements a number of 
  186. classes that encapsulate the weirdness of the Windows C API and 
  187. attempts to present it in a cleaner way to the Modula-2 programmer.
  188.  
  189. 4.11 Does there exist something to convert a C header file to a 
  190. Modula-2 DEFINITION MODULE file for me?
  191. A. Try looking at the XDS Ltd site for the H2D freeware product on 
  192. some platforms
  193.  
  194. 4.12 Where can I get the C code of a Modula-2 compiler?
  195.  
  196. A. Most Modula-2 compilers are written in Modula-2.  It seems
  197. rather strange to me that one would want to trust the compilation of a
  198. good language to a tool written in a poor one.
  199.  
  200.  
  201.  
  202.  
  203. 4.13 What can I do withá old sources from Modula Corp?
  204.  
  205. A. From the former president Richard Ohran (ROhran@vinca.com): 
  206. "Modula Corp. is dead. Do whatever you like."
  207.  
  208.  
  209.  
  210. 4.14 Are there source code examples anywhere for Windows programmers?
  211.  
  212. A. Translations of Example Programs in Charles Petzold's book 
  213. "Programming Windows 95" from Visual C++ to Stony Brook and XDS 
  214. Modula-2 by Peter Stadler, Vienna can be found at: 
  215. http://www.nhm-wien.ac.at/Petzold/Index.html
  216.  
  217.  
  218. 4.15 Isn't there a Modula-Prolog project somewhere?
  219.  
  220. A. Try ABB Corporate Research and Carlo Muller, who may license it to 
  221. you for non-commercial purposes. mailto:cadamuller@swissonline.ch
  222.  
  223. 4.16 Is C. Lins SCL library available?
  224.  
  225. A. Yes, at
  226.  
  227. http://www.aha.ru/~uranus/download/scl.zip
  228.  
  229. 4.17 Can you help me with my assignments?
  230. A1. Some people may give you hints, but please do not subvert your 
  231. professor and your education by submitting work other people do for 
  232. you.
  233.  
  234. A2. Here are two answers submitted to the newsgroup in response to a 
  235. desperate student's plea for ANY Modula-2 program.  The first is 
  236. rather prosaic; the second a little more imaginative:
  237. MODULE homework;
  238.  
  239. IMPORT STextIO;
  240.  
  241. BEGIN
  242.    LOOP
  243.      STextIO.WriteString ("I will do my own homework.");
  244.      STextIO.WriteLn;
  245.    END;
  246. END homework.
  247.  
  248. main()
  249. {
  250.      int i;
  251.  
  252.      for(i=0; i<!-- i++)á
  253.          printf("I will do my own homework.\n");
  254.  
  255. }
  256.  
  257.   Followup Question: Is that Modula-2? I just finished my first course 
  258. in Modula-2 and that don't look at all familiar. I'm not looking 
  259. forward to the final exam.
  260.   A. (Pat Terry) Computer Science changes sooo rapidly.  Haven't you 
  261. discovered Modula-2++ yet?
  262.  
  263.  
  264. 5. SPECIFIC QUESTIONS ON CODE AND ALGORITHMS
  265.  
  266. 5.0 Where can I get general information on algorithms?
  267. A Try the siteá http://www.cs.sunysb.edu/~algorith/
  268.  
  269. 5.1 Where can I get an algorithm for an efficient
  270. ber generator?
  271. A1. Pierre L'Ecuyer: Efficient and Portable Combined Random Number 
  272. Generators, Communications of the ACM, vol. 31, no. 6, pp. 742-749. 
  273. The RNG has a period of approximately 2.3E+18. Generating 1 000 000 
  274. numbers per second, that means that it would take over 73 000 years 
  275. before it repeated a sequence.
  276.  
  277. A2.Look in the PMOS library. This one uses the 'Minimal standard 
  278. random number generator' described by Park & Miller, CACM 31,10,Oct 
  279. 88 p1192. The code has been checked for the 10001st random as 
  280. specified in Park & Miller p1195. One site is:
  281. ftp://ftp.psg.com/pub/modula-2/code/random/
  282.  
  283. A3. A pseudo random generator using the subtractive method taken from 
  284. Knuth, Seminumerical Algorithms, 3.2.2 and 3.6, belongs to Ulm's 
  285. Modula-2 System that is distributed under the terms of the GPL (and 
  286. in case of the library under the terms of the LGPL). More 
  287. informations may be found atá 
  288. http://www.mathematik.uni-ulm.de/modula/ andá 
  289. http://www.mathematik.uni-ulm.de/modula/man/man3/RandomGenerator.html
  290.  
  291.  
  292. 5.2 How can I prevent NIL pointer errors?
  293. A.First guard your reference by writing
  294. IF (myPointer # NIL) AND (myPointer^.fieldname =)...etc.
  295.  
  296. Because Modula-2 has short circuited Boolean expression evaluation, 
  297. the first part guards the second from being evaluated 
  298. inappropriately. Then, take the radical, unC-like step of checking 
  299. your code design for the logical error that led to the incorrect 
  300. reference in the first place.
  301.  
  302.  
  303.  
  304. 5.3 Why doesn't my IF statement compile?
  305. A.See the example in the last subsection.  Boolean expressions must 
  306. be delineated with parentheses.
  307.  
  308.  
  309.  
  310. 5.4 Can I assume numeric variables are set to zero and Booleans to FALSE?
  311. A. No. The values of variables are random until your code sets them. 
  312. Declaring does not initialize.
  313.  
  314.  
  315.  
  316.  
  317. 5.5 Why do conversions from real to whole types sometimes crash?
  318. A.You need to protect your conversion code by using MAX (TYPE) and 
  319. MIN (TYPE) which are part of the ISO Modula-2 base language.
  320.  
  321.  
  322.  
  323. 5.6 Does a CASE statement always need an ELSE clause?
  324. A. No, but it's not a bad idea, even if you think you have covered 
  325. all the cases. If you have, a good compiler might optimize your code 
  326. away, but if you haven't, you could be in for trouble.
  327.  
  328.  
  329.  
  330. 5.7 What are the system types to which all other parameters  are compatible?
  331. A.Just LOC and ARRAY OF LOC (one dimension). This does not work for 
  332. multidimensional arrays of LOC, and there are no defined BYTE and 
  333. WORD types, though implementations may include them as well.
  334.  
  335.  
  336.  
  337. 5.8 How do I control the serial port, mouse, network card, TCP/IP or 
  338. other communications protocol or peripheral?
  339. A.These are system dependent, and no modules for this can be found in 
  340. the standard. A vendor MAY supply them. Ask.
  341.  
  342.  
  343.  
  344.  
  345. 5.9 Does the object model for OO-Modula-2 have garbage collection or not?
  346. A. BOTH traced (collected) and untraced (roll your own memory 
  347. management) objects are available.
  348.  
  349.  
  350.  
  351. 5.10 What is the arity of inheritance for OO-Modula-2?
  352. A. Single inheritance only.
  353.  
  354.  
  355.  
  356. 5.11 What do you use the generic extensions for?
  357. A. These allow you to write code for structures such as lists or 
  358. queues, or for routines such as a sort, without initially specifying 
  359. the data types that are in the structure or the target of the 
  360. routine. The initial module is called a generic module. Such modules 
  361. can be refined for the specific data types by a refining separate 
  362. module (library) or a refining local module.
  363.  
  364. 5.12 How do I clear the screen?
  365. A. This non-standard functionality may be present in a module called Terminal.
  366.  
  367. 5.13 How do redirect screen and keyboard I/O?
  368. A. This non-standard functionality may be present in a module called 
  369. InOut or (in an extension to ISO versions) in RedirStdIO. The 
  370. procedure to use is OpenInput (or OpenOutput). Unfortunately these 
  371. behave differently in every version (one of the reasons we built a 
  372. standard). Some versions produce a prompt at runtime, others take a 
  373. file name. The latter may or may not require a file extension. They 
  374. may look for the name as you have provided it and if they don't find 
  375. it, try with the default extension .txt Others have a way of entering 
  376. the extension. You will have to consult the documentation.
  377.  
  378.  
  379.  
  380. 6. WHAT ARE SOME REFERENCE MATERIALS ON MODULA-2?
  381.  
  382. A1. A shareware text I have written (and that MAY be the only 
  383. currently maintained English language instructional text on Modula-2) 
  384. is available. See section 1.4.
  385. A2.The manuals for some of the commercial products contain much 
  386. useful information.
  387.  
  388. A3. The Gardens Point sites have documentation available (see their 
  389. listing above.)
  390.  
  391. A4. A document called Modula-2 for Pascal programmers (Postscript,10 
  392. pages) may be fetched by anonymous ftp at 
  393. ftp://ee.newcastle.edu.au/pub/modula2/Modula2.ps.Z
  394. The author has not updated the contents for a couple of years, so 
  395. there may be inaccuracies in terms of the current language standard.
  396.  
  397. A5. A variety of ETH papers are stored at ftp.ftp.ethz.ch in 
  398. /doc/diss, /doc/tech-reports and /pub/oberon/docu
  399.  
  400. A6. What follows is a BIBLIOGRAPHY of some published materials in a 
  401. table delimited by two spaces between fields:
  402.  
  403. Author  Title  City  Publisher  Year  Subject
  404.  
  405.     Adams, J. Mack Gabrini, Philippe J & Kurtz, Barry L.á An 
  406. Introduction to Computer Science with Modula-2  Lexington, MA  D.C. 
  407. Heath & Co  1988
  408.     Backhurst, Nigel G.á Mastering Modula 2  Wilmslow  Sigma  1988
  409.     Beidler, John & Jackowitz, Paulá Modula-2  Boston  Prindle 
  410. Weber & Schmidt  1985
  411.     Blaschek, G. & Pomberger, G.á Introduction To Programming 
  412. With Modula-2   Springer-Verlag  1990
  413.     Budgen, Davidá Software Development with Modula-2  Reading, 
  414. MA  Addison-Wesley  1989
  415.     Carmony, Lowell A. & Holliday, Robert L.á A First Course In 
  416. Modula-2  New York  Computer Science Press  c1990
  417.     Carroll, D. W.á Advanced Modula-2 Programming for the IBM PC 
  418. XT and AT  Elsevier  1986
  419.     Chirlian, Paul M.á Introduction to Modula-2  Beaverton, Or. 
  420. Matrix Publishers
  421.     Christian, Kaareá A guide to Modula-2  New York  Springer-Verlag  1986
  422.     Cooling, J.E.á Modula-2 for Microcomputer Systems    Van 
  423. Nostrand Reinhold  1988
  424.     Cooper, Dougá Oh My!  Modula-2!  New York  Norton  1990
  425.     Cornelius, Barryá Programming with TopSpeed Modula-2 
  426. Reading, MA  Addison Wesley  1991
  427.     Eisenbach, Susan & Sadler, Cristopherá Program Design with 
  428. Modula-2  Reading, MA  Addison-Wesley  1989
  429.     Elder, Jimáá Compiler Construction: A Recursive Descent model 
  430. Hemel Hempstead  England:  Prentice-Hall  1994
  431.     Etling, Doná Modula-2 Programmer's Resource Book  Blue Ridge 
  432. Summit, PA  Tab Books  1988
  433.     Feldman, Michael B.á Data Structures with Modula-2  Englewood 
  434. Cliffs, NJ  Prentice Hall  1988
  435.     Ford, Gary & Wiener, Richard.á Modula-2: A Software 
  436. Development Approach  New York  Wiley  1985
  437.     Gabrini, Philippe J. & Kurtz, Barry L.  Data Structures And 
  438. Algorithms With Modula-2  Lexington, MA  DC Heath  c1992
  439.     Gleaves, Richardá Modula-2 for Pascal Programmers  New York 
  440. Springer-Verlag  1984
  441.     Gough, K. John & Mohay, George M.á Modula-2: A Second Course 
  442. In Programming  Englewood Cliffs, NJ  Prentice Hall  1988
  443.     Greenfield, Stuart B.á Invitation to Modula-2    Petrocelli Books  1985
  444.     Harrison, Rachaelá Abstract Data Types in Modula-2  New York 
  445. Wiley  1989 Wiley
  446.     Harter, Edward D.á Modula-2 Programming.  A First Course 
  447. Englewood Cliffs, NJ  Prentice-Hall  1990
  448.     Helman, Paul & Veroff, Robertá Walls and Mirrors: 
  449. Intermediate Problem Solving and Data. Modula-2  Menlo Park, CA 
  450. Benjamin Cummings  1988
  451.     Hewitt, Jill A. & Frak, Raymond J.á Software Engineering in 
  452. Modula-2:  an object-oriented approach   London  Macmillan  1989.
  453. Hille, R.F.  Data Abstraction and Program Development Using Modula-2 
  454. Sydney  Prentice Hall  1989
  455.     Hopper, Keith.á The Magic of Modula-2  Melbourne  Prentice Hall  1991
  456.     Johnston, Chrisá Applying Modula-2   Academic Press  1991
  457.     Jones, William C. Jr.á Data Structures Using Modula-2  New 
  458. York  Wiley  1988
  459.     Jones, William C. Jr.á Modula-2 Problem Solving and 
  460. Programming with Style  New York  Harper & Row  1987
  461.     Joyce, Edward J.á Modula-2: A Seafarer's Manual & Shipyard 
  462. Guide  Reading, MA  Addison-Wesley   1985
  463.     Kaplan, Ian & Miller, Mikeá Modula-2 Programming  Rochelle 
  464. Park, NJ  Hayden Book Co.  1986
  465.     Kelly-Bootle, Staná Modula-2 Primer    Howard W. Sams & Co.  1987
  466.     King, K.N.á Modula-2: A Complete Guide  Lexington, MA  D.C. 
  467. Heath & Co  1988
  468.     Knepley, Ed & Platt, Robertá Modula-2 Programming  Reston, VA 
  469. Reston Pub. Co.  1985
  470.     Koffman, Elliot B.á Problem Solving and Structured 
  471. Programming in Modula-2  Reading, MA  Addison-Wesley  1988
  472.     Kruse, Robert L.á Programming With Data Structures Modula-2 
  473. Version   Englewood Cliffs, NJ  Prentice-Hall  1988
  474.     Lawrence, Mikeá Modula-2 And The Amiga  Avant-Garde Software  1990?
  475.     Leestma, Sanford & Nyhoff, Larryá Programming & 
  476. Problem-Solving in Modula-2  New York  Macmillan  1989
  477.     Lins, C. (Charles)á The Modula-2 Software Component Library 
  478. Volumes I-IV  New York  Springer-Verlag  1989-
  479.     Mayer, Herbert G.á Programming in Modula-2.  the Art & the 
  480. Craft  New York  Macmillan  1988
  481.     McCracken, Daniel D. & W. Salmoná A Second Course in Computer 
  482. Science with Modula-2  New York  Wiley  1987
  483.     Messer, P. A. & I. Marshallá Modula-2 Constructive Program 
  484. Development  Oxford  Blackwell Scientific Publications  1986
  485.     Metrowerks, Inc. Staffá Metrowerks Modula-2 Start Pak  New 
  486. York  Macmillan  1990
  487.     Mitchell, R. J.á Modula-2 Applied   London  Macmillan  1991
  488.     Mitchell, Richardá Abstract Data Types And Modula-2  A Worked 
  489. Example Of Design Using Data Abstraction   Englewood Cliffs, NJ 
  490. Prentice Hall  1992
  491.     Moore, John B. & McKay, Kenneth N.á Modula-2 Text and 
  492. Reference  Englewood Cliffs, NJ  Prentice-Hall  1987
  493.     Novak, M.M.á Modula-2 in Science & Engineering  London  McGraw  1990
  494.     Nyhoff, Larry & Leestma ,Sanfordá Data Structures & Advanced 
  495. Programming in Modula-2  New York  Macmillan  1990
  496.     Ogilvie, John W. L.á Modula-2 Programming  New York  McGraw-Hill  1985
  497.     Pinson, Lewis Sincovec, Richard & Weiner, Richardá A First 
  498. Course in Computer Science with Modula-2  New York  Wiley  1987
  499.     Pittman, Thomas & Peters, Jamesá The Art Of Compiler Design 
  500. Theory And Practice  Englewood Cliffs, NJ  Prentice-Hall  1992
  501.     Pomberger, Gustav.áá Software Engineering and Modula-2 
  502. Englewood Cliffs, NJ  Prentice Hall  1984
  503.     Rechenberg, P. & M÷ssenb÷ck, H. (tr. O'Meara, John)á A 
  504. Compiler Generator for Microcomputers  Englewood Cliffs, NJ  Prentice 
  505. Hall / Carl Hanser Verlag  1989
  506.     Riley, David D.á Data Abstraction and Structures: An 
  507. Introduction To Computer Science II  Boston  Boyd & Fraser Pub. Co. 
  508. 1987
  509.     Riley, David D.á Using Modula-2: An Introduction To Computer 
  510. Science I  Boston  Boyd & Fraser Pub. Co.  1987
  511.     Sale, Arthur H. J.á Modula-2: Discipline & Design  Sydney 
  512. Addison-Wesley  1986
  513.     Sawyer, Brian & Foster, Dennis.áá Programming Expert Systems 
  514. in Modula-2  New York  Wiley  1986
  515.     Schildt, Herbertá Advanced Modula-2  Berkeley, CA  Osborne 
  516. McGraw-Hill  1987
  517.     Schildt, Herbertá Modula-2 Made Easy  Berkeley, CA  Osborne 
  518. McGraw-Hill  1986
  519.     Schiper, Andre; (tr. Howlett, Jack)á Concurrent programming: 
  520. Illustrated With Examples in Portal, Ada, and Modula-2    Halsted 
  521. Press  1989
  522.     Schnapp, Russell L.á Macintosh Graphics in Modula-2 
  523. Englewood Cliffs, NJ  Prentice-Hall  1986
  524.     Sincovec, Richard F. & Richard S. Wiener.áá Data Structures 
  525. Using Modula-2  New York  Wiley  1986
  526.     Sincovec, Richard F. & Wiener, Richard S.á Modula-2 Software 
  527. Components  New York  Wiley  1987
  528.     Stubbs, Daniel F. & Webre, Neil W.á Data Structures With 
  529. Abstract Data Types and Modula-2  Monterey, CA  Brooks/Cole Pub. Co. 
  530. 1987
  531.     Sutcliffe, Richard J.á Introduction to Programming Using 
  532. Modula-2  Columbus, OH  Merrill  1987
  533.     Sutcliffe, Richard J. mailto:rsutc@arjay.ca. Modula-2: 
  534. Abstractions for Data and Programming Structures (Using ISO-Standard 
  535. Modula-2) Mt. Lehman: Arjay Enterprises 1996-2000. 
  536. http://www.arjay.bc.ca (1996 09 16)
  537.     Sutcliffe, Richard J. Standard Generic Modula-2 (Document 
  538. ISO/IEC/JTC1/SC22/WG13 D235) 1996 07 12 
  539. ftp://FTP.twu.ca/pub/modula2/WG13/ca101.GenericModula2CD(1996 09 16)
  540.     Sutherland, Robert J.á The Professional Programmer's Guide to 
  541. Modula-2  London  Pitman  1988
  542.     Terry, Patrick D.á An Introduction To Programming with 
  543. Modula-2  Reading, MA  Addison-Wesley  1987
  544.     Thalmann, Danielá Modula-2: An Introduction  New York 
  545. Springer-Verlag  1985
  546.     Tremblay, Jean-Paul DeDourek, John M. & Daoust, David A.á 
  547. Programming in Modula-2  New York  McGraw-Hill  1989
  548.     Tucker, Allen B. Jr.  Computer science: A Second Course Using 
  549. Modula-2  New York   McGraw-Hill  1988
  550.     Ullmann, Jeffreyá Compiling in Modula-2 - A First 
  551. Introduction To Classical Recursive Descent Compiling   Hemel 
  552. Hempstead  England: Prentice-Hall  1994
  553.     Ural, Saim & Ural, Suzaná Introduction to Programming with 
  554. Modula-2  New York  Harper & Row  1987
  555.     Walker, Billy Ká Modula-2 Programming With Data Structures 
  556. Belmont, CA  Wadsworth Pub. Co.  1986
  557.     Walker, Robert D.á Modula-2 Library Modules: A Programmer's 
  558. Reference  Blue Ridge Summit, PA  Tab Books  1988
  559.     Ward, Terry A.á Advanced Programming Techniques in Modula-2 
  560. Glenview, IL  Scott Foresman  1987
  561.     Welsh, Jim & Elder, Johná Introduction to Modula-2  Englewood 
  562. Cliffs, NJ  Prentice-Hall  1987
  563.     Wiatrowski, Claude A. & Wiener, Richard S.á From C to 
  564. Modula-2--and Back - Bridging The Language Gap  New York  Wiley
  565.     Wiener, Richardá Modula-2 Wizard's Programming Reference  New 
  566. York  Wiley  1986
  567.     Wiener, Richard & Ford, G.á Modula-2 A Software Development 
  568. Approach  New York  Wiley  1985
  569.     Wiener, Richard & Sincovec, R. F.á Software Engineering with 
  570. Modula-2 and Ada  New York  Wiley  1984
  571.     Willis, Claire & Paddon, Dereká Abstraction And Specification 
  572. With Modula-2  London  Pitman  1992
  573.     Wirth, Niklausá Programming in Modula-2 (3rd corrected ed.) 
  574. New York  Springer-Verlag  1985
  575.     Wirth, Niklausá Algorithms and Data Structures (1986 edition) 
  576. Englewood Cliffs, NJ  Prentice-Hall  1986
  577.     Wirth, Niklausá Programming in Modula-2 (4th ed.)   New York 
  578. Springer-Verlag  1990
  579.     Woodman, Mark et alá Portable Modula-2 Programming 
  580. Maidenhead, Berkshire UK  McGraw-Hill  1989
  581.  
  582. 7. REVIEWS OF MODULA-2 PRODUCTS.
  583.  
  584. Note: The reviews have been contributed by others and I take no 
  585. responsibility for their accuracy or for any opinions expressed 
  586. therein. I have updated some of the facts.
  587.  
  588. p1 Modula-2 v5.2 for Macintosh, by Marc Martin, Dec 1994.This is an 
  589. excellent Modula-2 compiler, implemented as an MPW Tool. Highlights 
  590. include ISO language extensions & library, a full set of Macintosh 
  591. toolbox definitions, language extensions to simplify toolbox 
  592. programming, object-oriented extensions and support for MacApp, 
  593. greater than 32k code and globals, code generation comparable to 
  594. Apple's official compilers, several FPU code options, multi-window 
  595. debugger, linkable with other MPW languages, detailed documentation, 
  596. and superb technical support via e-mail. Downsides include high cost 
  597. (US$400), dependency on MPW, lack of SADE support. Version 6.0 has 
  598. been released for creating PowerPC programs under MPW or CodeWarrier.
  599.  
  600. Appendix: AUTHOR INFORMATION AND DISCLAIMERS
  601.  
  602. Personal: I have used, written about, and taught Modula-2 (since 
  603. 1983) and have maintained some of the information in this list for 
  604. over seven years. I have used at least a dozen different 
  605. compiler/environments in that time on five different platforms, and 
  606. have written numerous articles and reviews for publication. I have 
  607. been a member of the ISO committee WG13 (Modula-2 standardization) 
  608. since its inception and have participated in all the debates and 
  609. meetings of WG13 except for meeting #9 at Lake Wanaka. I have written 
  610. a text on Modula-2 (now shareware), made numerous submissions to WG13 
  611. and directed an implementation of the ISO I/O library in order to 
  612. verify its concepts. I am the author and project editor of Standard 
  613. Generic Modula-2.
  614.  
  615. Disclaimers:
  616. (i) I take no responsibility for anyone's use or misuse of this information.
  617. (ii) Apart from having been a beta tester, textbook writer, 
  618. programmer and a long time user of Modula-2, I have no financial 
  619. connection with any manufacturer or distributor of software. I am the 
  620. author of some Modula-2 materials (some of which are shareware) as 
  621. noted herein, and of various other books. Some manufacturers may 
  622. distribute my shareware on CD-ROM for a previously arranged fee, but 
  623. that is not an endorsement of their products by me or of mine by them.
  624. (iii) In producing this material, I am NOT acting in an official 
  625. capacity for TWU, WG13, ABC, IEEE, ACM, comp.lang.modula2, or any 
  626. other organization.
  627. (iv) Mention of a book or product is NOT an endorsement unless 
  628. specifically noted.
  629. (v) Inclusion of materials on this list is based on relevance to 
  630. Modula-2 and factual content and is otherwise entirely without 
  631. prejudice. I reserve the right to edit all submissions for brevity, 
  632. clarity, and usage.
  633.  
  634. To remain authoritative, this and all versions of this FAQ are 
  635. copyright 1991-2002 by Rick Sutcliffe and Arjay Enterprises. This 
  636. document may be freely copied and distributed provided it is not 
  637. altered and no fee is charged with the exception of normal 
  638. downloading or copying costs.
  639.  
  640. Compiled by:
  641. Rick Sutcliffe (aka The Northern Spy in the old days)
  642. Trinity Western University
  643. 7600 Glover Rd.,
  644. Langley, B.C. Canada V2Y 1Y1
  645. 1 604 888-7511 Fax 1 604 513-2018
  646.  
  647. see my personal services web page at
  648. Arjay Enterprises
  649. mailto:rsutc@arjay.ca
  650.  
  651.  
  652. -- 
  653. Rick Sutcliffe Professor Math/Cmpt Trinity Western University. Try 
  654. <http://www.arjay.bc.ca> for Christian SF, books on Modula-2 and 
  655. Ethics in Technology. Philology site at <http://www.opundo.com>
  656.