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

Posted

技术标签:

【中文标题】需要帮助了解编译器/HLL->Assembly【英文标题】:Need Help Understanding Compilers/HLL->Assembly 【发布时间】:2009-04-02 03:55:26 【问题描述】:

我是一名电子专业的学生,​​我主要在汇编中进行编程。昨晚我看到一篇很棒的文章,讨论了用 Ruby 编写编译器。作者所做的是使用 GCC 来查看 C 是如何转换为 Assembly 的。这让我产生了很大的共鸣。我终于可以看到 C 程序是如何转换为 Assembly 的。我在这里向社区提出的问题/请求是:您能否向我展示更好地讨论这两者之间联系的资源?我应该阅读有关编译器的信息吗?我应该学习系统编程吗?我不知道该怎么办。我真的很想在编程方面做得更好并更好地学习。感谢您的帮助。

相关:

Learning to write a compiler Is it beneficial for a programmer to learn how to build a compiler? Can someone tell me the very basics of how computer programming works?

还有其他人……

【问题讨论】:

这已经讨论了很多次了,我很想把它当作一个骗局...... 【参考方案1】:

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

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

一本计算机组织的书,就像 aaronis 所指的那样,更多的是关于程序如何从汇编语言级别到实际的门等。它也被称为“计算机架构”,正如 Amdahl、Blaauw 和 ***s 发明这个术语时所使用的那样:指令集、它们的实现方式以及在事物设计中如何做出定量选择。

【讨论】:

非常感谢先生。 How to Write Great Code vol2 正是我正在寻找的那种信息。对于擅长组装并希望过渡到 HLL 的人,您建议哪些书? 周围有很多书。 C 编程语言还不错,是经典之作。我对来自实用程序员的新学习编程感到兴奋:pragprog.com/titles/ltp2/learn-to-program-2nd-edition【参考方案2】:

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

Compilers: Principles, Techniques, and Tools

【讨论】:

【参考方案3】:

当我参加计算机组织课程时,他们了解了处理器是如何形成的、它们如何处理指令以及如何将汇编转换为机器代码的底层细节。可能比你要找的要低一点,但我认为了解这种类型的翻译是如何从高级语言到低级语言发生的真的很巧妙。我想我们用过这本书或类似的书: http://www.amazon.com/Computer-Organization-Design-Interface-Architecture/dp/1558606041

【讨论】:

我确实阅读了有关低级细节的信息,但我似乎无法理解更高级别的细节以及它们如何链接。我的知识差距很大。【参考方案4】:

另一个不错的资源是 Alan Holub 的 Compiler Design in C。

【讨论】:

以上是关于需要帮助了解编译器/HLL->Assembly的主要内容,如果未能解决你的问题,请参考以下文章

用于将 HLL_COUNT.INIT 提取到 BigQuery 的 Google DataFlow API

提高 PostgresSQL 聚合查询性能

需要帮助了解此动态编程解决方案

需要帮助了解 gulp 和 webpack-stream 的工作原理

实战学习c#为程序设置版本和帮助信息

QuartusII编译与仿真之warning大解析