Yacc

related topics
{math, number, function}
{system, computer, user}
{language, word, form}

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. Historically, Yacc has generated the code for the parser in the C programming language.[1]

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, ML, Ada, Pascal, Java, Python 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.

See also

References

Full article ▸

related documents
Small-C
Common Language Runtime
Typed link
A-law algorithm
Name server
Binary symmetric channel
Dia (software)
Input
Foobar
Common Intermediate Language
XBasic
Cfront
UnrealScript
Longitudinal redundancy check
Numbering plan
ObjectPAL
BIND
Filter (Unix)
Grid network
ABC (programming language)
Java Development Kit
Abbreviated Test Language for All Systems
Andrew Tridgell
Shotgun debugging
Sequential access
XPointer
Spaced repetition
Object-oriented programming language
Data stream
SuperMemo