简介编辑本段回目录
Yacc编辑本段回目录
相关链接编辑本段回目录
参考文献编辑本段回目录
http://www.techworld.com.au/article/252319/-z_programming_languages_yacc
|
|
|
Stephen C. Johnson,Yacc、Lint、Portable C Compiler等软件作者。
简介编辑本段回目录Stephen Curtis Johnson spent nearly 20 years at Bell Labs and AT&T, where he wrote Yacc, Lint, and the Portable C Compiler. Steve earned his Ph.D. in Mathematics, but has spent his entire career in computing. He has worked on topics as diverse as computer music, psychometrics, and VLSI design, but he is best known for his work on Unix tools, and the first AT&T UNIX port. He also ran the UNIX System V language development department for several years in the mid-1980s. In 1986 he went to Silicon Valley, where he was part of a half-dozen or so startup companies, including Transmeta. In 2002, he joined MathWorks to work on the MATLAB programming language. Steve has served on the USENIX board for ten years, four of those as president, and is now the USENIX representative to the Computing Research Association. His famous epigram is often quoted: "Using TSO is like kicking a dead whale down the beach". 1.^ sysprog.net – dead whale quote Yacc编辑本段回目录 yacc(Yet Another Compiler Compiler) 简介 是Unix/Linux上一个用来生成编译器的编译器(编译器代码生成器)。yacc生成的编译器主要是用C语言写成的语法解析器(Parser),需要与词法解析器Lex一起使用,再把两部份产生出来的C程序一并编译。yacc本来只在Unix系统上才有,但现时已普遍移植往Windows及其他平台。 分析程序生成器 分析程序生成器(parser generator)是一个指定某个格式中的一种语言的语法作为它的输入,并为该种语言产生分析过程以作为它的输出的程序。在历史上,分析程序生成器被称作编译-编译程序( compiler- compiler ),这是由于按照规律可将所有的编译步骤作为包含在分析程序中的动作来执行。现在的观点是将分析程序仅考虑为编译处理的一个部分,所以这个术语也就有些过时了。合并 LALR(1) 分析算法是一种常用的分析生成器,它被称作 Yacc( yet another compiler- compiler )。给出 Yacc 的概貌来,将使用Yacc为 TINY 语言开发一个分析程序。 作为 Yacc 对说明文件中的 %token NUMBER 声明的对应。Yacc 坚持定义所有的符号记号本身,而不是从别的地方引入一个定义。但是却有可能通过在记号声明中的记号名之后书写一个值来指定将赋给记号的数字值。 yacc的输入是巴科斯范式(BNF)表达的语法规则以及语法规约的处理代码,Yacc输出的是基于表驱动的编译器,包含输入的语法规约的处理代码部分。 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的功能和需求。 http://dickey.his.com/byacc/byacc.html Berkeley Yacc 一般认为是目前最好的yacc变种。与bison相比,避免了对特定编译器的依赖。 http://www.informatik.uni-freiburg.de/proglang/software/essence/ Essence,Scheme的LR(1)语法解析器的生成器 http://download.plt-scheme.org/scheme/plt/collects/parser-tools/ 用于DrScheme的语法解析工具 http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/ Coco/R Java和C#的扫描和解析器 http://mhss.nease.net/unix/yacc.html Yacc: 另一个编译器的编译器,Stephen C. Johnson 相关链接编辑本段回目录参考文献编辑本段回目录
http://en.wikipedia.org/wiki/Stephen_C._Johnson http://www.techworld.com.au/article/252319/-z_programming_languages_yacc →如果您认为本词条还有待完善,请 编辑词条
词条内容仅供参考,如果您需要解决具体问题
收藏到:
同义词: 暂无同义词 关于本词条的评论 (共0条)发表评论>> |