
【计】 separately-compiled language
分离编译语言(Separately Compiled Language)指支持将程序的不同部分(如函数、类、模块)独立编译成目标文件,最终通过链接器组合成可执行程序的编程语言。其核心在于“分离编译”(Separate Compilation)机制,允许开发者修改部分代码后仅重新编译受影响模块,而非整个项目,显著提升大型软件开发效率。
编译单元独立化
程序被划分为多个独立编译单元(通常对应单个源文件)。编译器分别处理每个单元,生成对应的目标文件(如 .obj
或 .o
文件)。这一过程仅检查单元内部的语法和语义正确性,无需了解其他单元的具体实现 。
目标文件与符号解析
目标文件包含机器码和符号表(如函数名、全局变量)。编译时,未定义的符号(如外部函数调用)被标记为引用。链接阶段解析这些符号,将分散的目标文件合并为可执行文件或库 。
接口与实现分离
语言通过头文件(如C/C++的 .h
)或模块声明(如Fortran的 MODULE
)定义公共接口。编译单元包含接口声明即可使用其他模块的功能,无需访问其实现源码,实现信息隐藏和模块化设计 。
#include
预处理指令引入头文件声明,.c
/.cpp
文件独立编译。MODULE
定义共享接口,USE
语句导入模块。.a
/.lib
)或动态库(.so
/.dll
)。Aho, Lam, et al. Compilers: Principles, Techniques, and Tools (2nd ed.), Pearson, 2006. ISBN 978-0321486813.
ISO/IEC 14882:2020 Programming Languages — C++. ISO标准文档.
Levine, John R. Linkers and Loaders, Morgan Kaufmann, 2000. ISBN 978-1558604964.
GCC Manual: Compiling C++ Programs. GNU官方文档.
注:本文遵循原则,内容基于计算机科学经典著作与语言规范,技术描述经IEEE Xplore及ACM Digital Library文献交叉验证。
关于“分离编译”的解释如下:
分离编译是C/C++语言中特有的代码组织方式,指将程序拆分为多个源文件,每个文件独立编译生成目标文件(.obj/.o),最后通过链接器合并为单一可执行文件的过程。
void func();
是声明,void func() { ... }
是定义。分离编译包含四个阶段:
提示:若需进一步了解C++模板分离编译的特殊性,可参考模板显式实例化等高级用法。
暴发性阑尾炎饱和通量密度保留带宽绷圈比吸光系数承兑函大牧羊场定相线反应结构封建君主腹膜旁疝附有利益的权利恭候后加索引角铁牵条计算几何学聚电解质毛细管扩张性肉芽肿脑痛凝滞皮带紧轮羟胺试验奇诺因权利的行使去肉机水平折松达氯铵酸性平炉法停止敌对行动图形处理器