实验1-3-《编译原理》词法分析程序设计方案.docx

实验1-3-《编译原理》词法分析程序设计方案.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
-- 实验 1-3 《编译原理》 一、实验目的 了解词法分析程序的两种设计方法之一 二、实验内容 S 语言词法分析程序设计方案 :根据状态转换图直接编程的方式 ; ?1 .根据状态转换图直接编程 编写一个词法分析程序, 它从左到右逐个字符的对源程序进行扫描, 产生一个个的单词 的二元式 ,形成二元式 (记号 )流文件输出。 在此 ,词法分析程序作为单独的一遍, 如下图所示。 源程序 词法分析程序 二元式文件 具体任务有 : (1) 组织源程序的输入 (2)拼出单词并查找其类别编号 ,形成二元式输出 ,得到单词流文件 (3)删除注释、空格和无用符号 (4) 发现并定位词法错误, 需要输出错误的位置在源程序中的第几行。 将错误信息输出到 屏幕上。 (5)对于普通标识符和常量 ,分别建立标识符表和常量表 (使用线性表存储) ,当遇到一个 标识符或常量时 ,查找标识符表或常量表 ,若存在 ,则返回位置, 否则返回 0 并且填写符号表或 常量表。 标识符表结构:变量名 ,类型(整型、实型、字符型) ,分配的数据区地址 注:词法分析阶段只填写变量名 ,其它部分在语法分析、语义分析、代码生成等阶段逐步 填入。 常量表结构 :常量名 ,常量值 三、实验要求 1 . 能对任何 S 语言源程序进行分析 在运行词法分析程序时,应该用问答形式输入要被分析的 后对该程序完成词法分析任务。 2 . 能检查并处理某些词法分析错误 词法分析程序能给出的错误信息包括: 总的出错个数, 号及错误信息。 S 源语言程序的文件名,然 每个错误所在的行号, 错误的编 本实验要求处理以下两种错误 (编号分别为 1,2 ): ?1:非法字符 :单词表中不存在的字符处理为非法字符, 处理方式是删除该字符 ,给出错误信息 , “某某字符非法” 。 2:源程序文件结束而注释未结束。注释格式为: /* …… */ 四、保留字和特殊符号表 单词代码 单词 单 词 助 记 符 内码值 1 int int - 2 char char - 3 float float - 4 vo i d v o i d - 5 cons t c on s t - 6 f o r fo r - 7 if if - 8 el se el se - 9 then th e n - 单词代码 单词 10 w h 11 switc h 12 break 13 begi 1 4 end 15 16 17 标识符 1 8 数字(包 -- 括整数和 实数) num 括整数和 实数) num 3 8 += += - 3 9 - = - = - 4 0 *= *= - 41 %= %= - -- 单 词 助 记 符 内码值 ile while switch - - b r ea k - n b g n - e e n d id i - 在符号表 中的位置 在常数表 中的位置 单词代码 单词 单 词 助 记 符 内码值 1 9 + + - 20 - - - 2 1 * * - 22 / / - 23 % % - 2 4 ( ( - 2 5 ) ) - 2 6 [ [ - 27 ] ] - 单词代码 单词 单 词 助 记 符 内码值 ! = r l o p ! = 28 28 29 30 = = == ; { } ; {

文档评论(0)

文档查询,农业合作 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体土默特左旗农特农机经销部
IP属地广西
统一社会信用代码/组织机构代码
92150121MA0R6LAH4P

1亿VIP精品文档

相关文档