下载此文档

编译原理 实验1.doc


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
1 ,实验目的对C 语言的一个子集设计并实现一个简单的词法分析器,掌握利用状态转换图设计词法分析器的基本方法。 2 ,实验要求利用该词法分析器完成对源程序字符串的词法分析。输出形式是源程序的单词符号二元式的代码,并保存到文件中。 3 ,实验内容编译器就是将“高级语言”翻译为“机器语言(低级语言) ”的程序。计算机语言便于人编写,阅读,维护。低阶机器语言是计算机能直接解读、运行的。编译器将源程序作为输入,翻译产生使用目标语言的等价程序。源代码一般为高级语言,如 Pascal 、C、 C++ 等, 而目标语言则是汇编语言或目标机器的目标代码, 有时也称作机器代码。编译是从源代码(通常为高级语言)到能直接被计算机执行的目标代码(通常为低阶语言或机器语言) 的翻译过程。然而, 也存在从低阶语言到高级语言的编译器, 有从一种高级语言生成另一种高级语言的编译器,或者生成一种需要进一步处理的的中间代码的编译器。编译器前端: 前端主要负责解析输入的源代码,由词法分析器和语法分析器协同工作。词法分析器负责把源代码中的“单词”( Token )找出来, 语法分析器把这些分散的单词按预先定义好的语法组装成有意义的表达式,语句, 函数等等。如“a=b+ c;”前端词法分析器看到的是“a, =,b,+,c”, 语法分析器按定义的语法, 先把他们组装成表达式“b+c”, 再组装成“a=b+ c”的语句。字符集假设某语言中的单词符号及种别编码如下表单词符号种别编码助记符内码值 int 1int- main 2main - void 3void - scanf 4scanf - printf 5printf - return 6return - 标示符 7idid在符号表中的位置常数 8num num 在常数表中的位置(9(- )10)- %11%- <=12replor LE <13replor LT ==14replor EQ =15=- ;16;- 可以看到大致的语言单词符号可以有一下这些: (1) 保留字:也叫基本字,这些字保留了语言所规定的含义,是编译程序识别各类语法成分的依据。"main""int""char""if""else" 等。(2)、标识符: 1. 由字母、数字、下划线构成 2. 开头必须是字母或下划线 3. 长度不得大于 32 个字符,而通常是前 8 个字符有效 4. 分大、小写字母。(3) 、运算符:如“+”、“-”、“*”、“/”、“>”、“<”等。(4) 、常数:包括各种类型的常数,例如整型常数,实型常数、布尔型常数等。(5) 、界符:在语言中是作为语法上的分界符号使用的,如“,”、“;”、“(”、“)”等。(6) 规定数字: 1,2,3,4,5,6,7,8,9,0 (7) 规定字母: a,b,c,d …..A,B,C …Z 状态转换图在词法分析中, 可以用状态转换图来识别单词。状态转换图是有限的有向图, 结点表示状态, 用圆圈表示; 结点之间可以由有向边连接, 有向边上可以标记字符。标识符的状态转换图如下: 0138 11 245679101213 1415 字母非字母与数字数字非数字( )%<= 其他== 其他; 其他开始空白字母或数字词法分析器的主要任务逐个读入源程序字符并按照构词规则切分成一系列单词。单词是语言中具有独立意义的最小单位, 包括保

编译原理 实验1 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人yixingmaob
  • 文件大小0 KB
  • 时间2016-06-14