yacc

✍ dations ◷ 2024-12-23 23:11:05 #程序设计工具,编译器软件

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

相关

  • 塔罗斯龙塔罗斯龙属(学名:Talos)是兽脚亚目伤齿龙科恐龙的一属,是种外形类似鸟类的肉食性恐龙,生存于白垩纪晚期的北美洲。近年已在亚洲发现多样化的伤齿龙科化石,而北美洲的伤齿龙科化石
  • 1865年-1918年联军的入侵带来的破坏和南方的失败,连同战后在占领区经济的萧条,使得南方人对联邦政府长期心怀不满。面对着战后受到战争破坏的南方,重建成了最迫切解决的问题。重建是在美国内
  • 马来联邦马来联邦(1895年-1946年;英语:Federated Malay States,马来语:Negeri-negeri Melayu Bersekutu,华语俗称“四州府”),是大英帝国在马来半岛的殖民政体之一,由半岛上4个接受英国保护的
  • 新蔡县新蔡县,是中国河南省驻马店市下辖的一个县,是河南省直管县之一,亦是河南的国家级贫困县之首,位于河南省东南部;洪河、汝河在境内汇合,与安徽省接壤。目前下辖:月亮湾街道,古吕街道、
  • 泰诺 (药品)泰诺(英语:Tylenol,/ˈtaɪlənɒl/)是一个镇痛药药品品牌,该药品可以减缓发热和减轻过敏、感冒、咳嗽、头痛和感冒等症状。泰诺最初的有效成分是对乙酰氨基酚,常见于镇痛药和解热
  • 卡尔·魏尔施特拉斯卡尔·特奥多尔·威廉·魏尔施特拉斯(德语:Karl Theodor Wilhelm Weierstraß(发音:),姓氏可写作Weierstrass,1815年10月31日-1897年2月19日),德国数学家,被誉为“现代分析之父”。卡尔
  • 周克芹周克芹(1937年10月28日-1990年8月5日),四川简阳人,中国作家,被认为是伤痕文学的代表人物之一。他以1979年发表的小说《许茂和他的女儿们》闻名于中国,后来并于1981年拍成电影,也于同
  • 米里亚·希耶塔梅斯米里亚·希耶塔梅斯(芬兰语:Mirja Kyllikki Hietamies-Eteläpää,1931年1月7日-2013年3月14日),芬兰越野滑雪运动员,活跃于1950年代,获得1956年冬季奥林匹克运动会3×5公里项目金
  • 矛花科参见正文矛花科只有一属—矛花属()几种植物,都是生长在澳大利亚东部的特有种,以前的分类法将矛花属分入龙舌兰科,1998年根据基因亲缘关系分类的APG 分类法将其单独列为一科,放在新
  • 菲利普·戈利科夫菲利普·伊万诺维奇·戈利科夫(俄语:Филипп Иванович Голиков;1900年7月30日-1980年7月29日),苏联军队指挥官,1961年成为苏联元帅。生于彼尔姆省Borisovo,父亲