欢迎来到毕设资料网! | 帮助中心 毕设资料交流与分享平台
毕设资料网
全部分类
  • 毕业设计>
  • 毕业论文>
  • 外文翻译>
  • 课程设计>
  • 实习报告>
  • 相关资料>
  • ImageVerifierCode 换一换
    首页 毕设资料网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    编译原理课程设计--词法分析

    • 资源ID:1413642       资源大小:80.64KB        全文页数:10页
    • 资源格式: DOCX        下载积分:100金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    下载资源需要100金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

    编译原理课程设计--词法分析

    1、 编译原理 实验报告 实验题目: 词法分析 专 业: 计算机科学与技术 班 级: 计科 142 班 姓 名: 学 号: 二一八年 一 月 二 日 目录 一、实验目的: . 1 二、实验要求: . 1 三、词法分析程序的算法思想:. 2 四、程序代码: . 3 五、结果分析: . 7 六、总结: 8 1 一、实验目的: 根据词法分析器的基本原理,设计、编制并调试一个词法分析程序,加深对词法分析原 理的理解。 二、实验要求: 2.1 词法分析器:逐个读入源程序字符并按照构词规则切分成一系列单词。单词是语言中 具有独立意义的最小单位,包括保留字、标识符、运算符、标点符号和常量等。词法分析是 编译过程

    2、中的一个阶段,在语法分析前进行 。也可以和语法分析结合在一起作为一遍,由 语法分析程序调用词法分析程序来获得当前单词供语法分析使用。 要求:通过词法分析器 能够实现以下五种类型如单词等的识别。 (1)关键字“begin“,“end“,“if“,“then“,“else“,“while“,“write“,“read“等, “do“, “call“,“const“,“char“,“until“,“procedure“,“repeat“等 (2)运算符:“+“,“-“,“*“,“/“,“=“等 (3)界符:“,“,“,“,“;“,“,“,“.“,“(“,“)“,“:“等 (4)标识符 (其他单词是标

    3、识符(ID)和整型常数(SUM),通过以下正规式定义: ID = letter (letter | digit)* NUM = digit digit* (5)常量 如果关键字、标识符和常数之间没有确定的算符或界符作间隔,则至少 用一个空格作间隔。空格由空白、制表符和换行符组成。 2.2 各种单词符号对应的种别码: 单词符号 种别码 单词符号 种别码 begin 1 : 17 If 2 := 18 Then 3 = 24 dight dight* 11 = 25 + 13 ; 26 14 ( 27 * 15 ) 28 2 / 16 # 0 2.3 词法分析程序的功能: 输入:所给文法的源程序字

    4、符串。 输出:二元组(syn,token 或 sum)构成的序列。 其中:syn 为单词种别码; token 为存放的单词自身字符串; sum 为整型常数。 例如:对源程序 begin x:=9: if x9 then x:=2*x+1/3; end #的源文件,经过词法分析后 输出如下序列: (1,begin)(10,x)(18,:=)(11,9)(26,;)(2,if) 三、词法分析程序的算法思想: 算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号, 其基本思 想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。 3.1 主程序示意图: 主程序示意图如图所示。其

    5、中初始包括以下两个方面: 关键字表的初值。 关键字作为特殊标识符处理,把它们预先安排在一张表格中(称为关键字表),当扫描程 序识别出标识符时,查关键字表。如能查到匹配的单词,则该单词为关键字,否则为一般标 识符。关键字表为一个字符串数组,其描述如下: Char *rwtab6 = “begin”, “if”, “then”, “while”, “do”, “end”,; 3 (2)程序中需要用到的主要变量为 syn,token 和 sum 3.2 扫描子程序的算法思想: 首先设置 3 个变量:token 用来存放构成单词符号的字符串;sum 用来整型单词; syn 用来存放单词符号的种别码。扫

    6、描子程序主要部分流程如图所示 四、程序代码: #include #include #include #include char prog80,token8,ch; int syn,p,m,n,sum; char *rwtab6=“begin“,“if“,“then“,“while“,“do“,“end“; scaner(); main() p=0; 4 printf(“n please input a string(end with #):/n“); do scanf(“%c“, progp+=ch; while(ch!=#); p=0; do scaner(); switch(syn) case 11:printf(“( %-10d%5d )n“,sum,syn); break; case -1:printf(“you have input a wrong stringn“); getch(); exit(0); default: printf


    注意事项

    本文(编译原理课程设计--词法分析)为本站会员(毕****文)主动上传,毕设资料网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请联系网站客服QQ:540560583,我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    本站所有资料均属于原创者所有,仅提供参考和学习交流之用,请勿用做其他用途,转载必究!如有侵犯您的权利请联系本站,一经查实我们会立即删除相关内容!
    copyright@ 2008-2025 毕设资料网所有
    联系QQ:540560583