"Hello World"如何在C语言中起作用

l0k*_*ndr 16 c compiler-construction

我正在搜索关于"C程序如何工作"的博客文章一个月.大多数人都喜欢

  1. 编译器会做这些事情
  2. 连接器做这些事情
  3. 程序被放入内存; 和堆栈,堆等

我想我会先阅读有关编译器如何理解程序流入机器的工作原理.龙书似乎是普遍的首选.但说实话,这太过密集了.我现在还不够好,无法完成所有这些工作.

所以我开始阅读有关硬件的内容.但是,他们也解释了总线,I/O信号,内存结构,编写缓存友好代码等等.但没有适当的例子.

但我仍然无法让自己满意或能够完全想象这个过程.

2个小时前,我决定提出这个问题.(因为我害怕它可能对SO社区,或题外话题或其他可下注的类别没用),而且我没有找到任何与此相关的帖子.有一个关于"编译器如何编译",但答案表明这是一个太宽泛的问题.

我的问题是:

我想知道C程序的工作原理.如果您无法明确告诉我,请将我重定向到另一个网站上的书或其他帖子,以便给我答案.

我在这里,直到得到回复.如果您对此帖有任何建议,请告诉我.这不是我的第一语言,所以请把我所有的句子都当作柔软和礼貌的.

谢谢.

更新:

除了接受的答案外,还有一些非常好的链接以及建议,可以给出部分答案或进一步了解我想要了解的内容.

Ern*_*ill 5

到目前为止,这个问题的最佳答案来自Noam Nisan和Shimon Schocken的"计算系统的要素"一书.本书从最简单的电子组件开始,将它们组装成一个工作处理器,为它发明一种简单的汇编语言,为此编写汇编程序,最后向您展示如何将高级语言编译到其上.阅读本书,并使用所有示例(使用模拟器作为硬件,因此不需要研讨会!),将永远改变您对计算机的看法; 他将完全理解从最低级别到最高级别的所有内容,并了解它们如何协同工作.有关详细信息,请参阅本书的网站.

  • 正确的链接:http://www.nand2tetris.org/ (2认同)