`
ideage
  • 浏览: 319026 次
社区版块
存档分类
最新评论

D语言脚本引擎简单比较

阅读更多

经过长期的测试,使用,扩展代码编写,比较了D中可以使用的几种脚本语言。

 

MiniD:

 

协议 宽松,自由,商用免费。

语法 简单,类似D

效率 较高 素数例子:69ms (用的是MiniD 0.06,Phobos,2.0bate没有测试)

稳定性 一般,没有连续升级,结局已经和MiniD1.0一样。

扩展性 高

Unicode支持:支持

基本库:仅Tango,Tango太不稳定。

文档,例子:较少,不过容易理解

 

 

DMDScript,Rooscript,Walnut V1.1:

 

协议 GPL,商用999$。

语法 JavaScript,兼容ECMA v3

效率 一般 素数例子:123ms

稳定性 较高

基本库:仅Phobos,D1

Unicode支持:支持

扩展性 高

文档,例子:最少,不过可以看看其他JavaScript的书籍和文档。

 

另外的选择是Walnut v1.9 基于BSD协议,却没有测试通过。Walnut1.1效率比较低,还不如Jscript。

 

LUA:

 

协议 宽松,自由,商用免费。

语法 简单,类似Basic

效率 高 素数例子:32ms

稳定性 高

扩展性 高

Unicode支持:支持,dofile中C运行库中用fopen不能直接用Unicode文件。

基本库:Phobos 和 Tango,D1,D2

文档,例子:较多,中文,易理解,交互性好

 

基于比较,只能使用Lua了。虽然很想使用MiniD。太老的版本v1倒是可以用Phobos,但稳定性差。

 

目前的状况,我们只能使用稳定的版本了。不能选择Tango和D2的也是这个原因。

 

 

 2.19日发表 

 2.20日修订,增加测试结构,文档比较。

 

 (待续,完善中)

 

分享到:
评论
8 楼 ideage 2009-02-20  
hurd 写道

汉字,大陆电话,手机,邮编,身份证。 美国的才有个邮编和电话。 不知道作者那里来的这些信息。


最早的MiniD的regexplib是我写的。
7 楼 hurd 2009-02-20  
			pushString(t, "^[\u4e00-\u9fa5]+$");                   newGlobal(t, "chinese");
			pushString(t, r"\d{3}-\d{8}|\d{4}-\d{7}");             newGlobal(t, "cnPhone");
			pushString(t, r"^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$"); newGlobal(t, "cnMobile");
			pushString(t, r"^\d{6}$");                             newGlobal(t, "cnZip");
			pushString(t, r"\d{15}|\d{18}");                       newGlobal(t, "cnIDcard");

			pushString(t, r"^((1-)?\d{3}-)?\d{3}-\d{4}$");         newGlobal(t, "usPhone");
			pushString(t, r"^\d{5}$");                             newGlobal(t, "usZip");



汉字,大陆电话,手机,邮编,身份证。 美国的才有个邮编和电话。 不知道作者那里来的这些信息。
6 楼 hurd 2009-02-20  
看到Minid的pcre扩展里的这个
86 	            pushString(t, "^[\u4e00-\u9fa5]+$");                   newGlobal(t, "chinese");
87 	            pushString(t, r"\d{3}-\d{8}|\d{4}-\d{7}");             newGlobal(t, "cnPhone");
88 	            pushString(t, r"^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$"); newGlobal(t, "cnMobile");
89 	            pushString(t, r"^\d{6}$");                             newGlobal(t, "cnZip");
90 	            pushString(t, r"\d{15}|\d{18}");                       newGlobal(t, "cnIDcard");
5 楼 ideage 2009-02-19  
看了下Gpl3协议和monster ,monster代码结构还真不错。与D的相互调用非常简单。也比较活跃:2.18日发布了0.11版本。monster雄心勃勃啊!
4 楼 tomqyp 2009-02-19  
monster 也不错的说,GPL3 协议 ,支持tango phobos 也支持c++,与D的相互调用也比较简单。不过没有在自己的程序使用过,稳不稳定不好说。

但是之前用D写过一个协议分析工具到是用过lua,由于封装比较简单,涉及到与D的通信部分写起来还是比较痛苦的。老实说,要还是考虑到扩展性,有些地方真是恨不得全部用D来写。



3 楼 ideage 2009-02-19  
用lua的binding,封装了5.13版本,很方便的
2 楼 Colorful 2009-02-19  
没怎么研究过脚本语言,呵呵。
1 楼 Colorful 2009-02-19  
使用 Lua 的话,是不是要做一定的封装啊?

相关推荐

    AtScript 源码下载

    AtScript <br/> 在你的...简介 在你的程序中实现脚本功能,该脚本引擎名为AtScript , 是类似于VBScript 的语法, 在一些比VBScript 更好用,更方便,而且容易扩展,无需组件环境 <br/> <br/>[refer]...

    VRGrid:PTSource VRGrid是适用于Windows x86和x64的免费的基于标准的桌面应用程序,用于在长方体引擎内表示具有VR支持的交互式3D和2D。 它包括自己的用于软件设计的脚本语言,以及对3D模型的格式支持

    它包括用于软件设计的自己的脚本语言,以及对3D模型的格式支持。 该设计的目标是强调简单性,通用性和可用性,并且是一种简单而有趣的方式来快速学习标记和算法。屏幕截图特征长方体引擎基于云的VRF文件原生VR支持

    Cocos2D-X游戏开发技术精解

    12.5.2 引擎中的脚本引擎 329 12.6 样例程序 331 12.6.1 脚本引擎初始化 332 12.6.2 游戏内容的实现脚本 333 12.6.3 农场层的实现 334 12.6.4 菜单层的实现 337 12.7 本章小结 338 第13章 Cocos2D-HTML5引擎...

    中文游戏大师B2

    1.使用轻型脚本语言(Lua),并全面汉化lua语句,创造中文编写游戏的捷径 2.仿VC++的IDE,精心设计程序界面,愉悦开发人员的心情 3.脚本速度优秀,可制作各种类型2D游戏,包含网络游戏。 4.国人开发,不定期升级维护...

    GBA-caster:一个用于存储Game Boy Advance的自制raycaster引擎的源代码的存储库

    光线投射引擎已使用C编程语言和DEVKITADV开发套件开发。 如果需要这样做,请更改以下编译脚本,以便在本地系统中编译源代码。 SET PATH = D:\ devkitadv \ bin gcc -o gbaRaycaster_ver1.elf gbaRaycaster_ver1.c ...

    DGLE:强大的独立跨平台引擎,用于2D3D游戏和可视化。 年轻,坚强,疯狂!

    制作出色的项目应该很容易仅通过使用编辑器和脚本,或者更深入地使用您喜欢的语言的编程技能来创建真正令人兴奋的项目。 用户还可以通过为引擎创建新的插件并通过网络与他人共享来添加新的格式和功能,或者仅获取...

    DQuick:用 D 编写的 GUI 库

    你可能想看看 D 编程语言官方网站:dlang.org 和启发我们的框架(QtQuick): ://blog.qt.digi.com/blog/2013/06/21/overview- 我们使用 Lua 作为脚本语言而不是 javascript,因为没有 C javascript 引擎。...

    paxCompiler 4.2 Inc Update for D10.1 Berlin full source

    paxCompiler 是一款针对 Pascal、Basic 和 JavaScriptis 编程语言的可嵌入编译器,...您可以将这款编译器用作脚本引擎,这样您无需重新编译即可定制和扩展您的 Delphi、VC++ 或 Free Pascal 应用程序了。含全部源码。

    《Android应用开发揭秘》源码

     14.4.8 脚本引擎、音效模块、网络模块  14.5 小结  第15章 优化技术  15.1 优化的基本知识  15.1.1 如何书写出优秀代码  15.1.2 编程规范  15.2 程序性能测试  15.2.1 计算性能测试  15.2.2 内存消耗测试 ...

    Android应用开发揭秘

    14.4.8 脚本引擎、音效模块、网络模块 14.5 小结 第15章 优化技术 15.1 优化的基本知识 15.1.1 如何书写出优秀代码 15.1.2 编程规范 15.2 程序性能测试 15.2.1 计算性能测试 15.2.2 内存消耗测试 15.3 初级优化 15.4...

    sphinx-2.2.10-release.tar

    Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。 Sphinx单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx创建...

    Android应用开发揭秘pdf高清版

    14.4.8 脚本引擎、音效模块、网络 模块 14.5 小结 第15章 优化技术 15.1 优化的基本知识 15.1.1 如何书写出优秀代码 15.1.2 编程规范 15.2 程序性能测试 15.2.1 计算性能测试 15.2.2 内存消耗测试 15.3 初级优化 ...

    Sciter 的 Rust 绑定

    Sciter 的 Rust 绑定检查此页面是否有其他语言绑定(Delphi / D / Go / .NET / Python / Rust)。介绍Sciter 是一个可嵌入的多平台HTML/CSS/脚本引擎,具有 GPU 加速渲染,旨在渲染现代桌面应用程序 UI。它是一个...

    Edgame Maker 1.1 正式版

    1.使用轻型脚本语言(Lua),扩展了中文支持,大量内置扩展函数库,降低游戏制作门槛. 2.方便外接各种插件,支持纯中文易语言DLL,搭配各种第三方扩展类,模块,插件,工具更加高效. 3.脚本速度优秀,可制作各种类型2D游戏,包含...

    Edgame Maker 1.1正式版

    1.使用轻型脚本语言(Lua),扩展了中文支持,大量内置扩展函数库,降低游戏制作门槛. 2.方便外接各种插件,支持纯中文易语言DLL,搭配各种第三方扩展类,模块,插件,工具更加高效. 3.脚本速度优秀,可制作各种类型2D游戏,包含...

    Edgame Maker 1.2版

    1.使用轻型脚本语言(Lua),扩展了中文支持,大量内置扩展函数库,降低游戏制作门槛. 2.方便外接各种插件,支持纯中文易语言DLL,搭配各种第三方扩展类,模块,插件,工具更加高效. 3.脚本速度优秀,可制作各种类型2D游戏,包含...

    Torque2D:GarageGames的MIT许可的Torque 2D游戏引擎开源版本

    它包括OpenGL批处理渲染系统,Box2D物理,OpenAL音频,骨骼和Spritesheet动画,自动资产管理,模块化项目结构,TML对象持久性以及类似C的脚本语言。 分行 以下是在Torque 2D存储库中找到的分支的概述: master:此...

Global site tag (gtag.js) - Google Analytics