需要帮助了解编译器/ HLL->组装

时间:2009-04-02 03:55:27

标签: c compiler-construction assembly

我是一名电子学生,我主要在大会上编程。昨晚我看到一篇很棒的文章,讨论用Ruby编写编译器。作者所做的是使用GCC来查看C如何转换为汇编。这对我来说很有共鸣。我终于可以看到C程序如何转换为Assembly.My问题/请求社区是:你能告诉我资源,讨论这两者之间的联系更好吗?我应该阅读有关编译器的内容吗?我应该学习系统编程吗?我不知道该怎么办。我真的想要更好地编程并更好地学习它。谢谢你的帮助。

相关:

和其他人......

4 个答案:

答案 0 :(得分:5)

这里确实发生了一些事情。你要看的第一件事就是编译器书。有几个古老的,如着名的Dragon book,非常好。我今天刚刚在同一个Art of Assembly Language Programming的人How to Write Great Code上发现了另一个人。到目前为止,我只阅读了示例章节,但它看起来非常很好,似乎也只是解决了你想要的问题而不会立即陷入LALR(1)语法的奇迹等等。

“系统编程”更多地是关于编程系统。在系统编程中,您将学习如何使用各种系统调用和其他东西来构建有用的程序。你也需要知道这一点,但它与“它是如何发生的”不同。

计算机组织书籍,就像aaronis所指的那样,更多的是关于程序如何从汇编语言级别到实际门等。它也被称为“计算机体系结构”,当Amdahl,Blaauw和Brooks发明术语时使用了这个短语:指令集,它们是如何实现的,以及如何在设计事物中做出量化选择。

答案 1 :(得分:3)

关于编译器的经典参考文本是Aho和Ullman,编译器设计原理,又名龙书。当前版本还有一些作者和更新的标题......

<强> Compilers: Principles, Techniques, and Tools

答案 2 :(得分:0)

当我参加计算机组织课程时,他们会详细介绍处理器的处理方式,处理指令的方式以及如何将程序集转换为机器代码。也许比你想要的要低一些,但我想看看这种类型的翻译从高级语言到低级语言的发生方式真的很整洁。我想我们使用过这本书或类似的书: http://www.amazon.com/Computer-Organization-Design-Interface-Architecture/dp/1558606041

答案 3 :(得分:0)

另一个很好的资源是Alan Holub的Compiler Design in C