手工打造编译器之语义分析2
来源:互联网 发布:可发说说的软件 编辑:程序博客网 时间:2024/05/21 10:52
写语义分析的时候思路是清晰的,因为你能清晰的知道语义分析是干什么的,知道它的内部实现是什么样的。而它的内部实现没有用到什么特殊的没有见过的算法。不像语法分析,一个语法分析的引擎就让人很是头疼,它是一个让人陌生的名词,它能根据你的语法描述就能生成一个有限自动机,然后根据这个有限自动机判断程序是否有语法错误,这个过程就是一个很神奇很困难的过程。当然啦,当你实现了它之后回头看,有一种在山顶上回头望的感觉,这种感觉也只有撸起袖子干了之后才知道。
扯了这么多语法分析,现在回过头来把但是写完。写语义分析的时候思路是清晰的,但是是很复杂的,一个语言有很多的条条框框。我的处理方法是,测试,大量的测试。测试的tiger程序有50个左右,测试了一个礼拜,花了20个小时左右(不是懒,我还上班呢)。写完然后感叹,微软写的vs net那不知道比tiger语言复杂多少倍,他们的软件卖个几十万一点也不少。以后用那些盗版的软件或者开源的软件也多些感恩吧,那些作者真不容易呀。
语义分析写完的一些心的是:1,new和delete重载可以当自动垃圾回收机制使用,不用考虑内存的释放,我在blog里面有详细的描述。2,对于特别短的字符串可以用string来实现,string默认的是一个15个字符的数组。就是说如果你的字符串大部分都是很小的,你可以考虑string类,就像是你声明一个数组一样,不影响空间不影响时间,同时它提供大量的函数,关键是不用手动释放呀。
- 手工打造编译器之语义分析2
- 手工打造编译器之语义分析1
- 手工打造编译器之词法分析2
- 手工打造编译器之词法分析1
- 手工打造编译器之语法分析器2
- 编译器之语义分析
- 手工打造编译器之词法分析器3
- 手工打造编译器之语法分析器1
- 手工打造编译器之语法分析器3
- 手工打造编译器序
- Tiny语言编译器之语义分析
- SNL编译器,语义分析
- 超越极限,手工打造C#编译器
- atitit.自己动手开发编译器and解释器(2) ------语法分析,语义分析,代码生成--attilax总结
- NPL:语义分析之依存文法分析
- SpringMVC之非注解开发(一)(纯手工打造)
- 如何手工打造Makefile
- 手工打造可执行程序
- Java 监听器
- 要考试了!
- VC6.0使用GDI+的方法及初始化
- ERP 概要分析(采购、销售与分销库存)
- usb在江湖系列之一家族系统(3) 2010/12/18
- 手工打造编译器之语义分析2
- awk {print $2}的讲解
- 笔试面试题记录
- “0”和“1”的艺术—程序的加密、解密和攻防对抗(Part 3)
- Spring3集成jbpm4.4
- weblogic Error 404--Not Found
- FI模块总结
- ArcSDE在IBM AIX 6.1下面的安装过程(单个SDE实例)
- 向左、向右、向上、向下 无间断循环滚动