| dbpprop:abstract
|
- 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 syntactic sense of the source code) based on an analytic grammar written in a notation similar to BNF. Yacc generates the code for the parser in the C programming language. Yacc used to be available as the default parser generator on most Unix systems. It has since been supplanted as the default by more recent, largely compatible, programs such as Berkeley Yacc, GNU bison, MKS yacc and Abraxas pcyacc. An updated version of the original AT&T version is included as part of Sun's OpenSolaris project. Each offers slight improvements and additional features over the original yacc, but the concept has remained the same. Yacc has also been rewritten for other languages, including Ratfor, EFL, ML, Ada, Pascal, Java, Limbo, and Common Lisp. The parser generated by yacc requires a lexical analyzer. Lexical analyzer generators, such as Lex or Flex are widely available. The IEEE POSIX P1003.2 standard defines the functionality and requirements for both Lex and Yacc. Some versions of AT&T Yacc have become open source. For example, source code (for different implementations) is available with the standard distributions of Plan 9 and OpenSolaris.
- 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 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.
- yacc je v informatice generátor syntaktických analyzátorů vyvinutý Stephenem C. Johnsonem z AT&T pro unixové operační systémy. Zkratka znamená Yet Another Compiler Compiler v překladu „Ještě další parser generátor“. Yacc generuje parser z gramatiky, která obsahuje popis lexikálních symbolů pomocí regulárních výrazů. Yacc generuje zdrojový kód pro parser v programovacím jazyce C.
- 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 intenta darle sentido a la entrada) basado en una gramática analítica escrita en una notación similiar a la BNF. Yacc genera el código para el analizador sintáctico en el Lenguaje de programación C. Fue desarrollado por Stephen C. Johnson en AT&T para el sistema operativo de Unix. Después se escribieron programas compatibles, por ejemplo Berkeley Yacc, GNU bison, MKS yacc y Abraxas yacc (una versión actualizada de la versión original de AT&T que también es software libre como parte del proyecto de OpenSolaris de Sun). Cada una ofrece mejoras leves y características adicionales sobre el Yacc original, pero el concepto ha seguido siendo igual. Yacc también se ha reescrito para otros lenguajes, incluyendo Ratfor, EFL, ML, Ada, Java, y Limbo. Puesto que el analizador sintáctico generado por Yacc requiere un analizador léxico, se utiliza a menudo conjuntamente con un generador de analizador léxico, en la mayoría de los casos lex o Flex alternativa del software libre. El estándar de IEEE POSIX P1003.2 define la funcionalidad y los requisitos a Lex y Yacc. La versión Yacc de AT&T se convirtió en software libre; el código fuente está disponible con las distribuciones estándares del Plan 9 y de OpenSolaris.
- 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 langages, Lex est capable de traiter des langages de type 3, et Yacc fournit le code nécessaire à l'analyse de langages de type 2 (non-contextuels).
- YACC (Yet Another Compiler Compiler) è un generatore di parser nel linguaggio di programmazione C. Yacc è simile a JavaCC poiché genera un parser per una grammatica fornita nella notazione BNF, ma il codice in output è in C.
- yacc(Yet Another Compiler-Compiler、ヤック)は構文解析器生成系(コンパイラコンパイラ)の一つでありUNIXの基本的なツールとして用いられている。1970年代にAT&Tでスティーブ・ジョンソンが開発した。
- Yacc is een computerprogramma dat op Unixsystemen dienst doet als standaard parsergenerator. De naam is een acroniem voor Yet Another Compiler Compiler. Het programma genereert een parser, dit is het stuk code van een compiler dat probeert de grammaticale structuur van de invoer te achterhalen. Het programma maakt daarbij gebruikt van een grammatica die in BNF-notatie is beschreven. Yacc genereert code voor de programmeertaal C. Yacc werd ontwikkeld door Stephen C. Johnson van AT&T voor het besturingssysteem Unix. Later werden verschillende compatibele programma's geschreven, zoals Berkeley Yacc, GNU bison, MKS yacc en Abraxas yacc. Een geüpdatete versie van de oorspronkelijke AT&T-versie is als open source beschikbaar als onderdeel van het OpenSolaris project van Sun. Elke versie biedt wat lichte verbeteringen en extra opties ten opzichte van de originele Yacc, maar het concept bleef hetzelfde. Yacc is eveneens herschreven voor andere talen, zoals ML, Ada en Java. Omdat de parser die door Yacc wordt gegenereerd ook een lexicale analyse moet maken, wordt het programma vaak gebruikt in combinatie met een lexical analyzer generator. Daarvoor gebruikt men vaak Lex of het vrije Flex. De IEEE POSIX P1003.2-standaard definieert de functionaliteit en vereisten voor zowel Lex als Yacc.
- YACC to standardowy program w systemach uniksowych służący do generowania analizatorów składniowych. Nazwa programu to akronim słów Yet Another Compiler Compiler. Program generuje kod wyjściowy w języku C zgodnym ze standardem ISO na podstawie plików wejściowych zapisanych w notacji podobnej do BNF. YACC potrafi tworzyć parsery dla gramatyk klasy LALR(1). Parser wygenerowany przez YACC sprawdza zgodność strumienia symboli leksykalnych, produkowanych przez analizator leksykalny (np. wygenerowany przez program lex), z gramatyką języka. Dokładne wymagania dotyczące programów lex oraz YACC jak i ich funkcjonalność są opisane w standardzie IEEE POSIX P1003.2. Opis składni (gramatyki) jest przeplatany z kodem w języku C i znajduje się najczęściej w pliku z rozszerzeniem .y. Pliki z gramatyką są to pliki tekstowe, które składają się z trzech części oddzielonych od siebie podwójnym znakiem procentu ("%%") w kolejności: deklaracje, reguły gramatyczne, kod w języku C. Zarówno pierwsza jak i ostatnia sekcja mogą zostać pominięte. Powstało wiele programów o podobnych do yacca, takich jak GNU Bison, ocamlyacc, perl-byacc (generujący parsery w Perlu).
- yacc (acrônimo para Yet Another Compiler Compiler) é um gerador de analisador sintático desenvolvido por Stephen C. Johnson da AT&T para o sistema operacional Unix. Ele gera um analisador sintático, parte do compilador responsável por fornecer sentido sintático a um determinado código fonte, baseado numa gramática formal escrita numa forma similar ao formalismo de Backus-Naur. O resultado é um código para o analisador sintático em C. O yacc costumava ser o gerador de analisador sintático padrão na maioria dos sistemas Unix, mas acabou sendo suplantado por versões mais modernas ainda que compatíveis, como Berkeley Yacc, GNU bison, MKS yacc e Abraxas pcyacc. Uma versão atualizada do código original da AT&T é incluída no OpenSolaris. O yacc também já foi reescrito para outras linguagens, incluindo Ratfor, EFL, ML, Ada, Java e Limbo. O analisador sintático gerado pelo yacc requer um analisador léxico, que pode ser fornecido externamente através e geradores de analisador léxicos como o lex ou o flex. A norma POSIX define a funcionalidade e os requisitos tanto para lex quanto para yacc.
- yacc — компьютерная программа, служащая стандартным генератором синтаксических анализаторов (парсеров) в Unix-системах. Название является сокращением от «Yet Another Compiler Compiler» («всего лишь ещё один генератор компиляторов»). Yacc генерирует парсер на основе аналитической грамматики, описанной в нотации BNF. На выходе yacc выдаётся код парсера на языке программирования Си. Yacc был разработан Stephen C. Johnson в AT&T для операционной системы Unix. Позже были написаны совместимые версии программы, такие как Berkeley Yacc, GNU bison, MKS yacc и Abraxas yacc (обновлённый вариант AT&T-версии с открытым исходным кодом также вошёл в проект OpenSolaris от Sun). Каждый вариант предлагал незначительные улучшения и дополнительные возможности по сравнению с оригиналом, но концепция осталась той же. Yacc также был переписан на других языках, включая Ratfor, EFL, ML, Ada, Java, C# и Limbo. Поскольку парсер, генерируемый с помощью yacc, требует использования лексического анализатора, то часто он используется совместно с генератором лексических анализаторов, в большинстве случаев это lex либо flex. Стандарт IEEE POSIX P1003.2 определяет как функциональность так и требования для lex и yacc.
- Yacc (en engelsk förkortning av Yet Another Compiler Compiler, "Ännu en kompilator-kompilator") är ett program för framtagning av styrspråk för datorkommandon. Med hjälp av en fil som definierar språkets grammatik skapar programmet en kompilator i programspråket C. Yacc baseras på tillståndsmaskin-tekniken. Yacc används ofta tillsammans med Lex som svarar för lexikalisering av text (igenkänning av bokstäver och symboler). En vanlig fri version av Yacc är programmet Bison (vars namn grundar sig på att Yacc är homofon till det engelska ordet för jak, ett annat oxdjur).
- yacc(Yet Another Compiler Compiler),是Unix/Linux上一个用来生成编译器的编译器(编译器代码生成器)。yacc生成的编译器主要是用C語言寫成的语法解析器(Parser),需要与词法解析器Lex一起使用,再把兩部份產生出來的C程序一併編譯。yacc本來只在Unix系統上才有,但現時已普遍移植往Windows及其他平台。 yacc的输入是巴科斯范式(BNF)表达的语法规则以及语法规约的处理代码,Yacc输出的是基于表驱动的编译器,包含输入的语法规约的处理代码部分。 yacc是开发编译器的一个有用的工具,采用LALR(1)语法分析方法。 yacc最初由AT&T的Steven C. Johnson为Unix操作系统开发,后来一些兼容的程序如Berkeley Yacc,GNU bison,MKS yacc和Abraxas yacc陆续出现。它们都在原先基础上做了少许改进或者增加,但是基本概念是相同的。 由于所产生的解析器需要词法分析器配合,因此Yacc经常和词法分析器的产生器——一般就是Lex——联合使用。IEEE POSIX P1003.2 标准定义了Lex和Yacc的功能和需求。
|