元编程 (meta-programming) 术语 meta:英语前缀词根,来源于希腊文.中国大陆一般翻译成"元". 在逻辑学中,可以理解为:关于X的更高层次,同时,这个更高层次的范围仍然在X的范围之内. meta-data meta-function meta-bank meta-verse meta-programming 因何而生 诞生必然性:需要非常灵活的代码来适应快速变化的需求,同时保证性能. 定义 元编程 (meta-programming) 通过操作 程序实体 (prog…
Scala Macros对scala函数库编程人员来说是一项不可或缺的编程工具,可以通过它来解决一些用普通编程或者类层次编程(type level programming)都无法解决的问题,这是因为Scala Macros可以直接对程序进行修改.Scala Macros的工作原理是在程序编译时按照编程人员的意旨对一段程序进行修改产生出一段新的程序.具体过程是:当编译器在对程序进行类型验证(typecheck)时如果发现Macro标记就会将这个Macro的功能实现程序(implementation…
目录 1 C++ 中的元编程 1.1 什么是元编程 1.2 元编程在 C++ 中的位置 1.3 C++ 元编程的历史 2 元编程的语言支持 2.1 C++ 中的模板类型 2.2 C++ 中的模板参数 2.3 模板的重载和绑定 -- 特化和实例化 3 元编程的基本演算 3.1 编译时测试 3.1.1 测试表达式 3.1.2 测试类型 3.1.3 使用 if 进行编译时测试 3.2 编译时迭代 3.2.1 定长模板的迭代 3.2.2 变长模板的迭代 4 元编程的基本应用 4.1 数值计算 4.2 类…
Python的元编程案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是元编程 元编程概念来自LISP和smalltalk. 我们写程序是直接写代码,是否能够用代码来生成未来我们需要的代码吗?这就是元编程. 例如,我们写一个类class A,能否用代码生成一个类出来? 用来生成代码的程序称为元程序metaprogram,编写这种程序就称为元编程metaprogramming. Python语言能够通过反射实现元编程. Python中所有非object类都继承自obj…
最近在看这本书,比较实用.抽点时间把公开的部分内容简单的翻译了一下,下文是序部分. 书的具体地址为: http://www.amazon.cn/Metaprogramming-in-NET-Hazzard-Kevin/dp/1617290262/ref=sr_1_1?ie=UTF8&qid=1374625885&sr=8-1&keywords=Metaprogramming++in+.NET 序 对元编程这个问题,我从三个方面的经验进行阐述:作为一个计算机科学家,业务开发员,以及.…
实验平台:Win7,VS2013 Community,GCC 4.8.3(在线版) 所谓元编程就是编写直接生成或操纵程序的程序,C++ 模板给 C++ 语言提供了元编程的能力,模板使 C++ 编程变得异常灵活,能实现很多高级动态语言才有的特性(语法上可能比较丑陋,一些历史原因见下文).普通用户对 C++ 模板的使用可能不是很频繁,大致限于泛型编程,但一些系统级的代码,尤其是对通用性.性能要求极高的基础库(如 STL.Boost)几乎不可避免的都大量地使用 C++ 模板,一个稍有规模的大量使用模板…
李哲 - MAY 20, 2015 原文地址:Metaprogramming Dynamic Methods: Using Public_send 作者:Friends of The Web的开发者Vaidehi,OneAPM官方技术博客编译整理. 在上周,我写了一些让我感到非常骄傲的代码!当时,我正努力解决一个有趣的问题,这个问题也是我最近开发的一款应用中所遇到的.于是我把脑海中想到的第一种解决办法很快付诸了实践.然后,当我回过头来查看文本编辑器,并认真审阅完自己所写的代码时,终于意识到:这些…
https://en.wikipedia.org/wiki/Template_metaprogramming 没看懂...只知道了模板元编程的代码是在编译期运行的... 敲了2个例子: 1. #include <iostream> using namespace std; template<int n> struct f { enum { value = f<n - 1>::value }; }; template<> struct f<1> {…
atitit.元编程总结 o99.doc 1. 元编程(Metaprogramming) 1 2. 元编程的历史and发展 1 3. 元类型and元数据 1 4. 元编程实现方式 2 4.1. 代码生成 2 4.2. lex和yacc分析器 2 4.3. 泛型编程 2 4.4. 注解 2 4.5. 解释型框架 2 4.6. 对象工厂概念,一个会写程序的程序! 3 4.7. Aop 3 4.8. 数据对象触发器和 可配置的插入式服务 3 5. 应用场景 4 6. 参考 4 1. 元编程(Meta …
元编程 什么是元编程(metaprogramming) 利用模板可以进行编译期计算(数值计算,型式计算和代码计算)的特点进行程序设计 为什么可以进行元编程? C++是两层语言:执行编译期计算的代码称为静态代码,执行运行期计算的代码称为动态代码 模板可用于函数式编程,强调抽象计算,重视模块化,使用递归控制流程 模板是图灵完备的:理论上,模板可以执行任何计算任务 为什么需要元编程? 编译期计算可以使代码更通用,更易用,提升程序执行性能 元编程的缺点 相对结构化编程,编译效率比较低 代码丑陋不堪,阅读…