yacc

✍ dations ◷ 2025-06-30 16:08:30 #程序设计工具,编译器软件

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的功能和需求。

相关

  • 蛾是鳞翅目现生类群排除了蝴蝶所形成的并系群中的昆虫的总称,静止时多数将翅膀摊开在身体两侧,且主要于夜间活动,翅膀上具有可以吓阻敌人的似眼花纹。蛾属于完全变态昆虫,第一步
  • M113装甲运兵车M113是一种美国生产的装甲运兵车,外销世界上诸多国家,以便宜好用、改装方便著称于世,在近代军事史有重要地位。M113采用全履带配置并有部分两栖能力,也有越野能力,在公路上可以高
  • 契尔西切尔西(英语:Chelsea)是美国马萨诸塞州沙福克县的一个城市,位于波士顿东北。面积6.4平方千米,是该州面积最小的城市。根据美国2000年人口普查,人口35,080人。1624年白人开始殖民,17
  • 草纸文献.mw-parser-output ruby.zy{text-align:justify;text-justify:none}.mw-parser-output ruby.zy>rp{user-select:none}.mw-parser-output ruby.zy>rt{font-feature-settings:
  • 乔凡娜·梅索兹殴诺乔凡娜·梅索兹殴诺(意大利语:Giovanna Mezzogiorno,1974年11月9日-)是一名剧场和电影女演员。梅索兹殴诺生于意大利罗马。父亲维托里欧·梅佐吉诺和母亲赛茜莉雅·沙基都是演员
  • 美国陆军国民警卫队陆军国民警卫队(英语:Army National Guard, ANG)是美国各个州、哥伦比亚特区、波多黎各、关岛、美属维尔京群岛的陆军民兵组织及美军的预备队。它与美国空军国民警卫队共组成美
  • 排气量排气量或排量,是指内燃式发动机在一次完整发动机循环中吸入的空气和燃气混和气的总体积,通常用立方厘米(cc)、或升(l)作为单位。发动机排量并不是发动机燃烧腔的全部体积。在许多
  • 朱利亚诺·阿马托朱利亚诺·阿马托(意大利语:Giuliano Amato,1938年5月13日-),生于意大利都灵,政治家,曾任意大利总理。阿马托1960年毕业于比萨大学法律系,后又获得美国哥伦比亚大学法学硕士学位。198
  • 罗兰夫人罗兰夫人(Madame Roland,1754年3月17日-1793年11月8日),全名为玛莉-简·罗兰(Marie-Jeanne Roland de la Platiere),父姓菲力普(Phlipon)。法国大革命时期著名的政治家。吉伦特党领导
  • 桧柏桧柏(学名:,“桧”汉语拼音 guì,古外切),又称真柏、圆柏,是柏科刺柏属的常绿乔木,高可达20米,寿命可长达数百年。其年轻叶为刺状,但随着生长,叶片成为鳞状。桧柏原产于中国、蒙古、日