编译器及其他

时间:2009-02-05 02:58:10

标签: memory compiler-construction physics processor

我想倒退,了解有关编译器,处理器和内存如何在我的程序上运行的更多信息。我也对所有这些所依赖的物理学感兴趣。任何好的参考书或书籍都会受到赞赏......

12 个答案:

答案 0 :(得分:4)

对于编译器,最终的书是Dragon Book,即编译器设计原理。起初它有点沉重,但每次传球都会变得更容易。这是一本经典之作,所有认真的编程/计算机科学专业的学生都应该阅读。

答案 1 :(得分:3)

我的第一个建议是Code已经提出过。关于处理器主题的一本更好但更难的书是Computer Organization & Design,Hennessey&帕特森。您可以在Amazon或Half.com上查找旧版本。它们会便宜得多,并且信息基本相同。

这些将教会您处理器如何工作的基础知识,汇编语言等。这将帮助您了解如何解释您的程序,从而根据您的设计可能存在哪种性能瓶颈。

答案 2 :(得分:3)

听起来我想要获得计算机科学学位。 : - )

答案 3 :(得分:2)

答案 4 :(得分:2)

我通常不会同时考虑物理和编译器。

This link可能会让你思考。

答案 5 :(得分:1)

为C64之类的东西编写一个简单的模拟器。通过思考如何模拟CPU,内存和其他芯片,您将了解这些简单机器的工作原理。今天的计算机几乎以相同的方式运行,复杂程度要高得多,但基本思路是一样的。

您的模拟器不一定非常快 - 尝试获取C64欢迎消息,如果您的代码正确 - 您应该能够POKE并编写基本程序并让它们工作:)

10 PRINT "DONT LISTEN TO ME - APPLE //E's RULE"

20 GOTO 10

答案 6 :(得分:1)

我建议学习足够的汇编程序,以便能够在汇编程序中编写一个简单的 Hello World 程序。

这将告诉您CPU在寄存器和内存级别的工作原理。

它还将向您介绍如何将源代码转换为目标文件以及链接器如何将所有这些目标文件组合在一起以创建工作程序。

答案 7 :(得分:1)

答案 8 :(得分:1)

Feynman在Physics of Computation上有一点点:

解决了问题的第二部分。

答案 9 :(得分:0)

在亚马逊上挑选一本关于“计算机组织”或“计算机架构”的书。我大学时的his is what we used。它不是太厚,而且会给你基础知识,从门级到内存的组织方式和程序的编写方式。如果在此之后,你想更深入地研究物理学,那么你将想要获得一本关于半导体物理学的书。 (但如果我是你,我会先在维基百科上查找“逻辑门”,“二极管”和“晶体管”!)

答案 10 :(得分:0)

如果你真的想进入处理器/ IC的物理学,你需要有一个坚实的电磁学/电路分析背景。这当然不是简单的事情,并不会真正让你成为更好的程序员。如果你真的很感兴趣,可以从EE朋友那里借一些书!

从中抽象出来的是门级,程序员通常可以理解这一点,因为它完全与逻辑有关。

答案 11 :(得分:0)

在阅读Steve Yegge关于编译器的建议后,我做了类似的决议。我一直非常喜欢Nisan和Schocken的计算系统的元素:从第一原理构建现代计算机这是第一本教科书,第二部分,一个学期的新生或老年人课程,第三,提供讲座和跨平台仿真模拟软件的网站:http://www1.idc.ac.il/tecs/(TECS)

主题来自NAND(HDL编程数字逻辑电路),触发器,ALU和寄存器,汇编器,解析和编译器,操作系统和GUI。您,学生,在网站上提供的硬件模拟器或软件模拟器上实现这些主题中的每一个。对我来说,这是对人类聪明才智的一种庆祝,这种思想可以在3-4个月内被本科生深深地涵盖。其中一位作者/教授就这一主题进行了Google技术讲座,如果你有一个小时的时间可以放弃他们的课程,那么值得一试。

我不能推荐一个同样引人注目的计算物理资源,但我可以说我的电气工程系的前两个核心EE课程学生可以采取(如果他们选择的话)是Circuits 1和Semiconductors 1。前者涉及电压,电流,电感,电容,运算放大器等 - 而后者则涉及量子力学,晶体,掺杂,电荷载流等,并且最直接涉及数字处理和存储的物理学。设备。对于这样一个话题,我很难想象像TECS这样的动手模拟环境,使它更适合学术而不是业余爱好者/专业学习?

相关问题