06 2011 档案
摘要:目前还有很多细节没做完. 说道一些细节, 如果没有写下来, 没有写成文档, 甚至是'规范', 有时我自己也会忘记某些细节的实现规则如何..所以, 看来还是有必要继续在当前版本下点功夫, 然后一点一滴, 把细节搞定先. 这样, 有了一个规范, 才能让这个语言不变得模棱两可.--另外, 在重构DotNet版本之前, 我还想先去JVM那边做一个版本出来验证一下先.. 毕竟现在基于JVM的语言还是挺火的. 如果Parallet推出JVM版本, 未尝不是一件X事.
阅读全文
摘要:代码来源于 http://www.cnblogs.com/miloyip/archive/2010/07/07/languages_brawl_GI.html在我的电脑上, C#_ref那个测得52秒, 而用Parallet解释执行, 则需要1350秒, 是C#的26倍时间. 由于编译执行没完全做好, 所以就还没做编译执行的测试.C#的26倍时间, 和LUA差不多了, 比我想象中好很多, 毕竟LUA是C写的而且传说还用了CPU寄存器做卖点..比起ChromeJS,也只相差5倍而已, 比之前差70倍的数学测试要好不少.下一次等编译执行搞定后, 再来测试一下.(备注:如果采用多线程并发模式, 则只
阅读全文
摘要:Parallet是笔者自创的一种新的编程语言. 当初的定位是DotNet下的异步脚本, 用来弥补C#对异步编程的不足. (笔者想实现一些异步操作超多超复杂的服务器应用, 但是用C#做起来超难. )
这个项目已经开启了接近一个月. 目前的进度, 可以参考 http://www.parallet.net 上的描述 , 也可以在本博客里, 找到第一篇简介, 和最近的一些心得.
就在昨天, 笔者完成了初步的动态编译到IL的实现. 让大部分不需要异步执行的函数, 编译成CLI的方法. 这些函数由解释执行转换为编译执行后, 性能提高了100多倍.
基本上, 现在很多架构上的设计, 都已经完成. 大方向比较明确, 剩下的, 都是无穷无尽的细节问题.
阅读全文
摘要:在同一个ModuleBuilder里, DefineType并且CreateType之后, 是可以继续DefineType的..
这样可以防止编译多次代码导致的AssemblyBuilder过多的问题. 现在只需要1个AssemblyBuilder就够了.
示例代码 : using System;.......
阅读全文
摘要:很简单的fibonacci数列性能测试.C++用int,C#用int,Parallet用double, int Fib(int a){ if(a<2) return a; return Fib(a-1)+Fib(a-2);}Fib(40) 所需时间分别为C++ : 1500C# : 1400Parallet : 1750C#竟然比C++快? 这个结果让我对在C++上实现Parallet的欲望减少了不少..Parallet的第一版的任务是先把DotNet上的实现做好.然后再考虑搞到Mono去, 然后才是JVM上, 然后才到C++..
阅读全文
摘要:第一个版本的Parallet是在DotNet里实现的. (自带GC省了很多工作量)当前进度是, 在同一个编译系统中同时实现了解释执行,编译执行,调用IL,被IL调用,IL类型,新类型系统这6个东西混在一起是非常复杂的.互相调用时的同步异步模式转换,参数传递与类型转换, 非常麻烦.经过今天部分完成的编译执行的验证, 性能比解释执行最多提升了一百多倍. (已经超过ChromeJS, 优势来自于支持强类型)也就是说, 虽然编译执行的环节的增加让实现变得很繁琐, 但物有所值.(但是解释执行仍然有它的意义,它不Emit出Assembly,在不断执行新脚本的环境下不会造成内存越积越多的问题)-这个项目计划
阅读全文
摘要:Parallet是笔者自己开发的一种新语言,主要是基于JavaScript和C#的语法. 里面包含着针对异步与并行编程的独特思想. 无论你对异步并行编程,还是对如何创作新的编程语言感兴趣, 不放试试耐心地阅读这篇随笔.
阅读全文

浙公网安备 33010602011771号