Mini Java编译器
文章平均质量分 74
sandy_xu
这个作者很懒,什么都没留下…
展开
-
Mini Java编译器(四)
四、P代码指令说明由于系统较简单,所以对底层硬件也做了简化:1、没有寄存器,只有一个数据栈2、只能对主存进行存、取操作3、只支持主存间接寻址4、可以查找符号表中符号,返回该符号地址 指令表(未完成)助记符格式说明pushpush 将指向的内容压栈poppop 将栈顶内容弹入指向的位置jmpjmp 无条件跳转至指向的代码jtjt , 如果指向的内容为真则跳转至指向的代码 五、错误信息表(定义在c原创 2005-03-16 11:24:00 · 4280 阅读 · 0 评论 -
Mini Java编译器(五)
六、系统的设计和实现这个编译器是用Java写的,基于OO技术,所以整个系统是尽量用OOD设计的。OOD中最小的设计粒度是类,本系统的大致类结构如下 compiler包整个系统的根,UML图如下: token包封装了所有的可识别单词,采用一符一码,单词对应的码定义在Token类中,该类是抽象类,仅作继承用。该包UML图如下:common包公用包,封装了一些公用的对象和数据结构:Hierarchy原创 2005-03-16 11:44:00 · 5375 阅读 · 0 评论 -
Mini Java编译器(三)
三、属性翻译文法主类声明(MainClass) ::= "class" ↑ @fillMemory↓↑ @fillTable↓,原创 2005-03-17 21:26:00 · 4786 阅读 · 0 评论 -
Mini Java编译器(一)
一、任务概述本项大作业将设计并实现一个Mini Java语言的编译器 Mini Java概述Mini Java是Java语言的子集。作为一种很好的编译课程教学语言,它与Java相比做了如下精简:(1)不允许重载(overloading)(2)一个文件中可以申明若干个类,但必须有且只有一个的主类,辅类可以有多个,类不能申明为public;主类中只能有一个主方法,该方法的签名必须为“public s原创 2005-03-16 11:12:00 · 9868 阅读 · 0 评论 -
Mini Java编译器(二)
二、Mini Java的文法BNFGoal::=MainClass ( TypeDeclaration )* MainClass::="class" Identifier "{" "public" "static" "void" "main" "(" "String" "[" "]" Identifier ")" "{" PrintStatement "}" "}"TypeDeclaration:原创 2005-03-16 11:13:00 · 5525 阅读 · 0 评论 -
Mini Java编译器(六)
七、系统工作过程及运行说明 八、实例程序运行结果示例一代码class Main{ public static void main(String[] args){ System.out.println(10); }} class G{ class G{ public int get(int num){ int a; a=2; return a+5; }原创 2005-03-16 12:05:00 · 5286 阅读 · 0 评论