编译原理
文章平均质量分 78
ArthurZhou96
这个作者很懒,什么都没留下…
展开
-
编译原理练习一(处理c源码)
题目描述:编写一个程序,将C源码中的所有注释字母大写,注释之外的所有保留字大写,所有标识符小写我使用的是js编程,先画出有限状态机的转换,再用双重switch,case处理自动转换机的状态,(双重循环嵌套的switch,case是解决此类问题的一个模式,虽不是代码最简,但保证了简单清晰的结构)首先是状态转换图:按照状态图,写出代码如下:const fs = require("fs");var d...原创 2018-04-17 10:17:42 · 603 阅读 · 0 评论 -
编译原理之手工构造C语言词法分析器
编写一个(C语言)词法分析器:需求是:1对原来的数据进行预处理,删掉注释;(为了展示方便,就不删掉换行,制表符了,本来应该是要删掉这些的)2将词法正确的token分解出来,一共应该有5类,标识符,关键字,常数,界符,运算符,对于原来的源码,将token之间都加上空格;3对于词法不正确的token进行提示,表示词法不正确,具体有:浮点数的不正确,如.11,0.23.34,这样的;编程环境是:webs...原创 2018-04-19 13:11:56 · 4818 阅读 · 0 评论 -
使用递归下降法实现的简单计算器
最近在学编译原理,讲完了递归下降法,老师就布置了一个作业,使用递归下降法实现一个简易计算器。需求:实现简单的四则运算功能,有简单界面实现:制作一个网页版的简单计算器用于输入输出工具:webstorm,浏览器:谷歌(没做兼容,就别太老版本就行)过程分析:首先还是来复习一下递归下降法吧;递归下降法是一种简单的将自顶向下分析算法,他的概念非常简单:讲一个非终结符A的文法规则看作将识别A的一个过程定义,A...原创 2018-04-25 23:47:09 · 4435 阅读 · 0 评论