随笔-341  评论-2670  文章-0  trackbacks-0

点击这里下载。

作者保留对源代码的一切权利

文件是一个rar压缩包,结构如下:
【产品】
    【Demo】两个Demo的编译结果。这个文件夹里面的脚本代码仅供测试用。
    【库】编译结果以及Vczh Free Script 2.0提供的插件封装,使用Vczh Free Script脚本语言编写。
    【文档>】使用说明书。
【源代码】源代码仅能使用Visual C++ 2005或以上编译器编译。
    【FreeScript】使用FsRuntime.dll写的C++Demo,控制台虚拟机。
    【FreeScript_CSharp】使用FsRuntime_clr.dll写的C#Demo,控制台虚拟机。
    【FsRuntime】Vczh Free Script 2.0 DLL接口。
    【FsRuntime_CLR】使用FsRuntime.dll写的.NET接口。
    【Library】
        【Data】数据输出以及必要的操作系统接口封装。
            【Data】为了不使用STL而做出来的字符串、对象池以及容器模板库。
            【Grammar】具有不同目的的两套正则表达式引擎以及上下文无关文法分析器。
        【Platform】控制台封装。
        【Script】
            【Free】
                【Common】指令集。
                【Compiler】编译器。
                【Machine】虚拟机。

posted on 2008-07-01 05:35 陈梓瀚(vczh) 阅读(11146) 评论(23)  编辑 收藏 引用 所属分类: 作品

评论:
# re: Vczh Free Script 2.0 beta 发布 2008-07-01 05:45 | Vampire.Kiss
我操。 总算占个沙发了。  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-01 07:18 | foxtail
很好 很强大 BT  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-01 18:10 | 某菜鸟
非常感谢分享源代码!

赞!

小声问一句:有没有设计文档?还是你想到哪写到哪?  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-01 18:24 | 陈梓瀚(vczh)
设计文档不提供。  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-01 21:22 | true
你精力旺盛  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-02 07:07 | 某菜鸟
很好,很神经,很强大。  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-03 05:30 | Lnn
很好,很神,很强!  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-03 07:35 | Gohan
啊,来支持一下大牛~  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-03 19:56 | 雪梨酒
好牛虻啦!
  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-03 23:28 | suxiaojack
函数式解析非常不错!值得学习!
不过速度有点慢。
测试了一下,比用编译型的东东慢了一千左右倍,实际应用需要优化才行。

bench.free
______________________________________________
_run(_global,readfile(vmpath++"Library.free"));

local c=0;
writeln("开始");
for( i in 1 to 1000)
{
for ( j in 1 to 1000000)
{
c=c+1;
};
};
writeln("结束.",c);

这个要等多久??
___________________________________________________

_run(_global,readfile(vmpath++"Library.free"));

local c=0;
writeln("开始");
for( i in 1 to 1)
{
for ( j in 1 to 1000000)
{
c=c+1;
};
};
writeln("结束.",c);
这个要7秒在我的2.0G AMD CPU上。
  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-03 23:34 | suxiaojack
_run(_global,readfile(vmpath++"Library.free"));

local c=0;
fixed f=func(){
writeln("开始");
for( i in 1 to 1)
{
for ( j in 1 to 1000000)
{
c=c+1;
};
writeln("结束.",c);
};
};
f();
这样写,时间少用了!只要4秒了!  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-04 00:10 | 陈梓瀚(vczh)
哦,我明白了,是因为_run(_global,readfile(vmpath++"Library.free")); 导致了这个区别。所以你用func的时候,寻找c的时间就缩短了。  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-04 18:06 | 陈梓瀚(vczh)
不过这个脚本引擎的速度是快在库上面的,动态语言不适合计算密集型任务。  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-04 19:53 | suxiaojack
动态语言老外有做得很快的,现在都是动态编译了。比如java、tinyCC.开放编译接口给用户。可以有eval函数出来。最早的动态语言是全在自己写的虚拟机上解释执行,但现在的虚拟机又有解释器部分,又还有编译器部分,很多东东都在内存中直接翻译为机器码执行,速度快了很多。  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-04 21:48 | 空明流转
楼上的那种叫做JIT  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-04 21:50 | 空明流转
对了,有没有能判断是否为LALR1文法的技巧或者方法的?最近要给我的软件渲染器做一个shader的编译器.  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-05 05:49 | 陈梓瀚(vczh)
那也得是弱类型或者强类型的才能顺利JIT,无类型的JIT其实跟不JIT并没有太大差别,因为要检查的东西都非常多。而且JIT代码生成的不好还会更慢。这门语言之所以做成这样很大程度上是因为语法决定的。开放的语法总会有效率上或工程上的弱点,两者必居其一。所以我选择了工程。  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-05 05:51 | 陈梓瀚(vczh)
@空明流转
尝试写文法,写不出来就是不行了。人处理而已。  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-05 08:01 | 空明流转
@陈梓瀚(vczh)
我搞出来一串左递归文法。。。。  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2008-07-05 09:12 | 陈梓瀚(vczh)
LALR不是有能力处理左递归么……  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2013-06-01 19:58 | Scan
@陈梓瀚(vczh)
老大,过去很多年了,能解释下这里提到的这个观点吗?“那也得是弱类型或者强类型的才能顺利JIT,无类型的JIT其实跟不JIT并没有太大差别”。
我现在也只停留在你当年的这个认识上,但luajit、v8的javascript,他们是怎么做到jit然后效率暴高的呢?能否简单解释下?  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2013-06-02 07:45 | 陈梓瀚(vczh)
@Scan
因为做了类型推导,尽管不可能得出精确的结果,但是大部分情况下你都可以得到概率最大的那个  回复  更多评论
  
# re: Vczh Free Script 2.0 beta 发布 2015-10-12 03:17 | replica watches uk
前来学习  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理