欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 毕业论文 > 计算机毕业论文

用 CUP 构 造 编 译 器 的 方 法_分析器生成器-论文网

时间:2013-11-30  作者:李超
局部恢复机制,使用了特殊的error符号以控制恢复进程。当这一特殊的eror符号在文法规则中出现时,一个错误输入符号列就得到了匹配。

2.5编译器的生成和运行

首先直接手工编写一个扫描器,名为Lexer.java。然后将我们的CUP源文件保存为calc.cup。在命令行下输入:

javajava_cup.Maincalc.cup

得到两个Java源文件:parser.java和sym.java,在命令行下,用javac命令编译以上3个java文件,就得到了相应的4个字节码文件(parser.java除了产生parser.class还产生一个非公共类)。

为了运行我们的计算器程序,还需要一个包含main函数的类,为此创建一个名为Test.java的文件,其唯一的函数如下:

staticpublicvoidmain(Stringargv[]){

try{

parserP=newparser(newLexer(newFileReader(argv[0])));

Objectresult=P.parse().value;

}catch(Exceptione){

}

}

至此可以开始运行这个计算器程序了,先新建一个文本文件,输入:

5+7;

2*(4-1)+6;

保存,并将其改名为calc.txt。在命令行下,输入:

javaTestcalc.txt

得到如下输入:

5+7=12;

2*(4-1)+6=12;

3结束语

CUP是个先进的语法分析器生成工具,它是YACC在Java下的一种实现,而且CUP还提供了各个版本的Java语言的CUP源文件。利用这个工具设计人员无需进行大量的编码工作,就可以设计各种高级语言在Java下的编译器。

参考文献
1 陈火旺,刘春林,谭庆平,等.程序设计语言编译原理.北京:国防工业出版社,2000.
2 Scott E Hudson.CUP.http://www.CS.princeton.edu/~appel/modern/java/CUP.
 

查看相关论文专题
加入收藏  打印本文
上一篇论文:莆田广电中心硬盘播出系统及实践_系统构成-论文网
下一篇论文:F平台的基本构成及其对软件架构发展的推动_模式-论文网
毕业论文分类
行政管理毕业论文 工商管理毕业论文
护理毕业论文 会计毕业论文
会计专业毕业论文 英语专业毕业论文
大学毕业论文 硕士毕业论文
计算机毕业论文 市场营销毕业论文
物流管理毕业论文 法学毕业论文
相关计算机毕业论文
    无相关信息
最新计算机毕业论文
读者推荐的计算机毕业论文