1 基本概念
1.1 meta program 元程序
可以用meta program生成object program, 也可以object program作为数据看待,从而组装出更大的object program 元程序是处理程序的程序,如大家熟悉的编译器、解释器、类型检查器、定理证明器、程序生成器、转换系统和程序分析器等等
1.2 object program 目标程序
目标程序,又称为“目的程序”,为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名-—由语言处理程序(汇编程序,编译程序,解释程序)将源程序处理(汇编,编译,解释)成与之等价的由机器码构成的,计算机能够直接运行的程序,该程序叫目标程序。目标代码尽管已经是机器指令,但是还不能运行,因为目标程序还没有解决函数调用问题,需要将各个目标程序与库函数连接,才能形成完整的可执行程序。
1.3 元编程 meta programming
指的是对元程序的编写工作
1.4 元语言
编写元程序的语言
1.5 目标语言
编写目标程序的语言
1.6 总结
我们用C++语言写程序, C++语言是一种目标语言,通过编译器处理后,生成.obj文件,.obj文件内部就是目标程序,经过链接器链接后,形成可执行程序。 从DSL的角度来看,元编程就是用一种DSL语言编写运行,然后获得目标语言和程序。DSL可以和目标语言不同,也可以相同。如果相同,就是DSL本身是宿主语言的一部分。C++模板元编程语言就是这种DSL,天然使用了C++的模板语言,从而产生目标语言。使用C++模板元编程可以进行以下两种计算:
- 数值计算
- 类型计算
时间: 2024-11-06 08:38:48