云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C-Minus词法分析和语法分析设计编译器编译原理课程设计

C-Minus词法分析和语法分析设计编译器编译原理课程设计

  • 62 次阅读
  • 3 次下载
  • 2026/4/27 2:24:31

编译原理课程设计报告

课题名称: C- Minus词法分析和语法分析设计

1. 课程设计目标

实验建立C-编译器。只含有扫描程序(scanner)和语法分析(parser)部分。

2. 分析与设计

C-编译器设计的整体框架,本实验实现扫描处理和语法分析程序(图中粗黑部分)。

打开源代码文件source.txt扫描处理(词法分析)记号语法分析程序语法树语义分析程序错误处理器注释树记号表源代码优化程序文字表中间代码代码生成器目标代码目标代码优化程序目标代码

2.1 、扫描程序scanner部分 2.1.1系统设计思想

设计思想:根据DFA图用switch-case结构实现状态转换。

惯用词法:

① 语言的关键字:else if int return void while ② 专用符号:+ - * / < <= > >= == != = ; , ( ) [ ] { } /* */

③ 其他标记是ID和NUM,通过下列正则表达式定义: ID = letter letter* NUM = digit digit*

letter = a|..|z|A|..|Z digit = 0|..|9

大写和小写字母是有区别的

④ 空格由空白、换行符和制表符组成。空格通常被忽略,除了它必须分开ID、NUM关键字。

⑤ 注释用通常的C语言符号/ * . . . * /围起来。注释可以放在任何空白出现的位置(即注释不能放在标记内)上,且可以超过一行。注释不能嵌套

scanner的DFA+ - * <= >= == != ; , ( ) [] { }INASSIGNWhite space \\t \\n>,<,=,!digitNUM[other]=digitSTARTletter/INIDletter[other]DONE[other]ZHU*/INCOMMENT[other][other][other]*ZZHU*

说明:当输入的字符使DFA到达接受状态的时候,则可以确定一个单词了。初始状态设置为START,当需要得到下一个token时,取得次token的第一个字符,并且按照DFA与对此字符的类型分析,转换状态。重复此步骤,直到DONE为止,输出token类型。当字符为“/”时,状态转换为SLAH再判断下一个字符,如果为“*”则继续转到INCOMMENT,最后以“*”时转到ENDCOMMENT状态,表明是注释,如果其他的则是字符停滞于当前字符,并且输出“/”。 2.1.2程序流程图

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

编译原理课程设计报告 课题名称: C- Minus词法分析和语法分析设计 1. 课程设计目标 实验建立C-编译器。只含有扫描程序(scanner)和语法分析(parser)部分。 2. 分析与设计 C-编译器设计的整体框架,本实验实现扫描处理和语法分析程序(图中粗黑部分)。 打开源代码文件sou

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com