欢迎来到天天文库
浏览记录
ID:5267307
大小:248.58 KB
页数:5页
时间:2017-12-07
《嵌入式数据库中利用lex,yacc设计sql编译器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、万方数据第器旁年嚣碍期计算机技术与发展vol17N。1lODMPUTERT目口m咂)LoGYANDDEVELOPMENTNov.2007嵌入式数据库中利用Lex,Yacc设计SQL编译器夏铭,陆阳,盛业兴,李大勇(合肥工业大学计算机与信息学院,安徽合肥230009)摘要:随着嵌人式数据库系统的不断发展,对其数据查诲的能力提出了新的要求。基于自行设计的嵌入式数据库系统.利用Lex和YaocT具宴现了嵌^式SOL编译器的设计.进一步对所生成的语法树进行了初步的优化研究。结果表明此编译器大大增强支持SOL查询语言的能力。关键词:嵌人式数据库;Lex;Yac
2、c;SOL中图分类号:Tff314文献标识码:A文章编号:1673—629X(2007)11—0121—04DesignofSQLCompilerwithLexandYaccBasedonEmbeddedDatabaseXIAMing,LUYang,SHENGYe-xing。LIDa-yong(CollegeofCamput日andIrfformatlon,HefeiUniversityofT∞hT】0l。gy,Hdd230009,Claim)Abstract:Subsequeatwi山廿md目mkP删ofembeddeddataba.se目/ste
3、m,面=lprow册bindataqueryaremgeaflyrequired.Basedonthe幽ddeddatabasesystemhavedesigned.theS(!Lco'aplisris㈣fully呻lan∞ted墙ingtookofLex“Ynee.Furthermorelpfel证面myoptimizationr瞄eaIch髂havebeenInOlx*edonthegener址edsynt,RxⅢmbsbt啭.Thell乳tltindicat岛tIl丑tthe优ln吲盯把.ma蛐lyreinforcestheSOLquery∞p
4、acj6目.KeywDrds:embeddeddatabase;k;Yacc;SOLO引言评价嵌入式数据库的关键是它支持SQL语言的程度,一个高效安全的SOL编译器是一个优秀嵌入式数据库的核心和基础。SOL作为关系数据库语言的国际标准,向用户提供了一个易于使用的、非过程化的、描述性的语言来存取数据库中的数据。一般的数据库系统应该能提供一套查询系统,或支持SQL92标准的子集,查询处理实现数据库系统中最基本、最常用的一些查询操作,并且具备较高的执行效率。但对于SQL这样复杂庞大的语法,在嵌入式数据库中为之构建完善且可靠的词法分析器和语法分析器,具有一定
5、的难度和工作量,即使是SQL的子集。Lex和Yaee作为优秀的编译器自动生成工具,适合于各种编译器的实现。通过利用Lex和Yaee工具,可以方便地写出SQL的词法和语法分析脚本,生成一个集所有SOL信息的语法树。这样就可以生成一个SQL编译器。收稿日期:2007—02—09作者简介:夏铭(1979一),女,安徽庐江人,台肥工业大学硕士研究生,安徽工业学院教师,研究方向为嵌人式系统应用;陆阳,教授.博士生导师,研究方向为计算机控制、嵌入式系统应用、现场总线技术。探讨了如何在嵌人式删【11开发环境中,以I七x和Yacc语言为基础,利用编译程序构造工具Fl
6、一和Bi30nYacc自动生成完成嵌人式数据库中9QL查询的词法和语法分析器。与直接写出SOL查询编译器相比。自动生成的SOL编译器具有功能完善、简洁明了、易于修改和扩充等突出特点。下面将具体介绍Lex和Yacc的基本原理以及实现嵌入式SQL编译器的词法语法分析,最后针对生成的sQL语法树提出适用于嵌入式系统的优化策略。l编译器设计原理1.1Lex和Yacc的基本原理1)L一词法分析工具是根据正规式[21和确定有限状态自动机原理(Ⅸ、A),对所输人的一些字符进行线性扫描分析,产生一个个单词符号,井返回单词符号的类型码。一个确定有限状态自动机M是一个五
7、元组M=(s.∑,d,SO,F)其中(1)S是一个由有限个状态组成的集合;(2)∑是一个有穷字母集,它的每个元素称为输入字符;万方数据·122·计算机技术与发展第17卷(3)d是一个从sx∑至S的单值部分映射,如8(s,n)zs7,其中s∈S,口∈∑,意味着当现在状态为s,输入字符为口时.将转换到状态S’;(4)so∈S为初始状态;(5)F∈S是一个终止状态。有限自动机对输入的字符进行扫描.根据读人进行状态转移,从而分析出所有单词符号。用Lex工具生成词法分析器.首先要写出其输入文件,经过Lex编译程序生成词法分析器.然后利用所生成的词法分析器对所输
8、人的串进行词法分析,输出单词符号和类型码,供Yacc使用。2)字面上理解Yacc是一个编译程序的编译程序,但
此文档下载收益归作者所有