对元编程的一些思考

编程就是写能够操作数据来实现功能的过程。
在程序执行过程中,数据是不停变化的,但过程一般不变,它们忠实的按照程序员的思维执行。可以说,过程就是程序员思维的机器化。
程序编译完成后,过程和数据之间就有了明确的界限,这个界限难以逾越,否则就会带来安全隐患。如果使用者能在使用程序过程中改变过程并超出程序员的预计,就有可能利用程序作一些超出预想的事情,比如犯罪。
编写在编译器或运行期还能变化的过程,就是元编程。
c/c++的宏,是最简单的元编程,功能也非常弱。c++的模板,可以在编译器执行所有复杂的逻辑运算,生成想要的过程,这是完全的元编程,但是因为模板不是为元编程设计的,所以用起来非常别扭。
在编译期进行计算,生成过程的,叫产生式编程。
还有不是产生式编程的元编程,如javascript和lisp,就是能在运行时查询、生成、修改过程,这种灵活性比产生式编程更高。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值