欢迎来到天天文库
浏览记录
ID:32066654
大小:2.16 MB
页数:70页
时间:2019-01-31
《st-c#脚本编译器的研究和实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、浙江工业大学硕士学位论文ST-C卿本编译器的研究和实现摘要在应用软件中嵌入一个脚本编译器,能使软件支持脚本语言,用户可以通过编写脚本程序来对软件进行二次开发,从而提升软件的功能,更符合用户的需求。这种软件有很好的扩充性和通用性。目前越来越多的应用软件基于.Net开发,作者设计了能提供给这些应用软件使用的ST-C#脚本语言,并在《股市神探》软件中成功应用。本文结合实践,阐述了笔者研究和开发ST-C#脚本编译器及其相关部件的过程。脚本语言的设计涉及到语言的定义、虚拟机代码的格式定义、编译器和虚拟机的开
2、发。对ST-C#脚本语言进行定义时,采用了类c柏勺语法,支持包含多种运算符、字符串、数组和函数的表达式运算,支持自由的程序书写风格、函数重载等。还定义了函数库的构造,将函数库分为内部函数库、系统函数库和用户函数库,使脚本语言达到实用要求。为了加快脚本程序的运行速度,需要将脚本程序转换成相应的虚拟机代码提供给虚拟机执行,一般的虚拟机指令系统包含了类似汇编指令的底层操作指令。为了降低编译器开发的难度和简化虚拟机的设计,在对虚拟机代码的格式定义时,设计了基于最小指令数量的虚拟机指令集,利用表达式树存放表
3、达式的编译结果,结果仅用四条指令就实现了程序的所有控制,虽然降低了表达式的运算速度,但也大大i浙江工业大学硕士学位论文降低了编译器和虚拟机的开发难度。●。‘还探讨了ST-C#脚本编译器将脚本语言编译成虚拟机代码的过程,分析了词法分析、语法分析和虚拟机代码生成时所采用的技术,由于虚拟机代码设计得比较抽象,编译器的整个实现都与运行环境无关,即相当于普通编译器的前端设计。而虚拟机则是对脚本语言的运行支持,ST-C#脚本语言的虚拟机分成指令解释器和表达式计算部件两部分,指令解释器负责脚本控制代码的执行,表
4、达式计算部件负责表达式的运算,这样分开设计的好处是虚拟机的设计大大简化,结构清晰。最后对内嵌了该脚本编译器的软件《股市神探》做了介绍,分析了脚本功能对该软件运行的支持过程,从而验证了ST-C#脚本编译器的实用性。’关键词:ST-C#脚本语言,虚拟机指令集,脚本编译器,虚拟机浙江工业大学硕士学位论文RES础岖CH√6心DIMPLI!ME全ⅡATIONOFST-C弹SCRIPTINGCOMPILERABSTRACTAnembeddedscriptingcompilercansuppoathescrip
5、tinglanguageintheapplicationsoftwareandsupportsecondarydevelopmentbyuser—definedscripts,thusbeaermeetstheusers’requirementsandimprovestheextensibilityanduniversalityofthesoftware.Furthermore,moreandmoreapplicationsaredevelopedbasedOilDotNetrecently.In
6、thispaper,ascriptingcompilernamed“ST-C#"’isdevelopedfortheabove—mentionedDotNetbasedsoftwareandimplementedinthe“StockSearching”softwaresuccessfully.Theinvolvedprocessesofdesigningascriptinglanguagecontaindefinitionsofthelanguage;formatofthevirtualmach
7、ine,thedevelopmentofthecompilerandvirtualmachine.Our“ST-C妒’languageissimilartotheC撑languageforthesyntaxandsuppoftsabundantoperationswithoperators,characterstrings,arraysandfunctions,thefreewritingstyle,functionoverloadingandSOOn.Moreover,tosupportreal
8、—time,the:塑堡三些奎竺堡主堂篁笙壅functionsofthe“ST-C#”aredividedintothreelibraries:intrinsicfunctionlibraries,systemicfunctionlibrariesanduser—definedlibraries.Inordertospeeduprunningscripts,scriptsshouldbechangedintovirtualmachinecodeandprovidedforthevi
此文档下载收益归作者所有