yacc

✍ dations ◷ 2025-06-09 02:11:44 #程序设计工具,编译器软件

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

相关

  • 甲氧氯普胺甲氧氯普胺(Metoclopramide)适用于治疗胃及食道问题的药物。本品主要用于治疗恶心和呕吐,并可协助胃排空(英语:gastroparesis)障碍的患者排空胃部,并治疗胃食道逆流。本品也可以用
  • asRNA反义RNA(Antisense RNA, 常缩写为asRNA),是一种与转录产物mRNA(信使RNA)互补的单链RNA。部分学者亦将这类RNA称为“micRNA”(mRNA干扰互补RNA,英语:mRNA-interfering complementary
  • 詹姆斯·弗雷泽·司徒塔特詹姆斯·弗雷泽·斯托达特爵士,FRS,FRSE,FRSC(英语:Fellow of the Royal Society of Chemistry)(英语:Sir James Fraser Stoddart,1942年5月24日-),苏格兰化学家,2016年凭借分子机器的设
  • 耳孙孙是指子女的子女,男性称孙儿或孙子,女性称孙女。在父系社会,儿子的子女称为“内孙”或者“孙”,女儿的子女称为“外孙”。而自己的孙或外孙就称自己为祖父母或外祖父母。另外,闽
  • 抑制免疫疗法免疫抑制(英语:immunosuppression)是指对于免疫应答的抑制作用。免疫抑制可由天然或人为因素导致。天然免疫抑制包括天然免疫耐受,机体可能会对自身组织成分不产生免疫应答。人
  • 鲇形目见内文鲇形目(学名:Siluriformes),属辐鳍鱼纲骨鳔总目,又作鲶鱼。世界七大洲,除南极洲之外,到处都有鲇鱼。有几种鲇鱼是海鱼。这类鱼大小差异极大,包括世界最大的淡水鱼之一的欧鲇,长
  • 切恩镖鲈切恩镖鲈为辐鳍鱼纲鲈形目鲈亚目河鲈科的其中一种,分布于美国肯塔基州一条流入密西西比河的支流,体长可达7.1公分,栖息在流动缓慢的溪流或池塘。 维基物种中有关切恩镖鲈的数据
  • 亚曼达·拜恩斯亚曼达·劳拉·拜恩斯(英语:Amanda Laura Bynes,1986年4月3日-),美国女演员,出生于加州千橡市(Thousand Oaks, CA)。童星出身的拜恩斯曾在儿童电视频道尼克罗顿(Nickelodeon)担任过节目
  • 初大告初大告(1898年8月14日-1987年),原名铭音,又名诰,字大告、达杲,山东莱阳人 ,中国翻译家和语音学家、政治人物,九三学社社员。
  • 樊希安樊希安(1955年3月-),男,河南温县人,中华人民共和国作家,曾任吉林人民出版社总编辑,吉林省新闻出版局副局长,现任三联书店总经理、党委书记,编审,国务院参事。