Nothing Special   »   [go: up one dir, main page]

Naar inhoud springen

Yacc

Uit Wikipedia, de vrije encyclopedie
Yacc
Ontwikkelaar(s) Stephen C. Johnson
Uitgebracht 1970
Besturingssysteem Unix
Geschreven in C
Categorie Parsergenerator
Licentie(s) onbekend
Versiebeheer Officiële broncode
Website (en) YACC Manual
Portaal  Portaalicoon   Informatica

Yacc is een computerprogramma dat op Unixsystemen dienstdoet 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 gebruik 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. 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.

  • Johnson,Stephen C. YACC: Yet another compiler-compiler. Unix Programmer's Manual Vol 2b, 1979.