毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

查询语句QL的语义分析和实现 第6页

更新时间:2009-6-4:  来源:毕业论文
查询语句QL的语义分析和实现 第6页
4 系统设计
4.1 概要设计
语义分析的主要任务是,根据语法结构检查是否有语义错误,分析其含义,并用某种机器内部表示形式表示出来,或者直接生成目标指令。简单地说,就是分析语法结构含义,表示成中间语言或生成目标指令,然后使用汇编语言等,语义处理例如:变量的存储分配;表达式的求值;语句的翻译(中间代码的生成)常见的中间语言表示形式有逆波兰式、三元式、四元式和树形。
本文的语义分析是在综合编译原理、程序设计,结合自主知识产权数据库等有关知识的基础上,直接使用语法制导翻译来处理的。在进行语法分析的同时,进行语义分析,包括进行语义检查和语义处理,其中语义检查主要有类型匹配,边界是否溢出,运算、文数等,语义检查无误后,忽略显示中间语言或代码的形式,直接执行语义子动作,为上层SQL语句提供函数式接口,最主要的是对条件的翻译,对逻辑表达式的计算。
4.2 功能设计
根据概要设计,要实现的功能如图 4 1
具体实现的功能如下:
(1) 在语法分析正确接受后,进行源程序进行语义检查,包括类型、运算、文数、越界等,如果有类型不匹配等错误,给出提示;如果语义正确,进行语法制导翻译,执行语义子动作。
(2) 对查询语句进行语义分析时,能正确分析出表名和列名,为正确的查询提供条件。
(3) 对条件翻译时,尤其要合理正确的解决逻辑表达式的计算问题,其中逻辑表达式只有字段名、常数(数字、字符串等)、运算符构成;实现Condition(x)函数,对记录x来说,计算出函数值是0或1。
(4) 对同一个表能对不同的条件进行正确的翻译,实现不同的表不同条件的正确翻译。
(5) 在翻译的过程中,实现对条件的优化,如条件中含有关键字,就能实现优化。
(6) 实现对单表和多表的查询。
 
图 4 1 语义分析流程图
4.3 接口设计
4.3.1 用户接口
用户要输入需要查询的语句,如果符合定义的语法结构,语义分析正确,将给出正确的查询结果。
4.3.2 内部接口
内部接口参数形式约定如图 4 2
根据图 4 2接口参数具体为:
(1)第五层向第四层传递词法分析表;
(2)第三层向第四层传递数据库表列名的索引值(用一文数组表示);
(3)语义检查无误后,分析出表名和相应的列名,并对条件判断是真或假,为第三层提供函数接口。
 
图 4 2 接口参数图
4.3.3 外部接口
本系统同外界的所有接口的安排包括软件与硬件之间的接口:windows2000以上及相应的设备,本系统与各种支持的软件之间的接口关系:必须可以支持Visual C++6.0的运行。
 
5 实现
5.1 实现环境
程序的开发环境是Visual C++6.0,它不仅是一个重要C++编译器,它还提供了一套综合的开发工具和良好的可视化编程环境。在这个环境下,用户可以简便快捷地对C和C++应用程序进行各种操作,例如建立、打开、保存、编辑、编译、链结、和调试等。C++语言的特征体现在C++程序设计语言在C语言的“增强”方面:C语言的扩充,面向对象的机制—封装和数据隐藏、继承与重用、多态。它提供指针的应用。
实现环境如图 5 1所示:
 
图 5 1 程序实现环境
5.2 分析出表名和列名的设计与实现
定义一个表结构,包括:表的名称,该表所有相关的列名,及列数。其中表结构:Struct Tables{char *TabName; //表名,char *ColNames[MAX]; //该表所有相关的列名,int iColCount; //列数   };分析后与词法分析表中的单词比较,如果语义检查无误,将得到所要结果,如图 5 2。
图 5 2 表名、列名结果图
语义检查错误,不合定义的语法的如:select table.name,table.age
from table      where age>=34 and table.sex=  结果见图 5 3:
 
图 5 3 语义检查错误,不合语法的结果图

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页

查询语句QL的语义分析和实现 第6页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。