yacc

✍ dations ◷ 2025-04-28 22:21:03 #程序设计工具,编译器软件

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

相关

  • 眼神经眼神经(Ophthalmic nerve),是第五对脑神经——三叉神经的三个分支之一。眼神经仅包含感觉纤维。
  • 贝原俊民贝原俊民(日语:貝原 俊民/かいはら としたみ Kaihara Toshitami,1933年8月24日-2014年11月13日),佐贺县武雄市人,日本政治人物。早年毕业于东京大学法学部,之后供职于兵库县。1986年
  • Turbellaria涡虫类(拉丁语:Turbellaria)属扁形动物门,生活在池塘、溪流的石块下,或者在海水中也有些生活在土中。体表具纤毛,摆动时积水呈涡状。多数为自由生活种类。繁殖方式使用断裂生殖,是
  • 德国湖泊列表德国湖泊列表按照面积罗列了德国境内主要的湖泊和水库。其中,面积最大、湖水最深的是博登湖,部分湖面在奥地利和瑞士境内。
  • 1982年阿莫勒起义1982年阿莫勒起义是1982年发生于伊朗阿莫勒的反对伊朗伊斯兰政权的武装起义。伊朗毛派组织伊朗共产主义者联盟(简称伊共盟)接受人民战争为斗争路线。阿莫勒市被伊共盟选为起义
  • 郑人豪Kido(1982年6月16日-)本名郑人豪,出生于台湾,是台湾翼星经纪公司著名舞蹈团体K ONE成员。曾经获得无限杯Hip-hip舞蹈大赛冠军。仅显示个人音乐作品,团体作品请参考K ONE。
  • GRB 970228GRB 970228是天文学家第一个观测到余辉的伽玛射线暴。这次爆发持续了大约80秒,其光变曲线有多个极大值。它的光变曲线特性表明可能同时发生了一次超新星爆发。本次爆发的位置
  • 果子干果子干是北京的一种水果汤,用柿饼、杏干、黑枣、以及莲藕、梨制作的一种小吃。果子干是北京过年吃的一款甜食。味道凉甜脆酸。制作时,将柿饼去蒂洗净,和洗净的杏干,黑枣一起放在
  • 何那斯·华格纳教练时期强纳斯·彼得·华格纳(英语:Johannes Peter Wagner,1874年2月24日-1955年12月6日),昵称何那斯·华格纳(Honus Wagner),生于宾夕法尼亚州夏提耶(Chartiers,现属于宾夕法尼亚州卡
  • 程文德永康《程氏宗谱》之程文德常服像《松溪集》、《程文恭遗稿》程文德(1497年-1559年),字舜敷,初号益斋、后号质庵、复号松溪,学称“松溪先生”,浙江承宣布政使司永康人,明朝政治人物、