yacc

✍ dations ◷ 2025-02-24 05:36:49 #程序设计工具,编译器软件

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

相关

  • 边缘科学边缘科学(英语:fringe science),是指在某个已经成熟的科学领域中,研究方法、理论等与该领域的主流理论均不相同,被主流认定为“存疑”的科学行为,既可以是对该领域的一项研究方法的
  • 撒丁语撒丁语(撒丁语:sardu或limba sarda或lingua sarda)分布于意大利的撒丁岛上,属于印欧语系罗曼语族。撒丁语之下的诸“方言”差异程度颇大,因此“撒丁语”一词指的是一种语言还是几
  • 南太平洋环流在南半球,由东南信风所形成的南赤道洋流,西流到新几内亚附近转向南,沿着澳洲东南部流动,称为东澳洋流,属暖流性质,至新西兰附近,与西风飘流合并折向东流。由于南半球中高纬度的海洋
  • ǃ̃齿龈鼻搭嘴音(Alveolar nasal click)或龈后鼻搭嘴音(Postalveolar nasal click)是一种辅音,主要出现于南非的一些口语中。表示此音的国际音标(IPA)是⟨ǃ̃⟩或⟨ᵑǃ⟩,亦有部分语
  • 我(梵语:आत्मन्,Ātman),梵文名词,意为真正的我,内在的自我。这个术语起源自古印度宗教,在各宗派中普遍被接受,被视为是轮回的根基,后被印度教承袭。在印度哲学中,特别是在印度教
  • 转录偶联修复核苷酸切除修复(nucleotide excision repair)是一种DNA修复方法。由于化学、辐射和很多其他因素的都会对DNA碱基对造成破坏,DNA时常需要修复。核苷酸切除修复是其中一种很重
  • 乔治亚·福斯特乔治亚·福士特(Georgia Frost;1990年7月30日-),英国超级名模。她是高级时装品牌:Burberry、Dolce & Gabanna的代言人。乔治亚上过Vogue、Harper's Bazaar、Evening Standard(封面
  • 李玙 (消歧义)李玙可以指:
  • 佩德罗·皮尔路易斯佩德罗·拉斐尔·皮尔路易斯·乌鲁蒂亚(Pedro Rafael Pierluisi Urrutia;1959年4月26日-)是波多黎各的一位政治人物。他曾是新进步党的总裁 (2013-2016),并且支持民主党。皮尔瑞西
  • 里奇·索莫里奇·索莫(Richard Olen "Rich" Sommer II,1978年2月2日-)是美国的一位演员。他最著名的作品是在广告狂人中饰演Harry Crane角色。