Yacc is a piece of computer software that serves as the standard parser generator on Unix systems. The name is an acronym for "Yet Another Compiler Compiler." It generates a parser (the part of a program that tries to make sense of the input) based on a grammar written in BNF notation. Yacc generates the code for the parser in the C programming language.Yacc was developed by Steven C. Johnson at AT&T for the Unix operating system. Later compatible programs were written, such as Berkeley Yacc, GNU bison, MKS yacc and Abraxas yacc. Each offer slight improvements and additional features over the original Yacc, but the concept has remained the same.
Since the parser generated by Yacc requires a lexical analyzer, it is often used in combination with a lexical analyzer generator, in most cases the Lex program. The IEEE POSIX P1003.2 standard defines the functionality and requirementIn software engineering, a requirement is a description of what a system should do. Very few systems have a single requirement (!), and most have hundreds. A collection of requirements then define the characteristics of the desired (required) system, buts to both Lex and Yacc.
1 See also
- GNU bison
- CodeWorker
- ANTLRANTLR is a parser generator that uses LL(k) parsing. ANTLR stands for "ANother Tool for Language Recognition". Given that ANTLR is in competition with LR parser generators, the alternative reading "ANT(i)-LR" may not be accidental. For an introction, see.
- JavaCCJavaCC (Java Compiler Compiler) is a parser generator for the Java programming language. JavaCC is similar to Yacc in that it generates a parser for a grammar provided in BNF notation, except the output is Java source code. In 1996, Sun Microsystems relea, a parser generator for JavaJava is an object-oriented programming language developed primarily by James Gosling and colleagues at Sun Microsystems. The language, initially called Oak (named after the oak trees outside Gosling's office), was intended to replace C++, although the fea
- Coco/RCoco/R is a compiler generator ( Compiler-compiler), which takes an attributed grammar of a source language and generates a scanner and a parser for this language. The scanner works as a deterministic finite automaton. The parser uses recursive descent., a scanner and parser generator for Java and C#
2 External links
- Berkeley Yacc, Generally conceded to be the best yacc variant available. In contrast to bison, it is written to avoid dependencies upon a particular compiler.
- Essence, an LR(1) parser generator for Scheme
- Parser-tools for DrScheme.
Computer programming tools