轻型脚本引擎的研究与开发

轻型脚本引擎的研究与开发

论文摘要

近年来,随着脚本技术的快速发展,为应用程序提供脚本支持已经成为实现软件可定制和可扩展的有效方案。脚本引擎是脚本解释执行的程序平台,是为应用程序提供脚本支持的技术实现。在现代工业领域的应用中,可嵌入应用程序的现存脚本引擎大多不能满足要求,它们中有些因为支持的脚本语言语法不好学,而不易于该领域用户的入门,有些则因为需要较大的时间和空间开销,而不能满足中小型应用程序的性能要求。本文在研究了当前主流脚本技术的基础上,设计并开发实现了一个轻量级脚本引擎,该脚本引擎由前端编译器和后端虚拟机组成,其中,前端编译器将脚本源程序翻译为字节码指令,分别采用了手写代码和分析程序生成器ANTLR自动生成代码两种实现方案;而后端虚拟机是一个基于堆栈机的字节码执行程序,通过执行字节码来解释脚本逻辑。脚本引擎还包含一套C++应用程序交互接口,用于将它嵌入C++实现的应用程序中,使得用户能够通过脚本调用应用程序注册的对象、函数等,从而实现应用程序的二次开发功能。脚本引擎支持的脚本语言是自主设计的Vblet脚本,Vblet是Visual Basic语言的子集,后者在非正式程序员中具有较高声誉的。Vblet删减了Visual Basic语言的部分功能特性,并且在语法特点上进行一些扩展,使得脚本更灵活,交互性更好。最后,实现了脚本引擎的具有语法高亮功能的集成开发环境。通过测试表明,本脚本引擎能够正确执行Vblet脚本,并且具有较好的性能优势,能够为应用程序提供灵活的的扩展性和定制性。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 研究背景及意义
  • 1.1.1 研究背景
  • 1.1.2 课题研究的意义
  • 1.2 脚本语言的发展及应用现状
  • 1.2.1 脚本语言的发展及其特点
  • 1.2.2 国内外对脚本语言应用的研究
  • 1.3 本文的研究工作及其论文结构
  • 第二章 脚本语言相关技术研究
  • 2.1 脚本引擎相关技术
  • 2.1.1 脚本引擎、宿主和脚本
  • 2.1.2 脚本引擎和宿主的交互方式
  • 2.1.3 脚本引擎体系结构
  • 2.2 编译器设计相关技术
  • 2.2.1 编译器概述
  • 2.2.2 前端编译的各个阶段
  • 2.2.2.1 词法分析
  • 2.2.2.2 语法分析
  • 2.2.2.3 中间代码生成
  • 2.2.3 自动代码生成和ANTLR
  • 2.3 虚拟机技术
  • 2.3.1 虚拟机概述
  • 2.3.2 堆栈虚拟机的体系结构
  • 2.3.3 与应用程序的集成
  • 第三章 前端编译器的实现
  • 3.1 词法分析器
  • 3.1.1 手写词法分析器
  • 3.1.2 ANTLR自动生成词法分析器
  • 3.2 语法分析器
  • 3.2.1 手写语法分析器
  • 3.2.2 ANTLR自动生成语法分析器
  • 3.3 符号表和作用域
  • 3.4 字节码指令的生成
  • 3.5 前端编译器的接口
  • 第四章 虚拟机及交互接口的实现
  • 4.1 虚拟机结构的实现
  • 4.1.1 虚拟机结构的实现
  • 4.1.2 堆栈结构的实现
  • 4.2 虚拟机指令系统的实现
  • 4.2.1 指令系统的特点及设计目标
  • 4.2.2 指令系统的实现
  • 4.3 虚拟机指令执行机制
  • 4.3.1 表达式的执行
  • 4.3.2 控制语句的执行
  • 4.3.3 函数调用的执行
  • 4.4 虚拟机与应用程序的接口实现
  • 第五章 脚本引擎的测试
  • 5.1 脚本引擎测试方法
  • 5.2 功能测试
  • 5.3 性能测试与分析
  • 第六章 总结及进一步的工作
  • 6.1 本文工作总结
  • 6.2 进一步的工作
  • 参考文献
  • 致谢
  • 研究成果及发表的学术论文
  • 作者及导师简介
  • 硕士研究生学位论文答辩委员会决议书
  • 相关论文文献

    • [1].沉浸式教育导向的地震求生情景剧脚本设计原理[J]. 决策探索(中) 2019(04)
    • [2].排版软件脚本化研究[J]. 中国新技术新产品 2017(07)
    • [3].基于动作脚本的文本框交互式练习题[J]. 电脑知识与技术 2016(25)
    • [4].脚本语言下三维动画技术的研究与实现[J]. 通讯世界 2016(22)
    • [5].脚本[J]. 词刊 2009(05)
    • [6].青春脚本[J]. 芳草(青春版) 2010(06)
    • [7].微课选题及脚本设计制作例谈[J]. 安徽教育科研 2018(14)
    • [8].论企业应如何扎实有效地开展“无脚本演练”[J]. 山东工业技术 2017(13)
    • [9].教学设计在教育游戏脚本设计中的应用探讨——以某款教育游戏的脚本设计为例[J]. 软件导刊(教育技术) 2015(07)
    • [10].调用脚本 给Edge配装备[J]. 电脑爱好者 2016(07)
    • [11].为什么脚本无法使用[J]. 电脑爱好者 2017(17)
    • [12].用安全扩展拦截无用的脚本[J]. 电脑迷 2015(03)
    • [13].当前页面脚本发生错误的解决办法[J]. 计算机与网络 2012(20)
    • [14].协作脚本的研究综述[J]. 电化教育研究 2010(05)
    • [15].利用脚本封装抵御跨站脚本攻击[J]. 广州大学学报(自然科学版) 2010(05)
    • [16].微课脚本设计质量提升策略研究[J]. 广西职业技术学院学报 2019(04)
    • [17].脚本理论视角下的明喻意象翻译研究[J]. 长江大学学报(社科版) 2014(05)
    • [18].美国脚本阅读方案:评析与启示[J]. 学园 2012(01)
    • [19].脚本理论视角下行为文化的翻译[J]. 中国俄语教学 2012(02)
    • [20].脚本理论观照下的电影字幕翻译[J]. 电影文学 2012(06)
    • [21].协作脚本技术及其发展方向研究[J]. 中国电化教育 2011(02)
    • [22].基于社会脚本理论的英语听力认知策略研究[J]. 吉林工程技术师范学院学报 2009(07)
    • [23].脚本系统问题解决方案[J]. 程序员 2009(09)
    • [24].多媒体课件的脚本设计与制作[J]. 中等职业教育(理论) 2008(02)
    • [25].利用动作脚本制作动态进度条[J]. 电脑知识与技术 2020(05)
    • [26].列控系统脚本录制工具的研究与实现[J]. 铁道通信信号 2017(01)
    • [27].类C脚本架构设计及在电力系统中的应用[J]. 计算机技术与发展 2017(03)
    • [28].脚本语言及其应用[J]. 通讯世界 2016(16)
    • [29].微课程脚本设计的意义与要求[J]. 江苏第二师范学院学报 2015(06)
    • [30].自制脚本也能监控游戏[J]. 电脑爱好者 2011(10)

    标签:;  ;  

    轻型脚本引擎的研究与开发
    下载Doc文档

    猜你喜欢