compiler3 - 1 编译原理 第三章 词法分析...

Info icon This preview shows pages 1–9. Sign up to view the full content.

View Full Document Right Arrow Icon
1 编译原理 第三章 词法分析 上海交通大学 张冬茉 Email:[email protected] 2015 3
Image of page 1

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
2 本章目的 词法分析器从输入串中识别单词 ,编译程序对源程序的分析由此开始。 单词构词规则可由状态转换图表示,手 工编程实现这些状态转换图,便可产生 高效的词法分析器。构词规则也可由正 规式表示,据此转换成识别单词的有限 自动机,这就得到了识别单词的状态转 换图。软件工具 Lex 能实现这种转换。
Image of page 2
3 第三章 词法分析 §3.1 构造一个简单的词法分析器 一、词法分析器的功能 程序与由自然语言书写的文章一样,它是由 一系列的句子组成的,而句子是由单词按一 定规则组成的,单词是由字符组成的,因此 归根结蒂源程序是由程序语言的字母表上的 字符串组成。词法分析就应从输入字符串中 识别出一个个单词,并对其中由用户定义的 名字,在符号表中予以登记。
Image of page 3

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
4 [ 3.1] 有下列程序段: begin length:=length+1 if length<20 then read (nextch) end 它的输入字符串和识别出的单词流如图 3.1(a) (b) 所示。其中 __ 表示空白(空格)键, 符号↙表示 RETURN 键符, length nextch 为程序中定义的变量,它们在符号表中应予 以记载
Image of page 4
5 词法分析与语法分析的关系: 由词法分析识别出的单词流是语法分析的输 入,语法分析据此判别它们是否构成合法句 子。由词法分析开始形成的符号表,在以后 的编译各阶段要频繁使用。 词法分析可以作为单独一遍,如图 3.2(a) 示,但由于词法分析比较简单,将它作为语 法分析的子程序,每当语法分析程序需要一 单词时,就调用词法分析子程序,从输入串 中识别当前单词,这是一种十分自然有效的 工作方法,结构如图 3.2(b) 所示。
Image of page 5

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
6 词法分析器 语法分析器 单词流 输入串 3.2 词法分析器与语法分析器的关系 (a) 词法分析为单独一遍 (b) 词法分析器是一子程序 语法分析器 词法分析器 符号表 输入串 取下一 单词 返回下 一单词
Image of page 6
7 1. 单词符号的种类 单词符号是程序语言最基本的语法符号 , 通常有 五种 : (1) 基 本 字 。 有 的 称 关 键 字 或 保 留 字 , if while for do goto 等,它们具标识符 的特征,但它们是由语言定义的,其意义是固定 的。多数语言中规定,它们不能作为标识符或标 识符的前缀,用户不能用它们来定义用户使用的 名字,在这种情况下,我们称它们为保留字,如 Pascal C 等。但也有的语言允许将基本字作为 标识符或标识符的前缀,如 Fortran PL/1
Image of page 7

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
8 (2) 标识符。用户用来命名程序中出现的变量、 数组、函数、过程、标号等,通常是一 个字母开头的字母数字串;如 length nextch 等; (3)
Image of page 8
Image of page 9
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern