一个由国人设计的独立型静态强类型脚本语言-CSM

    CSM脚本语言是我自主研发的,拥有自主知识产权(软件著作权证书号为2006SR16059)的,是世界上第一款也是迄今为止(2007年8月)唯一的一款独立型的,高性能的,工业强度级的,基于对象的,完全强类型的,基于寄存器虚拟机实现的静态编译型脚本语言.它是主流编译型宿主语言(C/C++/ C#/Java)在脚本领域的自然延伸.也代表着这一领域的顶尖设计水平.它同时也是十大国产编程语言之一.CSM是C Sharp Minus的简称,其语法形式大部分取自于微软的c#语言,但也有许多不同.而语义上基本与C/C++相同.CSM脚本语言及其相关软件由约20万行C++代码和约4万行嵌入式汇编语言编写而成.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++特征.
    支持assert(即断言)机制.
    通过设置软中断处理器,实现脚本语言向宿主语言函数的回调.
    提供快速高效的算子功能.
    提供脚本堆对象的分配功能.
    支持多线程.包括线程的优先级,等待系列函数(WaitForObjects),以及临界区(Critical Section),互斥量(Mutex),信号量(Semaphore),事件(Event),定时器(WaitableTimer)等线程同步对象.

    CSM脚本语言编译成字节码后由CSMachine虚拟机执行,CSMachine虚拟机上执行的汇编语言被称作是CSMasm汇编语言.而CSMachine虚拟机也是当今独一无二的强大的虚拟机实现之一:
CSMachine虚拟机是一种完全强类型的32位虚拟机,它支持约2500条虚拟机指令,每条虚拟机指令均以嵌入式汇编语言实现,以求达到最高的运行效率.
    由于CSMasm具有庞大的指令集,所以对脚本的逆向工程能起到很强的遏制作用.使得反编译CSM字节码的工作很困难,这在很大程度上保护了脚本编写者的经济利益.
    利用虚拟内存和内存映射技术对CSM执行映像进行分段,如数据段,代码段,堆栈段,堆段,对代码段实施只读保护,这起到了沙箱保护的功能.
    CSMachine的堆栈尺寸可根据实际情况自动而灵活地扩大和收缩,无须象其它的脚本语言那样时刻去留意是否引发堆栈溢出.
    是基于寄存器的实现方式,这种方式比嵌入型栈式虚拟机速度稍快.
    是开放式虚拟机设计,只须通过Wrap/Unwrap操作对指针进行坐标系调整,不像封闭式虚拟机那样必须使用Marshal/Unmarshal进行数据块复制.
    提供载入多个脚本以及一个脚本的多个副本的功能,为脚本程序的团队化开发和多线程应用提供了强而有力的技术保障.

更多内容请参看本人的个人网站 www.smartcsm.cn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值