写在前面:
大二下学期编译原理课才开始不久,我们老师便要求我们使用C、C++或者是java语言编写一个简单的支持代数运算的计算器,以此来体会程序编译的过程。
具体要求如下图:
对该作业的概述如下:
1.该计算器有两种语句类型,即赋值语句与输出语句。
2.该计算器的变量命名由字母与数字组成,且必须以字母开头。
3.变量的使用不需要经过声明,但必须经过赋值,使用未经初始化的变量进行计算应报错。
4.有且仅有一个保留字为print。
5.不能使用第三方库。
我们大一的确学过C++,大二上学期的数据结构也是用C++教的,不过自己对C++还是一知半解,反而对java比较熟悉,于是我选择用java来实现这个项目。
案例分析:
我们知道,绝大多数的编译器都无外乎是对词法、语法、语义的分析,且内置了符号集、保留字等内容,提供代码优化、错误诊断等机制。我们的这个项目可以说是一个很简单的编译器的案例,所以也得遵循这些步骤按部就班地来。所以第一步我想先设置好系统预制的符号集、保留字,接下来再来分别进行词法、语法、语义的分析,最后再增加错误诊断机制。
这是本系列的第一篇文章,也是我在CSDN上的第一篇文章,主要是为我接下来要做的这个简单的计算器项目做铺垫。
接下来的文章我们就将正式进入项目的编写了。