C和C/C++语言配合,可以有许多种用法,比如:
1、在自己在程序中调用虚拟机,这样可以以脚本API的方式,把程序的基本功能(类或函数)开放给脚本,相当于扩展了标准虚拟机,实现了一个专有的脚本运行环境。程序启动后直接启动虚拟机,由脚本去控制整个程序的运行。这种方式是脚本驱动的。
它的好处是比较灵活,我们只需要实现底层API,调用流程和其它逻辑(不需要特别高效的部分)则在脚本中完成。
2、像魔兽世界游戏一样,初始化一个虚拟机,调用初始化脚本,在这里,脚本可以注册事件。当某个事件达到触发条件时,调用脚本代码去响应它。这种方式是程序驱动的,脚本以观察者方式运行。
这些脚本像是程序的plugins一样,程序按照编写者的要求运行,但其它人可以任意扩展。
3、以C/C++编写模块,供脚本程序调用。python中许多模块就是这样来实现的。
在这里,C/C++编写的模块仅仅是为了提高运行效率,或是包装现有的优秀C/C++库。
4、。。。
以上讲的是和C/C++配合使用的情况,实际上动态语言本身就能完成许多事情,不一定要和C/C++一起使用。
典型的缺点有:
1、容易被反编译和修改
所以许多程序以上面第2种方式来写。
2、运行效率较低
根据20-80原则,这个担忧是不必要的,我们完全可以把程序的10%-20%效率要求高的部分以C/C++来写,其它部分用脚本语言来实现。
posted on 2005-11-08 23:00
Stroy's BLOG 阅读(190)
评论(1) 编辑 收藏 引用 所属分类:
软件设计