编译器及其他

问题描述 投票:0回答:12

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

memory compiler-construction physics processor
12个回答
3
投票

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

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


0
投票

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


0
投票

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

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


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这样的动手模拟环境,使其更适合学术而非爱好者/专业学习?


4
投票

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


3
投票

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



2
投票

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

This link可能会让你思考。


1
投票

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

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

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

每10个20


1
投票

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

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

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



1
投票

费曼在Physics of Computation上有一点点:

它解决了你问题的第二部分。

© www.soinside.com 2019 - 2024. All rights reserved.