| 【中文题名】 | ST-C#脚本编译器的研究和实现 |
| 【英文题名】 | Research and Implementation of ST-C# Scripting Compiler |
| 【学科专业】 | 计算机应用技术 |
| 【论文级别】 | 硕士论文 |
| 【投稿时间】 | 2007-11-6 |
| 【中关键词】 | ,,,,, |
| 【英关键词】 | ST-C# scripting language,virtual machine instruction,scripting compiler,virtual machine, |
| 【分类导航】 | 工业技术>自动化技术、计算机技术>计算技术、计算机技术>计算机软件>编译程序、解释程序> |
| 【论文摘要】 |
在应用软件中嵌入一个脚本编译器,能使软件支持脚本语言,用户可以通过编写脚本程序来对软件进行二次开发,从而提升软件的功能,更符合用户的需求。这种软件有很好的扩充性和通用性。目前越来越多的应用软件基于.Net开发,作者设计了能提供给这些应用软件使用的ST-C#脚本语言,并在《股市神探》软件中成功应用。本文结合实践,阐述了笔者研究和开发ST-C#脚本编译器及其相关部件的过程。
脚本语言的设计涉及到语言的定义、虚拟机代码的格式定义、编译器和虚拟机的开发。对ST-C#脚本语言进行定义时,采用了类C#的语法,支持包含多种运算符、字符串、数组和函数的表达式运算,支持自由的程序书写风格、函数重载等。还定义了函数库的构造,将函数库分为内部函数库、系统函数库和用户函数库,使脚本语言达到实用要求。
为了加快脚本程序的运行速度,需要将脚本程序转换成相应的虚拟机代码提供给虚拟机执行,一般的虚拟机指令系统包含了类似汇编指令的底层操作指令。为了降低编译器开发的难度和简化虚拟机的设计,在对虚拟机代码的格式定义时,设计了基于最小指令数量的虚拟机指令集,利用表达式树存放表达式的编译结果,结果仅用四条指令就实现了程序的所... |
| 【论文题纲】 |
|
摘要 |
5-7 |
|
ABSTRACT |
7-12 |
|
第一章 绪论 |
12-20 |
|
1.1 研究的目的与意义 |
12-13 |
|
1.2 国内外研究现状 |
13-15 |
|
1.3 研究的内容和目标 |
15-18 |
|
1.3.1 内嵌ST-C |
15-17 |
|
1.3.2 内嵌ST-C |
17-18 |
|
1.3.3 研究的主要创新点 |
18 |
|
1.4 论文的体系结构 |
18-20 |
|
第二章 ST-C |
20-34 |
|
2.1 单词(token)和语言的描述工具 |
20-22 |
|
2.1.1 EBNF |
20-21 |
|
2.1.2 文法 |
21 |
|
2.1.3 正规式 |
21-22 |
|
2.2 ST-C |
22-27 |
|
2.2.1 关键字的定义 |
22 |
|
2.2.2 数据类型的定义 |
22-23 |
|
2.2.3 函数 |
23-24 |
|
2.2.4 语句 |
24-26 |
|
2.2.5 表达式和运算符 |
26-27 |
|
2.3 ST-C |
27-31 |
|
2.3.1 支持自由的程序书写风格 |
27 |
|
2.3.2 脚本文件的约定 |
27-28 |
|
2.3.3 函数库的构造 |
28-31 |
|
2.4 一个ST-C |
31-34 |
|
第三章 ST-C |
34-41 |
|
3.1 虚拟机代码设计概述 |
34-35 |
|
3.2 表达式树的表示 |
35-37 |
|
3.3 基于最小指令数量的虚拟机指令集设计 |
37-39 |
|
3.3.1 最小数量的虚拟机指令 |
37-38 |
|
3.3.2 虚拟机指令的格式 |
38-39 |
|
3.3.3 最小数量的指令集设计的优缺点 |
39 |
|
3.4 一个例子 |
39-41 |
|
第四章 编译器设计与实现 |
41-54 |
|
4.1 词法分析 |
41-49 |
|
4.1.1 单词类型定义 |
41-42 |
|
4.1.2 单词存储设计 |
42 |
|
4.1.3 词法分析过程的设计 |
42-49 |
|
4.2 语法分析 |
49-51 |
|
4.2.1 语句块的分析 |
49-51 |
|
4.2.2 表达式分析 |
51 |
|
4.3 ST-C |
51-54 |
|
第五章 虚拟机的设计 |
54-61 |
|
5.1 虚拟机设计概述 |
54-55 |
|
5.2 指令解释器的设计 |
55-56 |
|
5.3 表达式树计算部件的设计 |
56-60 |
|
5.4 ST-C |
60-61 |
|
第六章 ST-C |
61-71 |
|
6.1 软件简介 |
61-64 |
|
6.1.1 软件特点 |
61-63 |
|
6.1.2 软件内部构造 |
63-64 |
|
6.2 软件中的ST-C |
64-70 |
|
6.2.1 由ST-C |
64-65 |
|
6.2.2 利用ST-C |
65-66 |
|
6.2.3 动态脚本生成在股海搜索中的作用 |
66-68 |
|
6.2.4 利用脚本实现预警功能 |
68-69 |
|
6.2.5 动态感知的脚本实现 |
69 |
|
6.2.6 股市排行榜的脚本实现 |
69-70 |
|
6.3 我所做的工作 |
70-71 |
|
第七章 总结和展望 |
71-73 |
|
7.1 论文主要做的工作和创新点 |
71 |
|
7.2 实施和应用情况 |
71-72 |
|
7.3 研究工作的不足及改进的思考 |
72-73 |
|
参考文献 |
73-76 |
|
致谢 |
76-77 |
|
攻读学位期间发表的学术论文目录 |
77 |
|
| 【DOI】 | LunWen.ID:2.2008.362618 |