. 编译时(编译程序) ?预处理: #using #define #region #if …?编译程序: csc ?链接、装配程序: link ?二进制或中间代码: . exe, msil ? 3. 运行时(可执行程序) ?启动函数?程序入口?消息循环程序是怎样“码”成的一个源程序有时可能分成几个模块存放在不同的文件里,将这些源程序汇集在一起的任务,由一个叫做预处理的程序来完成。,有些预处理程序也负责宏展开,像 C语言的预处理程序要完成文件合并、宏展开等任务。图中的编译程序生成的目标程序是汇编代码形式,需要经由汇编程序翻译成可再装配的机器代码, 再经由装配、连接编辑程序与某些库程序连接成真正能在机器上运行的代码?程序的编译过程程序是怎样“码”成的编译过程中源程序的各种信息被保留在种种不同的表格里,编译各阶段的工作都涉及到构造、查找或更细有关的表格,因此需要有表格管理的工作。如果编译过程中发现有源程序错误,编译程序应报告发生错误的性质和错误发生的地点,并且将错误造成的影响限制在尽可能小的范围内,使得源程序的其余部分可以继续被编译下去,有些编译程序能自动校正错误,这些工作称之为出错处理。?编译原理程序是怎样“码”成的? C# 编译过程在 Windows 之前,微软有过一个 MSDOS 操作系统,对于最近几年走上工作岗位的开发者来说,估计也就是在课本上见到过。而对于年长的开发者来说,其开发生涯就是从 MSDOS 上开始的(还记得 Turbo C 么)。虽然 MSDOS 并不能认为是 Windows 的前身, 但是不可否认的是,在 Windows 的底层确是或多或少存在着 MSDOS 的影子。在桌面软件开发的实践中, 有过 MSDOS 使用与开发经验的开发人员比从来没有接触过 MSDOS 的开发人员在理解问题上与解决问题上都技高一筹。这充分体现了一个完善技术体系对开发者的影响。