Bearbeiter-Bearbeiter

In der Informatik, einem Bearbeiter-Bearbeiter oder dem Bearbeiter-Generator ist ein Werkzeug, das einen parser, Dolmetscher oder Bearbeiter von einer Form der formellen Beschreibung einer Sprache und Maschine schafft. Das frühste und noch ist der grösste Teil der Standardform des Bearbeiter-Bearbeiters ein parser Generator, dessen Eingang eine Grammatik (gewöhnlich in BNF) einer Programmiersprache ist, und dessen erzeugte Produktion der Quellcode eines als ein Bestandteil eines Bearbeiters häufig verwendeten parser ist. Ähnlich bestehen Codegenerator-Generatoren wie (JBurg), aber solche Werkzeuge haben Reife noch nicht erreicht.

Der ideale Bearbeiter-Bearbeiter nimmt eine Beschreibung einer Programmiersprache und einer Zielbefehlssatz-Architektur, und erzeugt automatisch einen verwendbaren Bearbeiter von ihnen. In der Praxis muss der Stand der Technik noch diesen Grad der Kultiviertheit erreichen, und die meisten Bearbeiter-Generatoren sind dazu nicht fähig, semantisch zu behandeln, oder nehmen Architektur-Information ins Visier.

Varianten

Ein typischer parser Generator vereinigt rechtskräftigen Code mit jeder der Regeln der Grammatik, die durchgeführt werden sollte, wenn diese Regeln durch den parser angewandt werden. Diese Stücke des Codes werden manchmal semantische Handlungsroutinen genannt, da sie die Semantik der syntaktischen Struktur definieren, die durch den parser analysiert wird. Abhängig von Typ von parser, der erzeugt werden sollte, können diese Routinen einen Syntaxanalyse-Baum (oder abstrakten Syntax-Baum) bauen, oder rechtskräftigen Code direkt erzeugen.

Einer der frühsten (1964), überraschend stark, sind Versionen von Bearbeiter-Bearbeitern MetaII, der Grammatiken und Codegenerationsregeln akzeptiert hat und im Stande ist, sich und andere Sprachen zu kompilieren.

Einige experimentelle Bearbeiter-Bearbeiter nehmen als Eingang eine formelle Beschreibung der Programmiersprache-Semantik, normalerweise mit denotational Semantik. Diese Annäherung wird häufig 'das Semantik-basierte Kompilieren' genannt, und wurde von Semantic Implementation System (SIS) von Peter Mosses 1978 den Weg gebahnt. Jedoch waren sowohl der erzeugte Bearbeiter als auch der Code, den es erzeugt hat, rechtzeitig und Raum ineffizient. Keine Produktionsbearbeiter werden zurzeit auf diese Weise gebaut, aber Forschung geht weiter.

Das Produktionsqualitätsprojekt des Bearbeiter-Bearbeiters an der Universität von Carnegie-Mellon formalisiert Semantik nicht, aber hat wirklich ein halbformelles Fachwerk für die Maschinenbeschreibung.

Bearbeiter-Bearbeiter bestehen in vielen Geschmäcken, einschließlich schreiben von unten nach oben Maschinengeneratoren um (sieh JBurg) hat gepflegt, Syntax-Bäume gemäß einer umschreiben Grammatik für die Codegeneration und Attribut-Grammatik parser Generatoren mit Ziegeln zu decken (z.B. ANTLR kann für die gleichzeitige Datentypprüfung, unveränderliche Fortpflanzung, und mehr während der Syntaxanalyse-Bühne verwendet werden).

Geschichte

Der erste Bearbeiter-Bearbeiter, um diesen Namen zu verwenden, wurde von Tony Brooker 1960 geschrieben und wurde verwendet, um Bearbeiter für den Atlas-Computer an der Universität Manchesters einschließlich des Atlas-Autocodebearbeiters zu schaffen. Jedoch war es von modernen Bearbeiter-Bearbeitern ziemlich verschieden, und würde wahrscheinlich heute beschrieben als, irgendwo zwischen einem hoch anpassbaren allgemeinen Bearbeiter und einer Sprache der ausziehbaren Syntax zu sein. Der Name 'Bearbeiter-Bearbeiter' war für das System von Brooker viel passender, als es für die meisten modernen Bearbeiter-Bearbeiter ist, die als parser Generatoren genauer beschrieben werden. Es ist fast sicher, dass der "Bearbeiter Bearbeiter" Name in übliche Anwendung wegen Yaccs Arbeit aber nicht Brookers eingegangen ist, die nicht wird vergisst.

Andere Beispiele von parser Generatoren in der yacc Ader sind ANTLR, Coco/R, TASSE, GNU-Bison, Eli, FSL, SableCC und JavaCC.

Mehrere Bearbeiter-Bearbeiter

  • ANTLR
  • Bison
  • Coco/R
  • DMS Softwareneugestaltungswerkzeug, ein Programm-Transformationssystem mit parser Generatoren
  • ELI, ein einheitlicher toolset für den Bearbeiter-Aufbau.
  • Zitrone
  • halb gekocht, eine javanische Bibliothek, um parsers zu bauen.
  • Packrat parser
  • PQCC, ein Bearbeiter-Bearbeiter, der mehr als ein parser Generator ist.
  • VisualLangLab, ein parser Sehgenerator für JVM Sprachen.
  • Yacc

Andere zusammenhängende Themen

Referenzen

Weiterführende Literatur

Historisch

  • Brooker, R. A., u. a. Der Bearbeiter-Bearbeiter, die Jährliche Rezension in der Automatischen Programmierung, Vol. 3, p. 229. (1963).
  • Brooker, R. A., Morris, D. und Rohl, J. S., Erfahrung mit dem Bearbeiter-Bearbeiter, der Computerzeitschrift, Vol. 9, p. 350. (Februar 1967).
  • Johnson, Stephen C., Yacc — noch ein anderer Bearbeiter-Bearbeiter, Informatik Technischer Bericht 32, Glockenlaboratorien, Murray Hill, New Jersey, Juli 1975
  • McKeeman, William Marshall; Horning, James J.; Wortman, David B., CS.toronto.edu, Ein Bearbeiter-Generator, Englewood Klippen, N.J.: Prentice-Hall, 1970. Internationale Standardbuchnummer 0-13-155077-2

Links


Joe Satriani / Klotz
Impressum & Datenschutz