📄 read.me
字号:
Subdirectory "Docs" Documentation
COCO.USE Notes on the use of Coco
COCOL The compiler description language
CHANGES Differences between Oberon and Modula-2 versions
Subdirectories "Frames" and "IsoFrame" Specimen frame files. One set is
for generating parsers to be used with the supplied FileIO library, the
other set is for generating parsers to be used with an ISO I/O library.
SCANNER.FRM Frame from which the standard scanner is generated
SCANNERC.FRM Frame from which a scanner can be generated
allowing the retrieval of comment text
SCANNER2.FRM Frame from which a more efficient scanner can be
generated for short source files
PARSER.FRM Frame from which the parser is generated
COMPILER.FRM Frame from which a driver compiler may be generated
(tabs in the listing files are retained)
COMPILE2.FRM Frame from which a driver compiler may be generated
(tabs in the listing files are expanded)
Subdirectory "Sources" and its subdirectories - Sources for Coco/R
CR.MOD Main program
CR.ATG Fully attributed grammar of Coco/R
CR0.ATG Simplifed grammar of Coco/R (no attributes)
CRE.TXT Error numbers and corresponding error message texts
CRS.DEF + MOD Scanner (generated by Coco/R from CR.ATG)
CRP.DEF + MOD Parser (generated by Coco/R from CR.ATG)
(The JPI specific version of CRP.MOD is in the
Sources\JPI directory)
CRT.DEF + MOD Symbol table, top-down graph, grammar tests.
CRA.DEF + MOD Generation of the scanner.
CRX.DEF + MOD Generation of the parser.
CRC.DEF + MOD Generation of the compiler driver.
CRG.DEF + MOD Module giving symbolic names for scanner/parser
to use (Generated with $N pragma)
FileIO.DEF General input output library definition
FileIO.MOD Source for FileIO.MOD appears in compiler specific
subdirectories - Sources\JPI Sources\FST Sources\STO
Sources\LOG or Sources\GPM etc
Sets.DEF + MOD Various set operations
CR.FRM Frame from which CR.MOD may be regenerated ($C pragma)
Subdirectory "Taste" A tiny compiler and utilities as examples of Coco/R
Taste.ATG Compiler description
Taste.FRM Frame from which TASTE.MOD may be generated ($C pragma)
TC.DEF + MOD Code generator/interpreter
TL.DEF + MOD Symbol table handler
Pretty.ATG Pretty printer description
Pretty.FRM Frame from which PRETTY.MOD may be generated ($C pragma)
Prettier.DEF and MOD Auxiliary pretty printing routines
XRef.ATG Cross referencer description
Xref.FRM Frame from which XREF.MOD may be generated ($C pragma)
CrossRef.DEF + MOD Auxiliary table handlers
*.TAS Example input files
Subdirectory "EBNF" An EBNF cross referencer as an example of Coco/R
EBNF.ATG Compiler description
EBNF.FRM Frame from which EBNF.MOD may be generated ($C pragma)
CrossRef.DEF + MOD Auxiliary table handlers
BNF.* Example input files
Subdirectory "Pretty" and "ISOPretty" A Modula-2 pretty printer
ISOMOD2.ATG Pretty printer description (ISO M-2)
PIMMOD2.ATG Pretty printer description (PIM M-2)
MOD2.FRM Frame from which MOD2.MOD may be generated ($C pragma)
Prettier.DEF and MOD Auxiliary pretty printing routines
Scanner.FRM Special Scanner frame file to handle comments
Subdirectory "Sample" Further sample grammars for Coco/R
--- These are not necesarily suitable for immediate use. They may need
massaging and adaptation before sensible parsers can be constructed
ADACS.ATG Subset Ada grammar based on Fischer and LeBlanc
CALC.ATG Simple calculator grammar based on Dobler
CDECL.ATG Decipher complicated C declarations
CLANG1.ATG Clang level 1 grammar based on Terry
CLANG2.ATG Clang prettyprinter based on Terry
EXPR.ATG Simple expression grammar
ADACS.ATG Subset Ada grammar based on Fisher and LeBlanc
MICROADA.ATG Subset Ada grammar based on Dobler
MOD2.ATG Modula-2 grammar based on Dobler's
PIMMOD2.ATG Modula-2 grammar based on PIM
PASCAL.ATG Jensen and Wirth Pascal
C.ATG Grammar for a subset of C
CMINUS.ATG Simple C like language
HTML.ATG Subset of early versions of HTML for Web pages
OBERON.ATG Grammar for Oberon
UMBRIEL1.ATG Grammar for Umbriel
UMBRIEL2.ATG Grammar for Umbriel
TOPSY0.ATG Another simple C like language
References
==========
For further information on the use and implementation of Coco refer to
Moessenboeck, H. : A Generator for Fast Compiler Front-Ends.
Report 127, Dept. Informatik, ETH Zurich (1990)
Moessenboeck, H. : A generator for production quality compilers.
Proc 3rd Int'l Workshop on Compiler-Compilers, Schwerin FRG, 1990
Related insight may be gained from
Rechenberg, P and Moessenboeck, H. : A compiler generator for
microcomputers (Prentice-Hall, 1989)
whichs describes Alex and Coco, predecessors of Coco/R, and from
Dobler, H. and Pirklbauer, P. : Coco-2, a new Compiler Compiler
(ACM SIGPLAN Notices, 25(5), 82-90, May 1990)
Dobler, H. : Top-down Parsing in Coco-2
(ACM SIGPLAN Notices, 26(3), 79-87, March 1991)
which describe Coco-2, another derivative of the original Coco.
A textbook making extensive use of Coco/R is
Terry, P.D. : Compilers and Compiler Generators - an introduction with C++
(ITCP, London, 1997)
This book contains numerous case studies; in spite of the title, the case
studies are supplied in machine readable form for users of any one of
Modula-2, Pascal and C/C++. These sources are also available by anonymous
ftp from
cs.ru.ac.za:/pub/languages
or point your browser at the textbook home page
http://cs.ru.ac.za/homes/cspt/compbook.htm
Licensing
=========
The Modula-2 version of Coco/R is not a public domain program. It is being
distributed as Shareware. This means that you are encouraged to make
unmodified copies of the software and documentation for your own evaluation,
and for others to try, but you may not sell it, or distribute it in
connection with any other product or service.
Should you find Coco/R to be useful, you are invited to become a registered
user, by sending your name and address to one of the developers:
Prof. Hanspeter Moessenboeck
University of Linz
Institute of Computer Science
Altenbergerstr 69
A-4040 Linz
Austria
Tel: +43-732-2468-9700
e-mail: moessenboeck@ssw.uni-linz.ac.at
or
Prof. Pat Terry
Computer Science Department,
Rhodes University
GRAHAMSTOWN 6140, South Africa
Tel: +27-46-6038292
e-mail: cspt@cs.ru.ac.za or pdterry@psg.com
If you make use of the Modula-2 version of Coco/R for commercial projects
(that is, to develop software that you sell to others) you are obliged to
pay for it by making a donation of $50; usage for academic purposes is free.
The C/C++ version is being distributed under the same terms as GNU software.
For full details contact Frankie Arzu (farzu@daman,org or farzu@uvg.edu.gt).
Users who implement Coco/R under other compilers are encouraged to share
their experience and to make their I/O module implementations available in
later releases of the system.
Trademarks
==========
Any and all trademarks mentioned above are duly acknowledged.
=END=
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -