2016年5月28日
摘要: 从上海回来这两天一口气看完了语义分析, 前段也就差不多了, 本来准备看代码生成的, 人突然就不想看了, 老毛病又犯了 : 很久没不敲代码, 手痒的不行, 所以决定边往前推进边实现前面的部分... 想到终于可以开始实现编译器心里就激动的不行, 那么就这么愉快的开始了... 首先当然是规定语言的词法语法 阅读全文
posted @ 2016-05-28 20:00 内脏坏了 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 语义分析中有一些比较常见的问题值得思考 : 感觉这一部分也没什么可讲的, 主要还是看实践吧... 接下来是这一部分的题目, 在这个题目中,你将亲自动手实现C--语义的语义分析器。具体的题目要求见: http://staff.ustc.edu.cn/~bjhua/mooc/semant.html 具体 阅读全文
posted @ 2016-05-28 13:06 内脏坏了 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 生成了抽象语法树, 接着就来进行语义分析...语义分析的任务如下图: 一个比较简单的类型检查算法可以是这样的 : 加上id之后可以是这样的: 这里就引出了符号表的概念 : 同时符号表还应该满足程序中作用域的概念, 实现作用域的方法如下: 同时符号表还应该解决名字空间的问题, 可以看到图中多次出现li 阅读全文
posted @ 2016-05-28 12:38 内脏坏了 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 接着上节讲, 我们来看如何在分析中插入合适的代码来生成语法树... 对于抽象语法树的总结 : 下面是作业 : 【抽象语法树】 在这个题目中,你将完整的实现抽象语法树(包括数据结构的定义、语法树的生成等)。首先,请下载我们提供的代码包: http://staff.ustc.edu.cn/~bjhua/ 阅读全文
posted @ 2016-05-28 00:40 内脏坏了 阅读(381) 评论(0) 推荐(0) 编辑