编译器前端实例代码分享--前端的理论和技术其实很重要
很多牛人都说后端是大头,后端重要,代码生成和优化核心,那是他们的工作内容,他们说的都是对的。
我对编译很感冒,有些业余的看法。
我觉得中间代码的设计很重要,中间代码设计的好代码生成和优化都好做,而且可以也应该有多层中间表示,经过层层优化和转换,可以使最后的代码生成变的简单。
形式语言与自动机理论相当完善,编译器实践和计算机科学的实践都是以此为理论指导的。因为很他成熟了,很多人认为编译器的前端构造很简单,怎么说还有Lex和Yacc呢。
设计几层优雅的中间代码,从上一层中间表示转换到下一层中间表示的工作其实是和从源代码转换到第一层中间表示所需要做的工作是一样的。也就是,所谓的前端。
层层表示都由前端技术来运作,最后的代码生成可不可以认为是一种表示向另一种表示进行转换呢?
我觉得后端的理论跟前端很像。
中间表示的设计没有完全权衡利弊的必要,可以多来几层,现代机器很强的,更好的抽象我觉得是更好的选择。
符号表却是贯穿始终的,有必要的话也可以有多个,以用于不同的中间表示阶段。
下面附上几个前端学习的代码实例,很简单,几分钟就能看明白,希望大家喜欢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
东西太好了,顶一下。
好东西,先收下,谢了。
好东西。下。多谢楼主!
多谢了!!多谢了!!
好东西
一直对这个有啃刺猬的感觉,
有LZ的几个例子..........
谢谢,
恩 先下了回去看看学习一下。。
好东东,收藏下!
能否告知资料的出处?呵呵、、
上学时挺爱学编译的,后来工作了,就没时间继续学习,惭愧ing。
恩 先下了回去慢慢看