![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译器
蓝色的音乐
这个作者很懒,什么都没留下…
展开
-
编译器--支持变量和语句块的计算器(二)
上篇文章记录了一个简单的计算器,但是只能计算一个表达式,比如计算8+3*5,得到值23.这次在其基础上添加了支持语句的功能,并且支持表达式中存在变量。比如下面:num1 := 5;num2 := num1+3*5;num3 := num1 * (num2 - 20/5);最后计算并返回的值是num3的值80. 根据这个例子,可以看出相比于上次那个简原创 2014-10-14 23:55:55 · 1739 阅读 · 0 评论 -
编译器--简单数学表达式计算器(一)
做了一个能够计算简单数学表达式值的小计算器,算不上是编译器,但用到了编译器的知识。最近在看一些编译器的东西,所以动手写这个最简单的计算器,既是对那些抽象的编译器知识有个形象的认识,也为后面添加复杂的东西--语句打下基础。此计算器是以《编译原理与实践》中实现的tiny编译器为参考写的,tiny是一个值得去研究的编译器,可以说是麻雀虽小,五脏俱全。从词法分析到代码生成都有,并且代码非常清晰易懂。我觉得原创 2014-10-12 16:49:52 · 6237 阅读 · 1 评论 -
编译器--支持条件语句和循环语句的计算器(三)
在上篇文章中实现了支持变量和赋值语句的计算器,这次加入了条件语句和循环语句。 语法简介下面是条件语句的一个例子,能够对条件语句的格式有一个感性认识:if var1 > 5then var2 := 10;end条件语句以if开始,后跟一个条件表达式,如果其为真则执行then后面的语句块,条件语句以end结束。条件语句也可以支持else分支语句,比如if v原创 2014-10-18 17:16:45 · 2009 阅读 · 1 评论