Yacc, abbreviated from "Yet Another Compiler Compiler", is a Unix system tool program for generating C or C++ code for a parser.
Yacc is a command-line tool that accepts a grammar description (in a text file) as input and generates the code for a parser for that grammar as output.
Parsers are useful in many systems other than just compilers, such as for reading the contents of a configuration file stored in a system's flash memory.
Yacc was developed by Stephen 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 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, Java, and Limbo.