Yacc

yacc  är ett datorprogram som fungerar som standardparsergenerator på Unix -system . Namnet är en akronym för "Yet Another Compiler Compiler " . Yacc genererar en parser baserad på en analytisk grammatik som beskrivs i BNF -notation (Backus-Naur Form) eller en kontextfri grammatik. Utdata från yacc är parserkoden i programmeringsspråket C.

Yacc utvecklades av Stephen C. Johnson vid AT&T för Unix- operativsystemet . Senare skrevs kompatibla versioner av programmet, såsom Berkeley Yacc, GNU bison , MKS yacc och Abraxas yacc (en uppdaterad version av AT&T-versionen med öppen källkod ingick också i Suns OpenSolaris -projekt ). Varje variant erbjöd mindre förbättringar och ytterligare funktioner jämfört med originalet, men konceptet förblev detsamma. Yacc har också skrivits om på andra språk, inklusive Java , C# , Pascal , Ada , Ratfor , EFL, ML , Limbo, Erlang , Go etc.

Eftersom parsern som genereras av yacc kräver användning av en lexer , används den ofta i samband med en lexer-generator, i de flesta fall antingen lex eller flex . IEEE POSIX P1003.2 -standarden definierar både funktionalitet och krav för lex och yacc.

Se även

Länkar