- 5
- 0
- 约2.28万字
- 约 35页
- 2016-10-07 发布于辽宁
- 举报
毕业论文--编译原理课程设计报告c--语言词法与语法分析器的实现.doc
编译原理课程设计报告
课题名称: 编译原理课程设计
C-语言词法与语法分析器的实现
提交文档学生姓名:
提交文档学生学号:
同组 成 员 名 单:
指导 教 师 姓 名:
指导教师评阅成绩:
指导教师评阅意见:
.
.
提交报告时间: 年 月 日
C-词法与语法分析器的实现
1.课程设计目标
(1)
C-语言拥有一个完整语言的基本属性,通过编写C-语言的词法分析和语法分析,对于理解编译原理的相关理论和知识有很大的作用。通过编写C-语言词法和语法分析程序,能够对编译原理的相关知识:正则表达式、有限自动机、语法分析等有一个比较清晰的了解和掌握。
(2)C-语言的词法说明
① 语言的关键字:
else if int return void while
所有的关键字都是保留字,并且必须是小写。
②专用符号:
+ - * / = = == != = ; , ( ) [ ] { } /* */
③其他标记是ID和NUM,通过下列正则表达式定义:
ID = letter letter*
NUM = digit digit*
letter = a|..|z|A|..|Z
digit = 0|..|9
注:ID表示标识符,NUM表示数字,letter表示一个字母,digit表示一个数字。
小写和大写字母是有区别的。
④ 空格由空白、换行符和制表符组成。空格通常被忽略。
⑤ 注释用通常的c语言符号/ * . . . * /围起来。注释可以放在任何空白出现的位置(即注释不能放在标记内)上,且可以超过一行。注释不能嵌套。
(3)程序设计目标
能够对一个程序正确的进行词法及语法分析。
2.分析与设计
(1)设计思想
词法分析
词法分析的实现主要利用有穷自动机理论。有穷自动机可用作描述在输入串中识别模式的过程,因此也能用作构造扫描程序。
语法分析
语法分析采用递归下降分析。递归下降法是语法分析中最易懂的一种方法。它的主要原理是,对每个非终结符按其产生式结构构造相应语法分析子程序,其中终结符产生匹配命令,而非终结符则产生过程调用命令。因为文法递归相应子程序也递归,所以称这种方法为递归子程序下降法或递归下降法。其中子程序的结构与产生式结构几乎是一致的。
(2)程序流程图
程序主流程图:
词法分析: 语法分析:
词法分析子流程图:
语法分析子流程图:
3.程序代码实现
整个词法以及语法的程序设计在一个工程里面,一共包含了8个文件,分别为main.cpp、.cpp、scan.cpp、util.cpp、scan.h、util.h、 globals.h、parse.h,其中scan.cpp和scan.h为词法分析程序。
以下仅列出各个文件中的核心代码:
Main.cpp
#include globals.h
#define NO_PARSE FALSE
#include util.h
#if NO_PARSE
#include scan.h
#else
#include parse.h
#endif
int lineno=0;
FILE * source;
FILE * listing;
FILE * code;
int EchoSource = TRUE;
int TraceScan=TRUE;
int TraceParse=TRUE;
int Error = FALSE;
int main(int argc,char * argv[])
{
TreeNode * syntaxTree;
char pgm[120];
scanf(%s,pgm);
source=fopen(pgm,r);
if(source==NULL)
{
fprintf(stderr,File %s no
您可能关注的文档
- 毕业论文--巴特沃斯低通滤波器设计.doc
- 毕业论文--白腐真菌琥珀骤木耳对稻草秸秆的降解研究.doc
- 毕业论文--白坭镇第二污水处理厂及配套管网工程施工组织设计论文.doc
- 毕业论文--白旗明安图镇苏金宝力格嘎查通自来水、改厕一事一议项目建议书.doc
- 毕业论文--柏汇牛仔裤市场营销计划.doc
- 毕业论文--柏庄置业呼叫中心系统分布式voip呼叫中心系统建设方案.doc
- 毕业论文--搬运机械手主体结构设计论文.doc
- 毕业论文--办公室精装修分包工程施工组织设计论文.doc
- 毕业论文--半导体直流稳压电源设计课程设计.doc
- 毕业论文--半导体直流稳压电源设计论文课程设计论文.doc
- 安徽省安庆市潜山市部分学校2025-2026学年七年级下学期阶段学情自测数学试题-普通用卷.docx
- 2026《微型无人机的设计基础综述》2600字.docx
- 安徽六安市金安区2025-2026学年八年级上学期2月期末物理试题-普通用卷.docx
- 2026《五菱汽车公司经营者股权激励实施成效及其启示》9700字.doc
- 北京市第一零九中学2026届高三下学期开学考试数学试题-普通用卷.docx
- 北京海淀实验中学2026届高三下学期数学开学检测试题-普通用卷.docx
- 2026《五菱汽车公司融资模式及融资风险分析》8700字.doc
- 2026《五菱汽车公司物流成本控制研究》文献综述开题报告(含提纲)3800字.doc
- 2026《五菱汽车公司薪酬改革问题研究》开题报告(文献综述)4200字.doc
- 2026《物流企业反内卷的战略转型研究—以顺丰控股为例》13000字.doc
最近下载
- 施工临时用电专项施工方案.pdf VIP
- 2026天津城投集团校招面笔试题及答案.doc VIP
- 2025年江苏学位英语试卷及答案.doc VIP
- 2026年江西信息应用职业技术学院单招职业适应性测试题库参考答案详解.docx VIP
- 造价咨询全过程实施方案.docx VIP
- 2025-2026年演出经纪人之演出市场政策与法律法规模拟题库及答案下载.pdf VIP
- 2025年春西师大版一年级下册数学全册课件.pptx
- 2026年春教科版(新教材)小学科学二年级下册(全册)教学设计(附目录P91).pdf
- 2025年深入贯彻中央八项规定精神学习教育应知应会试题含完整答案详解.docx VIP
- T∕GDEA 001-2024 智能配电房技术规范.pdf VIP
原创力文档

文档评论(0)