编译原理上机报告.doc

编译原理上机报告.doc

ID:52214982

大小:92.17 KB

页数:18页

时间:2020-03-25

编译原理上机报告.doc_第1页
编译原理上机报告.doc_第2页
编译原理上机报告.doc_第3页
编译原理上机报告.doc_第4页
编译原理上机报告.doc_第5页
资源描述:

《编译原理上机报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、编译原理上机报告《DBMS的设计与实现》即miniSQL专业:计算机科学与技术班级:0308142011年05月08日目录1项目概况31.1人员组成及分工31.2项目完成情况42项目实现方案——编译部分52.1编程环境及工具52.2词法分析52.3语法分析63项目实现方案——DBMS部分123.1物理结构123.2主要功能154报告总结184.1上机心得181项目概况1.1人员组成及分工项目miniSQL实现简单的SQL语句功能,数据类型仅支持INTCHAR类型。以学会yacc&lex的使用,加深对于数据库管理系统的理解。项目分为词法分析、语法分析、存储结构设计与语义实现四个方面。

2、其中黄建财负责词法分析,王志彪负责语法分析,袁兆祎设计数据库系统的存储结构以及语法数结构,刘德龙完成数据库的语义实现和报告的撰写。项目总体流程:词法分析输出词法单元语法分析语法树存储信息语法树结构到物理结构的转换利用结构信息处理执行语句语义分析阶段1.2项目完成情况语法分析阶段实现识别上机要求的全部SQL语句。miniSQL实现语句有:1.CREATEDATABASE创建数据库2.USEDATABASE选择数据库3.CREATETABLE创建表4.SELECTFROMWHERE查询5.INSERTINTOVALUES插入元组6.DELETE删除元组7.DROPTABLE删除表8.S

3、HOWTABLES显示所有表的名称9.QUIT对于删除语句:6.DELETE删除元组7.DROPTABLE删除表数据库系统对于表和元组的删除操作和操作系统类似,并为真正删除而是设置删除标记,这就需要前期数据结构设计增加标志域。删除数据时只需设标志域为0(假设1数据有效)。2项目实现方案——编译部分2.1编程环境及工具Lex&Yacc工具:parsergeneratorC编译器:visualc++6.02.2词法分析词法分析不仅要实现识别miniSQL的关键字,还需识别相关符号以及标识符和数字。符号正规式:";"

4、"("

5、")"

6、"'"

7、"<"

8、">"

9、"="

10、"!"

11、"*"

12、'''

13、

14、'"'

15、","[]空白符正规式,即忽略空格数字:[0-9]+标识符:[A-Za-z][a-zA-Z0-9_.]*关键字正规式:create

16、CREATE{returnCREATE;}DATABASE

17、database{returnDATABASE;}DATABASES

18、databases{returnDATABASES;}use

19、USE{returnUSE;}table

20、TABLE{returnTABLE;}tables

21、TABLES{returnTABLES;}select

22、SELECT{returnSELECT;}from

23、FROM{returnFROM;}where

24、WH

25、ERE{returnWHERE;}AND

26、and{returnAND;}OR

27、or{returnOR;}insert

28、INSERT{returnINSERT;}into

29、INTO{returnINTO;}values

30、VALUES{returnVALUES;}update

31、UPDATE{returnUPDATE;}set

32、SET{returnSET;}delete

33、DELETE{returnDELETE;}drop

34、DROP{returnDROP;}show

35、SHOW{returnSHOW;}quit

36、q

37、QUIT{returnQUIT;}help

38、HELP{returnHELP;

39、}INT

40、int{returnINT;}CHAR

41、char{returnCHAR;}2.3语法分析语句产生式和语法树结构说明:语句create和usedatabase较简单,只需记录数据库名db_name;① CREATEDATABASE创建数据库sql_create_db:CREATEDATABASEdb_name';';db_name:ID;① USEDATABASE选择数据库sql_use_db:USEdb_name';';db_name:ID;② CREATETABLE创建表createtable语法树结构,存储字段名和表名structTable{//create根节点ch

42、ar*tab_name;structColumn*root_col;};structColumn{//表中字段定义char*col_name;inttype;intlength;structColumn*next_col;};structTabs{//表名char*tab_name;structTabs*next_tab;};文法:sql_create_tab:CREATETABLEtab_name'('col_fld')'';';tab_name:ID;col_fl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。