yacc

✍ dations ◷ 2025-11-14 00:50:15 #程序设计工具,编译器软件

yacc(Yet Another Compiler Compiler),是Unix/Linux上一个用来生成编译器的编译器(编译器代码生成器)。yacc生成的编译器主要是用C语言写成的语法解析器(Parser),需要与词法解析器Lex一起使用,再把两部分产生出来的C程序一并编译。yacc本来只在(类)Unix系统上才有,但现时已普遍移植往Windows及其他平台。

yacc的输入是巴科斯范式(BNF)表达的语法规则以及语法规约的处理代码,输出的是基于表驱动的编译器,包含输入的语法规约的处理代码部分。

yacc是开发编译器的一个有用的工具,采用LALR(1)语法分析方法。

yacc最初由AT&T的Steven C. Johnson为Unix操作系统开发,后来一些兼容的程序如Berkeley Yacc,GNU bison,MKS yacc和Abraxas yacc陆续出现。它们都在原先基础上做了少许改进或者增加,但是基本概念是相同的。

由于所产生的解析器需要词法分析器配合,因此Yacc经常和词法分析器的产生器——一般就是Lex——联合使用。IEEE POSIX P1003.2标准定义了Lex和Yacc的功能和需求。

相关

  • 防御素防御素(defensins)是一种蛋白质,是分子很小(15-20残基)、富含半胱氨酸的阳离子蛋白质,属于抗微生物肽的一类。存在于脊椎动物和无脊椎动物。防御素有很强的抗细菌,真菌和具外套膜病
  • 香波尔城堡香波尔城堡(法语:Château de Chambord)位于法国卢瓦尔-谢尔省的香波尔,属法国文艺复兴式建筑,是卢瓦尔河谷城堡群的法式城堡中最容易辨认的其中一个。香波尔城堡是卢瓦尔河流域
  • 紫罗兰紫罗兰(学名:Matthiola incana),为十字花科紫罗兰属多年生草本植物,多作一二年生草花栽培。原产非洲维基物种中有关紫罗兰的数据
  • 隆都话广东省中山市沙溪、大涌、南蓢、三乡及火炬开发区等地;中山闽语是汉藏语系汉语族闽语支闽南语在广东省境内的一种方言,通行于古香山县之隆都、得能都、四大都、谷都和恭常都等
  • 亚历山大·彼得罗维奇·杜甫仁科亚历山大·彼得罗维奇·杜甫仁科(乌克兰语:Олександр Петрович Довженко;俄语:Александр Петрович Довженко;1894年-1956年),是
  • 伊默里纳王国伊默里纳王国(Merina Kingdom或Kingdom of Madagascar,1540–1897年官方名称为Kingdom of Imerina)又称莫里纳王国、梅里纳王国、马达加斯加王国(于19世纪初统一马达加斯加岛后
  • 拉脱维亚城市列表在拉脱维亚有9个城市(拉脱维亚语:Republikas pilsētas)和67个城镇(拉脱维亚语:Novada pilsētas)。根据拉脱维亚法律,城镇是指为商业和文化中心的定居点,而且拥有发达的基础设施工
  • 中华野葵中华野葵(学名: var. )为锦葵科锦葵属下的一个变种。
  • 阿图尔·德·赫里夫 (网球运动员)阿图尔·德·赫里夫(Arthur De Greef,1992年3月27日-)出生于布鲁塞尔,是一位比利时职业网球男运动员,右撇子。他于2017年法国网球公开赛上完成了个人的四大满贯赛单打赛事正赛首秀
  • 杰克·卡明斯基杰克·卡明斯基(英语:Jake Kaminski;1988年8月11日-)生于美国纽约,是一名美国男子射箭运动员。他曾参加2012年和2016年两届奥林匹克运动会,两次均携手队友收获团体项目银牌。