home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / lang / modula2 / 1625 < prev    next >
Encoding:
Text File  |  1993-01-05  |  7.5 KB  |  175 lines

  1. Newsgroups: comp.lang.modula2
  2. Path: sparky!uunet!psgrain!hippo!cspdt.ru.ac.za!cspt
  3. From: cspt@giraffe.ru.ac.za (Prof. P. Terry)
  4. Subject: Re: Compiler Tools
  5. Message-ID: <cspt.56.726230824@giraffe.ru.ac.za>
  6. Lines: 163
  7. Sender: news@hippo.ru.ac.za
  8. Organization: Rhodes University, Grahamstown, South Africa
  9. References: <725269241snx@black.demon.co.uk> <1993Jan4.180947.27027@gallant.apple.com>
  10. Date: Tue, 5 Jan 1993 10:47:04 GMT
  11.  
  12. In article <1993Jan4.180947.27027@gallant.apple.com> cheryl@gallant.apple.com (Cheryl Lins) writes:
  13.  
  14. >In article <725269241snx@black.demon.co.uk> tchannon@black.demon.co.uk writes:
  15. >>All was gloom here until I tried the much improved version of Coco/R by Pat
  16. >>Terry. 
  17. >
  18. >Maybe you're talking about something different, but the Coco/R i have was written
  19. >by Hanspeter Moessenboeck at ETH (one of the original authors of Coco). There
  20. >is even an ETH technical report describing Coco/R.
  21.  
  22. Quite correct - Hanspeter did the original.  What Tim has got hold of is the
  23. revised and slightly extended version for MS-DOS compilers which I have been
  24. maintaining and distributing to folk who qualify.  The internal machine is
  25. Hanspeter's, just a bit of sugar and a few bug fixes from me, as well as some
  26. rearrangement and tweaks to make it easier to port.
  27.  
  28. There has been quite a bit of interest in this recently.  It may be of 
  29. interest to post the README file from the distribution kit
  30.  
  31. Compiler-Generator Coco/R
  32. =========================
  33.  
  34.                (Pat Terry,  updated Mon  15 June 1992)
  35.  
  36. Coco/R generates recursive descent parsers and their associated scanners from
  37. attributed grammars.  This disk contains source files for the compiler
  38. generator Coco/R (Moessenboeck, 1990), as well as the executables, frame
  39. files, and some sample applications.
  40.  
  41. Distribution is free to academic sites.  Commercial users should contact
  42. Professor Moessenboeck at the address below to make licensing arrangements.
  43.  
  44. Coco/R was originally written in Oberon, and has now been ported into Modula-2
  45. and implemented under MS-DOS so that it may be used with any of the TopSpeed
  46. Modula-2 compilers, as well as with the FST 2 or 3, StonyBrook QuickMod 2.2 
  47. and Logitech 3.03 compilers.  The MS-DOS implementation is essentially 
  48. portable across these systems, save for the I/O module used by Coco/R and 
  49. its generated parsers; code for the various implementations is, naturally, 
  50. supplied.
  51.  
  52. Coco/R can bootstrap itself to generate its own driver, parser, scanner, and
  53. semantic evaluator from the attributed grammar CR.ATG.  This grammar thus
  54. serves as an an example of how to write compiler descriptions for Coco.  There
  55. are also other simpler examples showing its use.
  56.  
  57. FileList
  58. ========
  59.  
  60. The following files are provided in the distribution kit:
  61.  
  62. READ.ME                  This file
  63. COCOR.EXE                Compiler-compiler executable
  64. SCANNER.FRM              Frame from which the scanner is generated
  65. PARSER.FRM               Frame from which the parser is generated
  66. COMPILER.FRM             Frame from which a driver compiler may be generated
  67. HISTORY                  Summary of bug fixes and modifications
  68.  
  69. Subdirectory "Docs"      Documentation
  70.  
  71.   COCO.USE               Notes on the use of Coco
  72.   COCOL                  The compiler description language
  73.   CHANGES                Differences between Oberon and Modula-2 versions
  74.  
  75. Subdirectory "Sources":  Sources for Coco/R
  76.  
  77.   CR.MOD                 Main program
  78.   CR.ATG                 Fully attributed grammar of Coco/R
  79.   CR0.ATG                Simplifed grammar of Coco/R (no attributes)
  80.   CRE.TXT                Error numbers and corresponding error message texts
  81.   CRS.DEF + MOD          Scanner (generated by Coco/R from CR.ATG)
  82.   CRP.DEF + MOD          Parser (generated by Coco/R from CR.ATG)
  83.                          (The JPI specific version is in the \JPI directory)
  84.   CRT.DEF + MOD          Symbol table, top-down graph, grammar tests.
  85.   CRA.DEF + MOD          Generation of the scanner.
  86.   CRX.DEF + MOD          Generation of the parser.
  87.   CRC.DEF + MOD          Generation of the compiler driver.
  88.   CRG.DEF + MOD          Module giving symbolic names for scanner/parser
  89.                          to use (Generated with $N pragma)
  90.   FileIO.DEF + MOD       General input output library
  91.                          Source for FileIO.MOD appears in a compiler specific
  92.                          subdirectory - \JPI \FST \STO or \LOG
  93.   Sets.DEF + MOD         Various set operations
  94.   Strings.DEF + MOD      Various string operations for JPI
  95.                          Strings.DEF and MOD appear in \JPI directory
  96.   COMPILER.FRM           Frame from which CR.MOD may be regenerated ($C pragma)
  97.  
  98. Subdirectory "Taste":  A tiny compiler and utilities as examples of Coco/R
  99. (The appropriate .FRM file must be renamed to COMPILER.FRM before use)
  100.  
  101.   Taste.ATG              Compiler description
  102.   Taste.FRM              Frame from which TASTE.MOD may be generated ($C pragma)
  103.   TC.DEF + MOD           Code generator/interpreter
  104.   TL.DEF + MOD           Symbol table handler
  105.  
  106.   Pretty.ATG             Pretty printer description
  107.   Pretty.FRM             Frame from which PRETTY.MOD may be generated ($C pragma)
  108.   PrettyPr.DEF and MOD   Auxiliary pretty printing routines
  109.  
  110.   XRef.ATG               Cross referencer description
  111.   Xref.FRM               Frame from which XREF.MOD may be generated ($C pragma)  TL.DEF + MOD           Table handler
  112.   CrossRef.DEF + MOD     Auxiliary table handlers
  113.  
  114.   *.TAS                  Example input files
  115.  
  116. Subdirectory "SAMPLE":   Further sample grammars for Coco/R
  117.  
  118.   ADACS.ATG              Subset Ada grammar based on Fischer and LeBlanc
  119.   CALC.ATG               Simple calculator grammar based on Dobler
  120.   CLANG1.ATG             Clang level 1 grammar based on Terry
  121.   CLANG2.ATG             Clang prettyprinter based on Terry
  122.   EXPR.ATG               Simple expression grammar
  123.   MICROADA.ATG           Subset Ada grammar based on Dobler
  124.   MOD2.ATG               Modula-2 grammar based on Dobler's
  125.   PIMMOD2.ATG            Modula-2 grammar based on PIM
  126.  
  127. Credits
  128. =======
  129.  
  130. Coco/R was originally developed by
  131.  
  132.       Prof. Hanspeter Mössenböck
  133.       ETH Zürich, Institut für Computersysteme
  134.       ETH-Zentrum, CH-8092 Zürich, Switzerland
  135.       Tel.: +41-1-254 7342
  136.       e-mail: moessenboeck@inf.ethz.ch
  137.  
  138. The first Modula-2 port was done by Hanspeter Mössenböck for the Apple
  139. MacMeth system.  A port was done to JPI TopSpeed Modula-2 at ETH by Marc
  140. Brandis and Christof Brass, and this was made available to Pat Terry, who has
  141. corrected several errors, enhanced the portability, and provided the versions
  142. which you find on this disk.  Responsibility for remaining bugs in the MS-DOS
  143. version thus rests largely with
  144.  
  145.       Pat Terry
  146.       Computer Science Department, Rhodes University
  147.       GRAHAMSTOWN 6140,  South Africa
  148.       Tel: +27-461-22023 ext 291
  149.       e-mail: pdterry@m2xenix.psg.com or cspt@alpha.ru.ac.za
  150.  
  151. For further information on the use and implementation of Coco refer to
  152.  
  153.   Mössenböck, H. : A Generator for Fast Compiler Front-Ends.
  154.   Report 127, Dept. Informatik, ETH Zurich (1990)
  155.  
  156.   Mössenböck, H. : A generator for production quality compilers.
  157.   Proc 3rd Int'l Workshop on Compiler-Compilers, Schwerin FRG, 1990
  158.  
  159. Related insight may be gained from
  160.  
  161.   Rechenberg, P and Mössenböck, H. : A compiler generator for
  162.   microcomputers (Prentice-Hall, 1989)
  163.  
  164. whichs describes Alex and Coco, predecessors of Coco/R, and from
  165.  
  166.   Dobler, H. and Pirklbauer, P.  : Coco-2, a new Compiler Compiler
  167.   (ACM SIGPLAN Notices, 25(5), 82-90, May 1990
  168.  
  169.   Dobler, H. : Top-down Parsing in Coco-2
  170.   (ACM SIGPLAN Notices, 26(3), 79-87, March 1991.
  171.  
  172. which describe Coco-2, another derivative of the original Coco.
  173.  
  174. =END=
  175.