yacc

✍ dations ◷ 2025-07-31 11:32:47 #程序设计工具,编译器软件

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

相关

  • 加利福尼亚州加利福尼亚州(英语:State of California),简称加州,是美国西部太平洋沿岸的一个州。面积位列美国第三;人口为3,930万,位列美国各州第一。州首府是萨克拉门托。在地理、地貌、物产、
  • 乌当区乌当区是中华人民共和国贵州省贵阳市东北部的一个市辖区。东经106°30'-107°03',北纬26°55'-26°33'。乌当区下辖6个镇、2个民族乡、5个社区服务中心:东风镇、水田镇、羊昌
  • 黄色是由波长介于565至590奈米的光线所形成的颜色,用色彩的三原色红、绿色光混合可产生黄光。亦为颜料的三原色之一。黄的互补色是蓝。但传统上画师以紫色作为黄的互补色。^
  • 胸苷胸苷(Thymidine),是一种化合物,更精确的名称是去氧胸苷,属于嘧啶去氧核苷。是DNA的原料之一。
  • 起源号起源号探测器(Genesis)是美国2001年发射的一个空间探测器,主要目的是搜集太阳风粒子,以解开有关太阳系的起源和演化等方面的问题,总投资约2.6亿美元。起源号探测器的主要装备是5
  • 鬼笔目笼头菌科(Claustulaceae) 鬼笔科(Phallaceae)鬼笔目(英文:Phallales)是一个担子菌纲下的一个目。鬼笔目是一种真菌下的分类,其下有两个科(笼头菌科与鬼笔科)、26个属以及88个种。
  • 风机过滤机组风机过滤机组(英文: Fan Filter Unit,简称: FFU),是一种结合送风机与高效滤网(HEPA/ULPA)气流循环与过滤之无尘室洁净设备,主要是用来过滤来自作业场所空气中所存在有害空气中
  • 杭州白马湖生态创意城杭州白马湖生态创意城是位于杭州市滨江区(高新区)的文化创意产业集聚区,于2008年4月启动,已成为全国规模最大、产业基础最优越的文化创意产业集聚区。白马湖生态创意城位于高新
  • 花园町 (新竹市)花园町为新竹州新竹市自1935年实施町名改正所成立的行政区之一,其町名取自新竹公园,位现今新竹市东区。花园町在町名改正前,位于新竹大字下的枕头山脚小字内。日治时期的町名在
  • 加斯佩半岛坐标:48°39′29″N 65°45′10″W / 48.65806°N 65.75278°W / 48.65806; -65.75278加斯佩半岛(法语:Gaspé),又称加斯佩西半岛(法语:Gaspésie),位于加拿大魁北克省东部,北临圣劳伦