﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-.七夕.幻觉.-文章分类-软件设计</title><link>http://www.cppblog.com/dostory/category/259.html</link><description>我有一個理想，餵馬，寫詩，周遊列國，面向朝陽，光芒萬丈~~~</description><language>zh-cn</language><lastBuildDate>Thu, 22 May 2008 11:04:17 GMT</lastBuildDate><pubDate>Thu, 22 May 2008 11:04:17 GMT</pubDate><ttl>60</ttl><item><title>About C++</title><link>http://www.cppblog.com/dostory/articles/990.html</link><dc:creator>Stroy's BLOG</dc:creator><author>Stroy's BLOG</author><pubDate>Tue, 08 Nov 2005 15:00:00 GMT</pubDate><guid>http://www.cppblog.com/dostory/articles/990.html</guid><wfw:comment>http://www.cppblog.com/dostory/comments/990.html</wfw:comment><comments>http://www.cppblog.com/dostory/articles/990.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/dostory/comments/commentRss/990.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/dostory/services/trackbacks/990.html</trackback:ping><description><![CDATA[<FONT size=2>C和C/C＋＋语言配合，可以有许多种用法，比如： <BR><BR>1、在自己在程序中调用虚拟机，这样可以以脚本API的方式，把程序的基本功能（类或函数）开放给脚本，相当于扩展了标准虚拟机，实现了一个专有的脚本运行环境。程序启动后直接启动虚拟机，由脚本去控制整个程序的运行。这种方式是脚本驱动的。 <BR>它的好处是比较灵活，我们只需要实现底层API，调用流程和其它逻辑（不需要特别高效的部分）则在脚本中完成。 <BR><BR>2、像魔兽世界游戏一样，初始化一个虚拟机，调用初始化脚本，在这里，脚本可以注册事件。当某个事件达到触发条件时，调用脚本代码去响应它。这种方式是程序驱动的，脚本以观察者方式运行。 <BR>这些脚本像是程序的plugins一样，程序按照编写者的要求运行，但其它人可以任意扩展。 <BR><BR>3、以C/C＋＋编写模块，供脚本程序调用。python中许多模块就是这样来实现的。 <BR>在这里，C/C++编写的模块仅仅是为了提高运行效率，或是包装现有的优秀C/C＋＋库。 <BR><BR>4、。。。 <BR><BR>以上讲的是和C/C＋＋配合使用的情况，实际上动态语言本身就能完成许多事情，不一定要和C/C＋＋一起使用。 <BR><BR>典型的缺点有： <BR><BR>1、容易被反编译和修改 <BR>所以许多程序以上面第2种方式来写。 <BR><BR>2、运行效率较低 <BR>根据20－80原则，这个担忧是不必要的，我们完全可以把程序的10%－20%效率要求高的部分以C/C＋＋来写，其它部分用脚本语言来实现。</FONT><img src ="http://www.cppblog.com/dostory/aggbug/990.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/dostory/" target="_blank">Stroy's BLOG</a> 2005-11-08 23:00 <a href="http://www.cppblog.com/dostory/articles/990.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>