Yacc yaccYet Another Compiler Compiler是UnixLinux上一个用来生成编译器的编译器编译器代码生成器yacc生成的编译器主要是用C語言寫成的语法解析器Parser需要与词法解析器Lex一起使用再把兩部份產生出來的C程序一併編譯yacc本來只在类Unix系統上才有但現時已普遍移植往Windows及其他平台 yacc的输入是巴科斯范式BNF表达的语法规则以及语法规约的处理代码输出的是基于表驱动的编译器包含输入的语法规约的处理代码部分 yacc是开发编译器的一个有用的工具采用LALR语法分析方法 yacc最初由ATT的Steven C Johnson为Unix操作系统开发后来一些兼容的程序如Berkeley YaccGNU bisonMKS yacc和Abraxas yacc陆续出现它们都在原先基础上做了少许改进或者增加但是基本概念是相同的 由于所产生的解析器需要词法分析器配合因此Yacc经常和词法分析器的产生器一般就是Lex联合使用IEEE POSIX P标准定义了Lex和Yacc的功能和需求