编译原理作业
那就取个昵称呗
武汉大学国际软件学院本科大三学生,擅长JAVA,正在入坑Python和机器学习
展开
-
JAVA实现一个简单的代数运算语言编译器(二)--词法分析准备
上一篇文章主要介绍了这个代数运算编译器的起因,这一篇我们就来开始写这个项目。 首先我们需要先设置一些系统的基础类如系统符号类,保留字类、错误提示信息类、自定义异常、输入读取类等,下面简单地说一下这几个类。 系统符号类:package com.liu.system; /* * 系统符号集合 * 创建于2017.3.7 * @author lyq * */ public class Sy原创 2017-03-08 22:44:53 · 923 阅读 · 0 评论 -
JAVA实现一个简单的代数运算语言编译器(四)-- 表达式计算
上一篇文章介绍了我们这个编译器的词法分析部分,这一篇文章我们主要来讨论如何用JAVA进行表达式的计算。 在这之前我们先要有一个管理变量的地方,这里我们新建一个名为Varibles的类,其拥有一个类型为HashMap的类变量variblesMap负责来保存程序运行时的变量名和值。因为是采用Map进行管理,因此当给变量重复赋值时会自动覆盖。 接下来我们来进入今天的正题--表达式的计原创 2017-03-11 13:02:49 · 871 阅读 · 0 评论 -
JAVA实现一个简单的代数运算语言编译器(一)--写在前面
写在前面: 大二下学期编译原理课才开始不久,我们老师便要求我们使用C、C++或者是java语言编写一个简单的支持代数运算的计算器,以此来体会程序编译的过程。 具体要求如下图: 我们大一的确学过C++,大二上学期的数据结构也是用C++教的,不过自己对C++还是一知半解,反而对java比较熟悉,于是我选择用java来实现这个项目。 案例分析: 我们知道,绝大多数的编译器都无外原创 2017-03-07 23:51:05 · 1978 阅读 · 1 评论 -
JAVA实现一个简单的代数运算语言编译器(三)--词法分析
上一篇文章我们为编译器编写了保留字、系统符号、出错提示等系统预制类,这一篇文章我们主要介绍编译器的词法分析部分。 我们首先创建一个名为WordAnalysis的类,为这个类编写一个共有静态方法 wordAnalysis 用来提供对外的词法分析接口。该方法接收一个字符串参数,即经过了分割的一个语句。返回一个字符串队列,即通过了词法分析并逐词分割后的语句,队列中的每一个字符串即为一个词,具体原创 2017-03-10 22:55:17 · 1264 阅读 · 2 评论