全文总字数:4150字
1. 研究目的与意义(文献综述)
根据tiobe index for february2020的数据,go语言去年来的发展是迅速的,在2019一年中就上升了7个名次,这门年轻的编程语言只用了几年就进入了主流编程语言的行列之中。在最近发布的一份2019年十大企业级编程语言榜单中,go 语言排在第4位,在它前面的只有 javascript、java 和 python 这三门历史悠久的编程语言。并且go语言近些年开始在国内受到欢迎,腾讯、字节跳动等国内互联网大公司开始广泛使用go语言作为主要的后端开发语言。
随着go语言的广泛应用于大规模软件开发过程中,go语言与数据库的交互变得越来越频繁,其对数据的处理也逐渐变得复杂。数据之间的存储、异构、检索与整合,在go语言平台中变得越来越重要。
对于大型软件的数据处理来说,我们可以看到,首先是数据本身类型的复杂性越来越高,其次是数据之间的联系与交叉也越来越复杂。为了解决该问题,软件系统中的数据处理越来越趋近于数据库管理系统中的处理方式,所以在.net framework中诞生了linq(语言集成查询)。这一方面这是利用了一般开发者对于sql的熟悉,另一方面也是利用sql的强表达力的特性。但是go语言中缺少类似的特性,所以也缺少一种良好的数据处理的工具。
2. 研究的基本内容与方案
基本内容:
本系统基原生go语言环境开发,使用antlr实现sql的lexer与parser。根据构造的语法树对sql语句进行后端解释执行,其中将json格式与数据库对象对应,使之基于go语言实现类似语言集成查询的功能,并且实现存储的数据对象的自动转换与sql查询的相关优化工作,最终实现一个高效快捷并且数据对象方便转化的sql解释器。
3. 研究计划与安排
(1)2020/1/19—2020/2/28:确定选题,查阅文献,外文翻译和撰写开题报告;
(2)2020/3/1—2020/4/30:系统架构、程序设计与开发、系统测试与完善;
4. 参考文献(12篇以上)
[1]e. begoli, j. camacho-rodríguez, j. hyde, m. j. mior, d. lemire. apache calcite: afoundational framework for optimized query processing over heterogeneous datasources[j]. international conference on management of data acm sigmod,p.221-230, 2018.
[2]joseph m. hellerstein, michael stonebraker and james hamilton.architecture of a database system[m]. foundations and trends in databases,2007.
