ST-C#脚本编译器的研究和实现

来源 :浙江工业大学 | 被引量 : 0次 | 上传用户:zxhouxingzx
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在应用软件中嵌入一个脚本编译器,能使软件支持脚本语言,用户可以通过编写脚本程序来对软件进行二次开发,从而提升软件的功能,更符合用户的需求。这种软件有很好的扩充性和通用性。目前越来越多的应用软件基于.Net开发,作者设计了能提供给这些应用软件使用的ST-C#脚本语言,并在《股市神探》软件中成功应用。本文结合实践,阐述了笔者研究和开发ST-C#脚本编译器及其相关部件的过程。脚本语言的设计涉及到语言的定义、虚拟机代码的格式定义、编译器和虚拟机的开发。对ST-C#脚本语言进行定义时,采用了类C#的语法,支持包含多种运算符、字符串、数组和函数的表达式运算,支持自由的程序书写风格、函数重载等。还定义了函数库的构造,将函数库分为内部函数库、系统函数库和用户函数库,使脚本语言达到实用要求。为了加快脚本程序的运行速度,需要将脚本程序转换成相应的虚拟机代码提供给虚拟机执行,一般的虚拟机指令系统包含了类似汇编指令的底层操作指令。为了降低编译器开发的难度和简化虚拟机的设计,在对虚拟机代码的格式定义时,设计了基于最小指令数量的虚拟机指令集,利用表达式树存放表达式的编译结果,结果仅用四条指令就实现了程序的所有控制,虽然降低了表达式的运算速度,但也大大降低了编译器和虚拟机的开发难度。还探讨了ST-C#脚本编译器将脚本语言编译成虚拟机代码的过程,分析了词法分析、语法分析和虚拟机代码生成时所采用的技术,由于虚拟机代码设计得比较抽象,编译器的整个实现都与运行环境无关,即相当于普通编译器的前端设计。而虚拟机则是对脚本语言的运行支持,ST-C#脚本语言的虚拟机分成指令解释器和表达式计算部件两部分,指令解释器负责脚本控制代码的执行,表达式计算部件负责表达式的运算,这样分开设计的好处是虚拟机的设计大大简化,结构清晰。最后对内嵌了该脚本编译器的软件《股市神探》做了介绍,分析了脚本功能对该软件运行的支持过程,从而验证了ST-C#脚本编译器的实用性。
其他文献
安全协议也称密码协议,是建立在密码体制基础上的高互通的消息交换协议,它运行在计算机通信网或分布式系统中,其目的是在网络环境中提供各种安全服务。安全协议是构建安全网络环
基于Topic的Blog的隐含社区发现为Blog的应用研究开辟了一个很有前途同时也具有相当挑战性的方向。随着Internet在人们生活中的广泛应用,Blog作为一种新型的网络媒介交流工具
高可信软件技术是软件理论研究和工程实践领域关注的焦点之一。近年来,越来越多的形式化方法被应用于提高软件质量的研究上。软件测试是保证软件产品可靠性和正确性的有效手段
随着互联网以及信息化的迅速发展,声纹识别技术在金融、证券、社保、电子商务、银行等远程客户服务的身份确认和公安、军队安全部门的特定人身份自动检测和认证中具有广泛的
通过合理建模,工程与科学计算领域很多物理现象的模拟都可归结为偏微分方程的求解。随着计算机技术和计算方法的发展,复杂的工程问题可以采用离散化的数值计算方法,并借助计算机
蜜罐技术是一种新兴的基于主动防御的网络安全技术,目前正日益受到网络安全领域的重视。蜜罐主要通过精心布置的诱骗环境来吸引和容忍入侵者的攻击,进而了解入侵者的攻击思路、
随着Interact的飞速发展,Web已经发展成为一个全球的、巨大的、分布和共享的信息空间,为用户提供了一个极具价值的资源。但因Interact所固有的开放性、动态性与异构性,使得用户
随着3G网络的发展和彩信手机的普及,在现有短消息业务基础上,出现了一种能进一步提升信息服务表现能力的服务:多媒体消息服务MMS(Multimedia Messaging Service),或叫彩信。彩信
随着计算机网络的广泛应用,计算机网络的安全问题也日益引起人们的重视。在网络安全中,各种安全服务都是基于安全协议的,这使得安全协议的安全性变得尤为重要。在过去的二十多年
互联网的飞速发展使人们可以很方便地从网络上获取多媒体数据,同时也给版权保护这一问题提出了新的挑战。数字水印技术作为一种新的有效的数字产品版权保护的技术手段,是信息