【发布时间】:2023-10-15 07:34:01
【问题描述】:
我想回过头来了解更多关于编译器、处理器和内存如何在我的程序上运行的信息。我也对所有这一切所依赖的物理学感兴趣。任何好的参考资料或书籍将不胜感激......
【问题讨论】:
-
电压、电流、电阻 - 底部都是物理。
标签: memory compiler-construction physics processor
我想回过头来了解更多关于编译器、处理器和内存如何在我的程序上运行的信息。我也对所有这一切所依赖的物理学感兴趣。任何好的参考资料或书籍将不胜感激......
【问题讨论】:
标签: memory compiler-construction physics processor
对于编译器,终极书籍是Dragon Book,又名《编译器设计原理》。一开始有点重,但是每次通过它都会变得更容易。这是一本经典之作,所有认真学习编程/计算机科学的学生都应该阅读。
【讨论】:
我的第一个建议是Code,这已经被建议了。 Hennessey & Patterson 的《Computer Organization & Design》是一本更好但更难的关于处理器主题的书。您可能会在 Amazon 或 Half.com 上寻找旧版本。它们会便宜很多,而且信息基本相同。
这些都将教您处理器的工作原理、汇编语言等基础知识。这将帮助您了解您的程序将如何被解释,从而了解您的设计可能存在什么样的性能瓶颈。
【讨论】:
在我看来,您想获得计算机科学学位。 :-)
【讨论】:
【讨论】:
我通常不会同时想到物理和编译器。
This link 可能会让你思考。
【讨论】:
为 C64 之类的东西编写一个简单的模拟器。通过思考如何模拟 CPU、内存和其他芯片,您将了解这些简单机器的工作原理。今天的计算机几乎以相同的方式运行,但复杂性更高,但基本思想是相同的。
您的模拟器不必非常快 - 尝试获取 C64 欢迎信息,如果您的代码正确 - 您应该能够 POKE 并编写基本程序并让它们工作:)
10 PRINT "DONT LISTEN TO ME - APPLE //E's RULE"
20 转到 10
【讨论】:
我建议学习足够的 assembler 以便能够在汇编程序中编写一个简单的 Hello World 程序。
这将准确地告诉您 CPU 在寄存器和内存级别是如何工作的。
它还将向您很好地介绍如何将源代码转换为目标文件以及链接器如何将所有这些目标文件组合在一起以创建一个工作程序。
【讨论】:
拿起任何 Hennessy & Patterson 书籍。 Computer Architecture - A Quantitative Approach 或 Computer Organization & Design - The Hardware Interface
【讨论】:
【讨论】:
在亚马逊上购买一本关于“计算机组织”或“计算机架构”的书。 This is what we used 上大学的时候。它不太厚,会给你基础知识,从门级一直到内存的组织方式和程序的编写方式。如果在此之后,你想更深入地研究物理学,那么你会想要一本关于半导体物理学的书。 (但如果我是你,我会先在*上查找“逻辑门”、“二极管”和“晶体管”!)
【讨论】:
如果您真的想深入了解处理器/IC 的物理学,您需要具备扎实的电磁学/电路分析背景。这当然不是一件容易的事,而且不会真正让你成为一个更好的程序员。如果你真的有兴趣,可以向 EE 朋友借一些书!
从这里开始的抽象是门级,程序员通常可以理解它,因为它都是关于逻辑的。
【讨论】:
在阅读了 Steve Yegge 的关于了解编译器的建议后,我做出了类似的决定。我一直非常喜欢 Nisan 和 Schocken 的计算系统的要素:从第一原理构建现代计算机,它首先是一本教科书,其次是针对新生或大四学生的一个学期课程,第三,提供讲座和跨平台仿真模拟软件的网站:http://www1.idc.ac.il/tecs/ (TECS)
主题从 NAND(用 HDL 编程数字逻辑电路)到触发器、ALU 和寄存器、汇编器、解析和编译器、操作系统和 GUI。您,学生,在网站上提供的硬件模拟器或软件模拟器上实现这些主题中的每一个。对我来说,本科生可以在 3--4 个月内深入了解这些想法,这是对人类创造力的一种庆祝。一位作者/教授就该主题进行了 Google 技术讲座,如果您有一个小时的时间可以从他们的课程中抽出时间,那么值得一试。
我不能推荐一个同样引人入胜的计算物理资源,但我可以敷衍地说,我的电气工程系的前两个核心 EE 课程的学生可以学习(如果他们选择的话,可以同时学习)是电路 1 和半导体 1。前者涉及电压、电流、电感、电容、运算放大器等——后者涉及量子力学、晶体、掺杂、电荷载流子等,最直接涉及数字处理和存储的物理设备。但是,我很难想象像 TECS 这样的动手模拟环境可以解决这样的主题,使其更适合学术而不是业余爱好者/专业研究?
【讨论】: