YACC

YACC

Yacc ist ein Computerprogramm, welches zur Herstellung von Compilern dient. Das Wort Yacc ist ein Akronym, das selbstironisch für yet another compiler compiler steht.

Yacc ist eine Implementierung eines Parsergenerators der eine einfache Möglichkeit zur Definition der Syntax neuer Programmiersprachen bietet. Hierzu generiert Yacc einen Parser auf Basis eines Kellerautomaten. Der Parser analysiert Eingabedaten und zerteilt diese in logische Strukturen, die durch kontextfreie Grammatiken vorgegeben sind. Die Grammatik wird bei Yacc in einer BNF-ähnlichen Notation angegeben.

Yacc dient der syntaktischen Analyse, während das häufig in Kombination mit Yacc genutzte Lex die lexikalische Analyse eines Textes durchführt.

Yacc erzeugt aus der Sprachdefinition Programmcode, der typischerweise in C bereitgestellt wird und als Parser dient. Daneben gibt es weitere Yacc-Varianten, die Code für andere Sprachen erzeugen, wie beispielsweise Ayacc für die Sprache Ada.

Yacc wurde ursprünglich von Steven C. Johnson bei AT&T im Rahmen des UNIX-Projektes entwickelt. Später sind weitere Varianten des Programms entstanden, wie beispielsweise Berkeley Yacc, GNU Bison, MKS Yacc and Abraxas Yacc. Diese basieren auf dem gleichen Grundkonzept wie YACC, bieten aber oft Verbesserungen im Detail.

Um einen Compiler oder Interpreter zu erstellen, benötigt ein von Yacc generierter Parser noch ein weiteres Programmmodul zur lexikalischen Analyse (Lexikalischer Scanner) des Quellcodes. Hierfür wird häufig das ebenfalls unter UNIX entwickelte Programm Lex eingesetzt.

Verschiedene, teilweise erweiterte OpenSource-Implementierungen existieren, etwa das im Rahmen des GNU-Projekts entwickelte Programm bison oder byacc, in modernen BSD-Betriebssystemen. Der Quellcode von yacc ist heute ebenfalls unter einer freien Lizenz veröffentlicht. Yacc ist unter anderem Bestandteil von OpenSolaris und Plan 9.

Literatur

  • Herold, Helmut: lex & yacc . Die Profitools zur lexikalischen und syntaktischen Textanalyse. Addison Wesley, 2003, ISBN 3-82732-096-8
  • John R. Levine, Tony Mason, Doug Brown: lex & yacc, O'REILLY 1992, ISBN 1-56592-000-7
  • S. C. Johnson, Yacc: Yet Another Compiler Compiler, Computing Science Technical Report No. 32, 1975, Bell Laboratories, Murray Hill, New Jersey 07974

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Yacc — es un programa para generar analizadores sintácticos. Las siglas del nombre significan Yet Another Compiler Compiler, es decir, Otro generador de compiladores más . Genera un analizador sintáctico (la parte de un compilador que comprueba que la… …   Wikipedia Español

  • Yacc — ist ein Computerprogramm, welches der Herstellung von Compilern dient. Das Wort Yacc ist ein Akronym, das selbstironisch für yet another compiler compiler steht. Yacc dient der syntaktischen Analyse. Es implementiert einen Parsergenerator, der… …   Deutsch Wikipedia

  • Yacc — yacc  компьютерная программа, служащая стандартным генератором синтаксических анализаторов (парсеров) в Unix системах. Название является сокращением от «Yet Another Compiler Compiler» («ещё один компилятор компиляторов»). Yacc генерирует… …   Википедия

  • yacc — yacc  компьютерная программа, служащая стандартным генератором синтаксических анализаторов (парсеров) в Unix системах. Название является акронимом «Yet Another Compiler Compiler» («ещё один компилятор компиляторов»). Yacc генерирует парсер… …   Википедия

  • YACC —   [Abk. für Yet Another Compiler Compiler, dt. »noch ein Compiler für Compiler«], Hilfsprogramm für das Betriebssystem Unix. YACC dient dazu, mittels formaler Definitionen einer vom Anwender vorgegebenen Computersprache, Compiler …   Universal-Lexikon

  • yacc — (Yet Another Compiler Compiler) n. computer software that is used as the standard parser generator on Unix systems …   English contemporary dictionary

  • Yacc — The computer program yacc is a parser generator developed by Stephen C. Johnson at AT T for the Unix operating system. The name is an acronym for Yet Another Compiler Compiler. It generates a parser (the part of a compiler that tries to make… …   Wikipedia

  • YACC — Lex et yacc Lex et Yacc sont des outils très populaires de génération d analyseurs lexicaux (Lex) et syntaxiques (Yacc) en langage C. « Yacc » est l acronyme de Yet Another Compiler Compiler. Du point de vue de la classification des… …   Wikipédia en Français

  • Yacc — Lex et yacc Lex et Yacc sont des outils très populaires de génération d analyseurs lexicaux (Lex) et syntaxiques (Yacc) en langage C. « Yacc » est l acronyme de Yet Another Compiler Compiler. Du point de vue de la classification des… …   Wikipédia en Français

  • YACC — Yet Another Compiler Compiler Grammatikinterpreter und Compilergenerator unter UNIX http://www.desy.de/cgi bin/man cgiyacc …   Acronyms

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”