论文摘要
现代关系数据库产品,除提供结构化查询语言SQL外,还需要提供数据库服务器端业务逻辑处理语言,该语言将具有数据管理能力和数据处理能力。在数据库学术界和产业界的共同努力下,设计了嵌入式SQL语言。嵌入式SQL语言就是将SQL语句直接嵌入到程序的源代码中,与其他程序设计语言语句混合。该语言综合了SQL语言的数据管理能力和过程式语言的数据处理能力,是一种高性能、可移植的事务处理语言,正受到越来越广泛的重视和应用。 GKD-ESQL是数据库管理系统GKD-Base的嵌入式SQL语言预编译器及运行环境。本文主要讨论GKD-ESQL预编译器的设计和实现技术,首先讨论了嵌入式SQL语言的基本结构和语句成分,在此基础上,给出了GKD-ESQL系统的总体框架设计。为讨论预编译器设计和实现的需要,先介绍了论文实现工作中用到的编译器构造工具flex和bison,然后,讨论了预编译器的两个主要模块—词法分析模块和语法分析模块的设计和实现技术。词法分析模块实现了完成标识符识别工作的确定有限自动机,把ESQL源文件作为输入流,识别关键字、标识符、C变量等,并将识别出来的标识符输出给语法分析模块。语法分析模块从词法分析模块接收标识符,根据ESQL语言给出的语法规则对ESQL语句和C语句进行语法检查和语义分析。它将ESQL语句转换成C语言的变量声明或对ESQL运行库函数的调用,并输出到目标C文件中;将C语句原样输出到目标C文件中。 ESQL运行库是GKD-ESQL设计和实现中非常重要的组成部分。经过预编译器的处理,用ESQL语言写的应用程序已经转换成纯C应用程序,对该语言的编译需要调用ESQL运行库实现的函数,实现对GKD-Base数据库的访问。预编译器将大多数可执行SQL语句转换为ESQLdo()函数,并输出到目标C文件中。ESQL运行库的核心工作就是实现该函数的功能。它通过GKD-Base提供的XPI函数访问GKD-Base数据库,执行对数据库的操作。 论文还详细讨论了动态SQL语句的处理方法的设计与实现,实现了三种不同形式的动态SQL语句。动态SQL方法3是其中最难的一种,它采用游标方式处理动态SQL语句。对游标语句的处理分为两部分,一部分是游标的编译,另一部分是游标的解释执行。 最后,讨论错误处理机制的设计和实现。GKD-ESQL系统具备一个精巧的错误处理机制,对ESQL语句进行过程性的控制。根据执行SQL语句返回的SQLSTATE,应用程序可以按照用户需求设置不同的控制流。ESQL程序对SQL语句执行错误的检测和处理方法有两种:一种是SQL状态变量法,另一种是SQLCA检测法。 论文中所讨论的技术已经在GKD-Base中得到实现,该系统目前己能稳定运行,并且与Oracle兼容。
论文目录
相关论文文献
- [1].方舟编译器初探[J]. 科技与创新 2019(23)
- [2].一种适用于可信编译器的源语言转换与检查框架[J]. 中国科技论文 2017(14)
- [3].华为方舟编译器开源官网正式上线:源代码已开放下载[J]. 电脑知识与技术(经验技巧) 2019(10)
- [4].快速掌握编译器设计方法[J]. 软件 2018(05)
- [5].一种新的大容量SRAM编译器设计[J]. 微电子学 2015(04)
- [6].可信编译器构造的翻译确认方法简述[J]. 计算机科学 2014(S1)
- [7].计算智能技术在分布式多编译器中的应用分析[J]. 节水灌溉 2011(05)
- [8].优化编译器的设计[J]. 群文天地 2011(14)
- [9].关于C编译器对——运算编译的研究[J]. 电脑知识与技术 2010(18)
- [10].基于编译器优化的嵌入式软件缺陷分析方法[J]. 航天控制 2016(05)
- [11].一种农业设备嵌入式数据库预编译器设计与实现[J]. 农业网络信息 2012(03)
- [12].编译器无关性编码在微控制器中的优势[J]. 单片机与嵌入式系统应用 2010(02)
- [13].可信编译器关键技术研究[J]. 计算机工程与科学 2010(08)
- [14].可视编译器的设计与实现[J]. 计算机与现代化 2010(10)
- [15].类高级语言编译器的设计与实现[J]. 内蒙古科技与经济 2009(16)
- [16].超强通用编译器优化工具 准确率是传统方法的5倍[J]. 计算机与网络 2020(02)
- [17].一种静态的编译器重复缺陷报告识别方法[J]. 中国科学:信息科学 2019(10)
- [18].魂芯DSP上复数类型的支持和优化[J]. 计算机系统应用 2017(09)
- [19].软件/开发工具[J]. 今日电子 2014(02)
- [20].出具证明编译器中代码优化与程序规范转换[J]. 小型微型计算机系统 2011(07)
- [21].NI LabVIEW2010优化编译器,加速代码执行[J]. 电子测量技术 2010(08)
- [22].运行速度大突破 华为《方舟编译器》详解[J]. 计算机与网络 2019(09)
- [23].典型编译器自动向量化效果评估与分析[J]. 计算机科学 2013(04)
- [24].一种支持软件演化过程描述语言的编译器的设计分析[J]. 绵阳师范学院学报 2013(02)
- [25].基于C语言编译器的词法分析浅析[J]. 电脑知识与技术 2013(24)
- [26].C-编译器的扫描程序与分析程序设计[J]. 信息与电脑(理论版) 2012(14)
- [27].FANUC宏编译器的应用[J]. 精密制造与自动化 2008(04)
- [28].高速SRAM编译器时序算法[J]. 电子与封装 2016(07)
- [29].出具证明编译器中线性整数命题证明的自动生成[J]. 小型微型计算机系统 2011(06)
- [30].即时编译器辅助的垃圾收集中的插桩算法研究[J]. 小型微型计算机系统 2010(04)