| CSM脚本语言编译器和虚拟机执行器 1.3.0004 |
| 软件大小: | 649KB | | | 软件语言: | 简体中文 | | 软件类别: | 国产软件 / 编程版 / 编程工具 | | 运行环境: | WinNT/2000/XP/2003 | | 加入时间: | 2007-6-28 20:56:19 | | 下载次数: | 22226 | | 软件等级: |      | | 联 系 人: | whyned@citiz.net | | 开 发 商: | Home Page | 软件介绍:
CSM脚本语言是国人自主研发的,拥有自主知识产权(软件著作权证书号为2006SR16059)的,是世界上第一款也是迄今为止(2007年4月)唯一的一款嵌入型的,高性能的,工业强度级的,基于对象的,完全强类型的,基于寄存器虚拟机实现的静态编译型脚本语言.它是主流编译型宿主语言(C/C++/ C#/Java)在脚本领域的自然延伸.也代表着这一领域的顶尖设计水平.CSM是C Sharp Minus的简称,其语法形式大部分取自于微软的c#语言,但也有许多不同.而语义上基本与C/C++相同.CSM脚本语言有许多独特的特性使其成为最优秀的静态脚本语言之一.具体的介绍如下: CSM 脚本语言提供与主流编译型宿主语言(C/C++/C#/Java)相同或相似的语法形式和思维习惯. CSM 脚本最终生成字节码,以二进制的方式嵌入到宿主环境中,这防止了脚本文本本身的直接暴露,保护了编写者的利益.而且编译器和脚本源程序无须随应用宿主程序一同分发. CSM 编译器提供精确到某行某列的,详尽的,完全中文化的编译出错信息显示. CSM 编译器内部大量使用了虚拟内存,内存映射文件和嵌入式汇编技术,使编译速度更加快速. 支持预编译处理中的条件编译功能.(由#def / #undef / #if / #ifdef /#endif等预处理指令提供的一组预处理功能).这使脚本程序像VC++那样可以提供debug和release版本. 天生就是Unicode,所以支持中文的类名,变量名,常量名,函数名,属性(property)名. 支持sbyte,byte,short,ushort,int,uint,long,ulong整型类型,以及float,double浮点类型,和bool,char等强类型数据. 从形式语法上彻底取消了指针的使用(但是语义上还是保留的),但又不失指针操作的灵活性,CSM脚本语言在这方面作出了不小的努力. 支持类和对象的概念,并同时支持全局常量,枚举成员,常量成员,静态成员,实例成员。以及静态构造方法,静态析构方法,实例构造方法,实例析构方法,普通静态成员方法,普通实例成员方法,静态和实例属性,以及==和!=操作符重载方法. 可在方法中定义out类型的参数.并支持方法重载(method overload)功能. 支持类中成员的1,2,4,8,16字节对齐属性,这为与C/C++宿主语言进行通讯,提供了相同的内存布局结构,能够以更加直接而快速的方式操控数据. 像Java或C#那样,支持静态和实例成员的初始化表达式. 支持各种算术,逻辑,布尔运算,复合运算及强制类型转换功能. 支持各种语句,包括声明语句,表达式语句,循环语句,跳转(goto)语句,以及switch语句,特别是switch语句,采用了和编译型宿主语言一样的技术.内部实现通过使用平衡树建立跳转表的方式,大大提高比较速度,使得在1000个分支的最坏情况下比较十次,加快了运行速度. 支持静态和实例方法的回调机制(这在c/c++中被称为函数指针,而C#中被称作代理delegate),能提供一定程度上的多态特性,并且通过这种方式可实现Event机制. 支持作用域和局部对象(或称栈对象)的概念,当局部对象退出其所在的作用域时,将自动调用其析构方法,且调用的次序正好与构造的次序相反,这是最典型的C++特征. 提供快速高效的算子功能. 提供局部堆和全局堆对象的分配功能. 对堆对象实行手工的new/delete分配和释放功能,做到与宿主语言C/C++一致. 有对系统调用的跟踪功能,一旦程序发生崩溃,能自动给出崩溃的语句点,以及此时的方法调用堆栈.这有点像我们在Windows系统中常见的崩溃对话框. CSM脚本语言编译成字节码后由CSMachine虚拟机执行,CSMachine虚拟机上执行的汇编语言被称作是CSMasm汇编语言.而CSMachine虚拟机也是当今独一无二的强大的虚拟机实现之一: CSMachine虚拟机是一种完全强类型的32位虚拟机,它支持约2500条虚拟机指令,每条虚拟机指令均以嵌入式汇编语言实现,以求达到最高的运行效率. 由于CSMasm具有庞大的指令集,所以对脚本的逆向工程能起到很强的遏制作用.使得反编译CSM字节码的工作很困难,这在很大程度上保护了脚本编写者的经济利益. 利用虚拟内存和内存映射技术对CSM执行映像进行分段,如数据段,代码段,堆栈段,局部堆,全局堆,对代码段实施只读保护,这起到了沙箱保护的功能. CSMachine的堆栈尺寸可根据实际情况自动而灵活地扩大和收缩,无须象其它的脚本语言那样时刻去留意是否引发堆栈溢出. 是基于寄存器的实现方式,这种方式比嵌入型栈式虚拟机速度稍快. 是开放式虚拟机设计,只须通过Wrap/Unwrap操作对指针进行坐标系调整,不像封闭式虚拟机那样必须使用Marshal/Unmarshal进行数据块复制. 提供载入多个脚本以及一个脚本的多个副本的功能,为脚本程序的团队化开发和多线程应用提供了强而有力的技术保障.
|
| | | |