CoCo Amiga ein Compiler Compiler für Microcomputer CoCo ist ein Compilergenerator wie YACC. D.h. mit Hilfe einer Grammatik kann man eine Sprache und einen Compiler dazu definieren. Der Unterschied zu YACC ist, daß YACC Compiler in C generiert, und CoCo Compiler in Modula. CoCo verwendet außerdem LL(1) Grammatiken, und YACC LR(1). CoCo wird beschrieben in: Ein Compiler-Generator für Mikrocomputer P. Rechenberg, H. Mössenböck Hanser Verlag, 1985 ISBN 3-446-14495-1 Der Vorteil von CoCo gegenüber YACC ist einmal, daß CoCo Compiler für Modula erzeugt. Außerdem sind LL(1) Grammatiken einfacher zu verstehen. Es ist allerdings nicht immer einfach, zu kontrollieren, ob eine Grammatik den LL(1) Bedingungen entspricht. Diese Aufgabe übernimmt CoCo. Das Wieder- aufsetzen nach einem Fehler kann auch einfach gelöst werden. Eine einfache Fehlerbehandlung wird mit CoCo gleich mitgeliefert. Dateien: zum Betrieb von Coco coco Der Compilergenerator die folgenden Dateien sollten im aktuellen Directory stehen cocotab Grammatiktabelle für Coco cocosemf Texte für das zu erzeugende Semantikmodul cocosynf Texte für das zu erzeugende Syntaxmodul grammatik.atg Eine LL(1)-Grammatik zum Generierung eines mit Coco erzeugten Compilers ByteBlockIO.def/mod Errors.def/mod Standardfehlerbehandlung FileIO.def/mod Hilfsroutinen für Ein- Ausgabe auf Dateien. weitere Dateien am Beispiel von oberon.atg oberonlex.def/mod Der lexikalische Analysator oberon.mod Das Hauptprogramm des Compiler og.def/mod Die eigentlichen semantischen Aktionen zum Betrieb des Oberoncompilers oberontab Wird von CoCo erzeugt Euclid.obn, Test.obn zwei nutzlose Beispiele für Oberonprogramme Zur Generierung eines Compilers braucht man eine Grammatik und einen lexikalischen Analysator. Diesen kann man nach dem Muster von cocolex entwerfen. Als Beispiel kann man das Analysemodul für die Grammatik für Oberon nehmen. Wer will kann allerdings auch seine eigenen lexikalischen Analysator schreiben. CoCo kann vom CLI oder der Workbench ohne Argumente aufgerufen werden. Aufruf: coco oder Icon anklicken danach wird der Name der Eingabegrammatik abgefragt. z.B. 'oberon.' oder 'oberon.atg'. 'atg' wird bei einem Namen, der mit '.' endet ergänzt. Beim Start sollte man noch etwas Platz auf der Diskette haben. CoCo generiert folgende Dateien: grammatiktab grammatiksyn.def/mod grammatiksem.def/mod grammatik.lst Danach kann man den Compiler mit M2Amiga übersetzen.