Yacc (et akronym for Yet another compiler compiler) er et computerprogram, en parser-generator der især anvendes under UNIX. Yacc genererer en parser (den del af en computerprogram der forsøger at få mening ud af programmets input) ud fra en grammatik skrevet i BNF-notation. Yacc genererer programkode i programmeringssproget C. Yacc bruges typisk i sammenhæng med Lex eller et lignende program til leksikalsk analyse.

Yacc
Original skaber(e) Stephen C. Johnson
Udvikler(e) AT&T
Udgivet 1969
Operativsystem UNIX

Den første udgave af Yacc blev lavet af Steven C. Johnson i programmeringssproget B i 1969. Formålet var at spare Johnson og Al Aho tid ved at automatisere det store arbejde det er at lave parsetabeller manuelt. Yacc blev senere omskrevet i C og blev en standarddel af UNIX.

Der er siden lavet flere varianter af Yacc, bl.a. GNU bison, Berkeley Yacc, m.fl. De har alle mindre forbedringer i forhold til originalen, men konceptet er det samme. Yacc er standardiseret i IEEE POSIX P1003.2 standarden.

Rent teknisk gør Yacc det muligt for en programmør at beskrive grammatik for et input-sprog (f.eks. et programmeringssprog) i en udvidet BNF-notation, hvor der sammen med grammatiken angives program-kode (i C) der udføres, når en term er genkendt. På grundlag heraf genererer Yacc en LALR-parser.

Eksterne henvisninger redigér