对元编程的一些思考

来源:互联网 发布:神经网络算法是什么 编辑:程序博客网 时间:2024/06/05 02:43
编程就是写能够操作数据来实现功能的过程。
在程序执行过程中,数据是不停变化的,但过程一般不变,它们忠实的按照程序员的思维执行。可以说,过程就是程序员思维的机器化。
程序编译完成后,过程和数据之间就有了明确的界限,这个界限难以逾越,否则就会带来安全隐患。如果使用者能在使用程序过程中改变过程并超出程序员的预计,就有可能利用程序作一些超出预想的事情,比如犯罪。
编写在编译器或运行期还能变化的过程,就是元编程。
c/c++的宏,是最简单的元编程,功能也非常弱。c++的模板,可以在编译器执行所有复杂的逻辑运算,生成想要的过程,这是完全的元编程,但是因为模板不是为元编程设计的,所以用起来非常别扭。
在编译期进行计算,生成过程的,叫产生式编程。
还有不是产生式编程的元编程,如javascript和lisp,就是能在运行时查询、生成、修改过程,这种灵活性比产生式编程更高。
0 0
原创粉丝点击