《编译原理-刘善梅》第3章 词法分析4.ppt

合集下载

编译原理第03章PPT课件

编译原理第03章PPT课件

65
-
procedure swap(var x:integer); begin x:=x+a; /*a是全局变量*/
a:=x-a; x:=x-a end; 调用swap(a);别名也影响编译器生成优化的代 a:=(x-y*z)+w ; b:=(x-y*z)+u ; 若a与x、y或z中任一个是别名
用标号控制循环体 DO 7 I=1,10 A(I)=0 B(I)=0
7 CONTINUE
19
-
②Pascal的for 语句
计数重复的值可在任何有序集上 for . . . to . . . for . . . down to . . .
20
-
2. 条件制导
①while:0次或多次重复 ②do-while,repeat-until:多次重复 ③ALGOL 68循环的一般形式:
Smalltalk 语言以对象方式来处理控 制结构。
40
-
可以认为上述语言是可扩充的,用 户可以通过定义新的(抽象)数据类型 和控制结构来扩充基本语言。
但基本的控制结构并没有发生改变。
41
-
第二节 单元级控制结构
规定程序单元之间控制流程的机制。 最简单的机制是 ALGOL60 的分程序
42
-
在程序顺序执行的过程中,遇到一 个分程序,就建立一个新的引用环境, 并执行这个分程序。
7
-
3. 多选一 嵌套 的 if then else
if语句包含if语句 ①ALGOL 60的选择结构引起二义性
if x>0 then if x<6 then x:=0 else x:=9 ②PASCAL的“最近匹配原则” ③ ALGOL 68中if语句的结束符号fi ④ ALGOL 68对else if 进行缩写

编译原理词法分析课件

编译原理词法分析课件
单词种别表示单词的种类,它是 语法分析需要的信息。 为处理方便通常让每种单词对 应一个整数码。
Compiler Construction Principles
3.1.2 单词符号及输出单词的形式
关键字: 可将其全体视为一种,也可 以一字一种。 标识符: 一般统归为一种。 常数: 可统归为一种,也可按类型 (整型、实型、布尔型等)分种。 运算符和界符: 可采用一符一种的分法, 也可以统归为一种。
Compiler Construction Principles
3.2.2 正规文法与正规式
(4) 对已转换的文法中, 形如A a*b 的规 则,进一步转换 成 A aA | b 。 (5) 不断利用规则(3)和(4)进行变换,直到 每条规则最多含有一个终结符为止。
Compiler Construction Principles
Compiler Construction Principles
3.1.2 单词符号及输出单词的形式
词法分析程序输出单词的形式
词法分析程序所输出的单词符号 通常表示成如下的二元组:
(单词种别,单词自身的值)
Compiler Construction Principles
3.1.2 单词符号及输出单词的形式 单词种别
标识符 表示各种名字,如变量名、常 量名、数组名和函数名等。
Compiler Construction Principles
3.1.2 单词符号及输出单词的形式
常数 各种类型的常数,如整型常数 125、实型常数0.718、布尔型常数TRUE 等。
运算符 如+、-、*、/、<等。
分界符 如 ,、;、(、)、:等 。
Compiler Construction Principles

编译原理_第3章课件

编译原理_第3章课件

编译原理_第3章课件第三章词法分析本章将讨论词法分析程序的设计原则,单词的描述技术,识别机制及词法分析程序的⾃动构造原理。

教学要求1.掌握:正规式,DFA的概念,NFA的概念2.理解:将NFA转换为DFA ,正规式、正规⽂法与有穷⾃动机间的转换⽬录3.1 词法分析程序的设计3.2 单词的描述⼯具3.3 有穷⾃动机3.4 正规式与有穷⾃动机的等价性3.5 正规⽂法和有穷⾃动机的等价性3.6 词法分析程序的⾃动构造⼯具⼩结3.1.词法分析(lexical analysis)程序的设计回顾:1、词法分析的任务:逐个读⼊源程序字符并按照构词规则切分成⼀系列单词。

2、词法分析程序:实现词法分析的程序。

⼀.词法与语法分析程序的接⼝⽅式1、作为独⽴的⼀遍词法分析是编译过程中的⼀个阶段,在语法分析前进⾏,把字符流的源程序变为单词序列,输出在⼀个中间⽂件上。

2、与语法分析结合在⼀起作为⼀遍⼀般、把词法分析程序设计成⼀个⼦程序,由语法分析程序调⽤词法分析程序来获得当前单词,供语法分析使⽤。

….词法分析程序的主要任务:读源程序,产⽣单词符号词法分析程序的其他任务:滤掉空格,跳过注释、换⾏符追踪换⾏标志,复制出错源程序,宏展开,……⼆、词法分析程序的输出输出是单词符号。

单词是语⾔中具有独⽴意义的最⼩单位。

单词包括:保留字标识符常量运算符界符(标点符号)词法分析程序所输出的单词符号常常采⽤以下⼆元式表⽰:(单词种别,单词⾃⾝的值)。

单词的种别是语法分析需要的信息,⽽单词⾃⾝的值则是编译其它阶段需要的信息。

(标识符,指向该标识符所在符号表中位置的指针) 单词的种别可以⽤整数编码表⽰,假如标识符编码为1,常数为2,保留字为3,运算符为4,界符为5例如:程序段if i=5 then x∶=y;在经词法分析器扫描后输出的单词符号和它们的表⽰如下:- 保留字if(3,'if')- 标识符i(1,指向i的符号表⼊⼝)- 等号=(4,'=')- 常数5(2,'5')- 保留字then(3,'then')- 标识符x(1,指向x的符号表⼊⼝)- 赋值号∶=(4,'∶=')- 标识符y(1,指向y的符号表⼊⼝)- 分号;(5,';')三、词法分析⼯作从语法分析⼯作独⽴出来的原因:简化设计改进编译效率增加编译系统的可移植性3.2 单词的描述⼯具程序设计语⾔中的单词是基本语法成分.单词符号的语法可以⽤有效的⼯具加以描述,并且基于这类描述⼯具,实现词法分析程序的⾃动构造.描述⼯具:正规⽂法和正规式识别⼯具:有穷⾃动机⼀.正规⽂法多数程序设计语⾔的单词的语法能⽤正规⽂法来描述。

编译原理词法分析

编译原理词法分析

单词起点 搜索指针 一分为二,互补使用。 搜索指针从单词起点开始搜索,如果遇到半区域 的边界,但尚未到达单词的终点时,则可将后续 的输入字符装入该缓冲区的另一半。 必须对标识符和常数单词符号的长度加以限制。
编译原理
单词的构成规则用状态转换图表示
结点表示状态,状态之间用弧线连结,箭头标记读 入的字符或字符类。有限个状态,有一个初态,至 少有一个终态。 一个状态图可用于识别一定的字符串,大多数程序 设计语言的单词符号都可以用转换图来识别。
编译原理
单词符号
是程序设计语言中具有独立意义的最小单位, 程序设计语言基本组成成分。 五类: 关键字(保留字/基本字):if while … 标识符:常量名 变量名 常数:34 56.78 运算符:+ - / < AND… 界限符:, ; ( )…
编译原理
词法分析器的输出:Token串
δ(1,a) = 3 δ(2,a) = 1 δ(3,a) = 3
δ(0,b) = 2
δ(1,b) = 2 δ(2,b) = 3 δ(3,b) = 3
状态转换矩阵:
状态 输入
0 1 2 3*
a 1 3 1 3
b 2 2 3 3
编译原理 状态转换图:假定DFA M含有m个状态,n个输入字符,那么 这个状态图含有m个结点,每个结点最多有n个弧射出,整个 图含有唯一一个初态结点和若干个终态结点,初态结点冠以双 箭头“=>” ,终态结点用双圈表示,若 δ (ki,a) =kj,则从状态 结点ki到状态结点kj画标记为a的弧。
字母、数字
S
字母
标识符 数字
数字
无符号整数 单分界符 头字符 斜竖 错误 = * 双分界符 注释头
+、-、…、; >、<、=、! / 其他

编译原理课件第3章

编译原理课件第3章
ຫໍສະໝຸດ 04CATALOGUE
代码优化
代码优化的目的和分类
目的
提高程序运行效率,减少空间占用,提高可读 性。
局部优化
对单个程序块的优化,如基本块的优化。
全局优化
对整个程序的优化,如循环优化、死代码删除等。
代码优化的主要技术
常量折叠和替换
将常量表达式的结果在编译时计算出来,并 用结果替换掉表达式。
循环优化
编译原理课件第3章
contents
目录
• 词法分析 • 语法分析 • 中间代码生成 • 代码优化 • 目标代码生成
01
CATALOGUE
词法分析
词法分析器的任务
将源程序分解成一系列的记号(tokens) 去除源程序中的注释和空白符
识别出关键字、标识符、常量、操作符等记号 为语法分析器提供有序的记号流
通过改变循环的迭代顺序、减少循环中的计 算等方法来提高循环的效率。
死代码删除
删除永远不会被执行到的代码。
函数内联
将小的函数调用替换为函数体的直接执行, 以减少函数调用的开销。
代码优化的实现
编译器前端
负责将源代码转换成中间表示(IR),这一阶段主要 完成语义分析和语法分析。
编译器中端
对中间表示进行优化,如常量折叠、死代码删除等。
考虑文法的二义性
有些文法具有二义性,即一种语法结构可以有多种解析方 式。在设计语法分析器时需要考虑如何处理二义性问题, 避免产生错误的分析结果。
语法分析器的实现
编写词法分析器
词法分析器是将输入的字符串转 换成一个个的单词或符号,供语 法分析器使用。在实现语法分析 器之前,需要先编写词法分析器 。
实现递归下降分析
解析与语义分析

编译原理chapter3 词法分析

编译原理chapter3 词法分析

一 设计一个奇偶校验器
DFA是由集合,序列和函数定义的数学模型, 它对于 上的w,判定是可接受的还是不可 接受的。例如,设计一个DFA m ,奇偶校验 器,首先,w是由0,1组成的字符串,因此, 1. ={0 ,1}且w在一条输入带上。
0 1 0 1 1$
读头
精品文档
11
2. 状态集:它记忆已读入w子串的状态,m是 奇偶校验器,它应该记住,初始序列是奇数 个1还是偶数个1。因此,m有even和odd两个 状态. 3 .even为开始状态。
词法分析器
‘while’,‘i’,‘<>’,‘j’, ‘do’, ‘if’,‘i’,‘>’,‘j’,‘then’, 'i', ':=’ , 'i', ’-’ , 'j', 'else', 'j', ':=', 'j', '-', ‘i'
精品文档
4
词类和属性
computator n. Calcculating machine.
3.1.1 词法分析程序的功能 源程序 单词词序法列分析器
3.1.2 单词的词类和属性 (词类符号,单词的属性值)
3.1.3 词法分析程序作为一个独立子程序 (1)语法分析程序的子程序; (2)组 织成一遍扫描。
精品文档
3
While i<>j do if i>j then i:=i-j else j:=j-I
三 一个DFA有三种表示:
(1)象上面,用转换函数;
精品文档
14
转移矩阵
状态转换图
a
b
0
1
2
a

编译原理第三章(4-2)

编译原理第三章(4-2)
北京交通大学 于双元 15
无符号数一般形式:dm dm-1 · · · d1 d0 ·d-1 d-2 · · ·d-nE+ dd · · · d E d 0 d . 3 d 1 d d E 4 d 5 d d 6
.
d
2
+∣d
. d d
d
d
F
北京交通大学 于双元 16
无符号数一般形式:dm dm-1 · · · d1 d0 ·d-1 d-2 · · ·d-nE+ dd · · · d E d 0 d . 3 d 1 d d E 4 d 5 d d 6
A B
②开始符号S作为初始状态 设一符号F不属于V作为终止状态
S
F B F F
③形如A→aB的规则
④形如A→a的规则 特别:A → ε
A A
a a
A 未曾在A的射出弧中 出现过的终结符号
北京交通大学 于双元
也可以消除ε产生式后再画状态图。
4
例:G[Z]: Z→0U∣1V U →1Z∣1 V →0Z∣0
1 初态
0 Z 1
U
1 0
F
0
V
②此过程是一种推导过程. (最右(左)推导)
相当于: Z=>0U =>01Z =>011V =>0110Z =>01100U =>011001
能否编程序实现?
有什么问题?
北京交通大学 于双元
8
3 、左线性文法的状态图
左线性文法的规则呈: A→Ba或A→a A,B∈Vn ,a∈Vt (1)状态图 ①G[S]的每一个非终结符号代表一结点(状态) A B
北京交通大学 于双元
23
3、设有如下状态转换图,试给出对应的正则文法 (左线性和右线性)。

编译原理之词法分析PPT课件

编译原理之词法分析PPT课件
–直接管理源程序字符流的读入
12
Wensheng Li BUPT @ 2008
二、设置缓冲区的必要性
超前搜索:为了得到某一个单词符号的确切性质, 需要超前扫描若干个字符。
例:有合法的FORTRAN语句: DO99K=1,10 和 DO99K=1.10
为了区别这两个语句,必须超前扫描到等号后的第一个 分界符处。
开始指针 向前指针
16
Wensheng Li BUPT @ 2008
测试指针的过程(2)
向前指针前移一个位置; IF (向前指针指向 eof ) {
IF (向前指针在左半区的终点) { 读入字符串,填充右半区; 向前指针前移一个位置;
}; ELSE IF (向前指针在右半区的终点) {
读入字符串,填充左半区; 向前指针指向缓冲区的开始位置; }; ELSE 终止词法分析; }
P1
P2
唤醒P2 唤醒P2
唤醒P1 唤醒P1
Wensheng Li BUPT @ 2008
8
分离词法分析程序的好处
可以简化设计
–词法程序很容易识别并去除空格、注释,使语法分析程序 致力于语法分析,结构清晰,易于实现。
可以改进编译程序的效率
–利用专门的读字符和处理记号的技术构造更有效的词法分 析程序。
11
Wensheng Li BUPT @ 2008
一、词法分析程序的实现方法
利用词法分析程序自动生成器
–从基于正规表达式的规范说明自动生成词法分析程序。 –生成器提供用于源程序字符流读入和缓冲的若干子程序
利用传统的系统程序设计语言来编写
–利用该语言所具有的输入/输出能力来处理读入操作
利用汇编语言来编写
基本方法

《编译原理》课件

《编译原理》课件
了解中间代码生成的概念和它在编译过程中的角色。 学习四元式和三地址码的表示和生成方式,以及中间代码优化的技巧。
六、代码生成
了解目标机器的指令系统和存储结构,以及它们对代码生成的影响。 学习寄存器分配和目标代码生成的基本原理和方法。
七、附录
参考文献提供了进一步学习编译原理的资源。 课程总结将回顾课程中学到的重要知识,并概述关键概念和技术。 问题解答将回答学生在课程学习中提出的问题。 课程评价将收集学生对课程的反馈和评价,以便对将来的课程进行改进。
《编译原理》PPT课件
编译原理PPT课件将带您深入了解编译原理的重要概念和技术。这个课程介绍 了编译原理的意义以及编译过程的概述。
一、引言
课程介绍编译原理的重要性,让您理解为什么编译原理对于软件开发非常关 键。 编译过程的概述将带您了解传统的编译过程中涉及的各个阶段和任务。
二、词法分析
词法分析是编译过程中的第一步,了解词法分析的作用以及它在编译器中的 实现。 掌握正则表达式和有限自动机的概念,这些是实现词法分骤,理解它的作用和不同的语法分析方法。 学习上下文无关文法以及LL(1)语法分析器和LR(1)语法分析器的实现原理。
四、语义分析
语义分析是编译过程中的重要一环,了解它的作用和涉及的任务。 学习语义动作、符号表管理和类型检查,以及如何进行语法制导翻译。
五、中间代码生成

编译原理 第3章

编译原理 第3章

一般而言 ,当一个语言的两种单词有相同的前缀时,其扫描 器都应当考虑采用超前搜索和多字符回退操作。
编译原理
8
3.1.4 源程序的输入及预处理 •为了提高读盘的效率和便于扫描器工作,通常采用缓冲 输入的方案,即在内存设置一个适当大小的输入缓冲区, 让操作系统直接将磁盘上的源程序字符串分批送入次缓 冲区,供扫描器处理。
∴M能识别出L(G)中的全部句子。
编译原理 21
二、对于左线性文法构造状态转换图 设G=(Vn,Vt,P,S)是一左线性文法,Vn中的每个非终结符号 对应状态图中的一个结点。与右线性文法不同的是,增 设一个不属于V的符号R标记初态结点,并用S作为终态 结点 。|Vn|=k,共有k+1个节点(状态)。 1. 对于G中的每一条形如A→a的规则,从初态结点R引一 条矢线到结点A,并用符号a标记这条矢线。 2. 对于G中每一条形如A→Ba的规则,从结点B引一条矢线 到结点A,并用符号a标记这条矢线。
编译原理
16
E d
d 0
d
d
d 5 d 6
1
.
d
2
E
4
±
. 图3.4文法G<无符号数>的状态图
编译原理
17
状态图识别符号串
利用状态转换图可识别相应文法所表示的符号串。 定义:设α∈VT * ,如果状态转换图中存在一条从初态到 终态的路径,此路径上的标记符号顺序相连构成符号串α, 则称α为状态图所识别串。
状态图识别语言:状态图所识别的串集合。
a 开始 0 a 1 b 2
编译原理 18
b
2)状态转换图对符号串的识别 对符号串W=a1a2a3……an,ai∈ VT 识别过程:
从初态S出发,自左至右逐个扫描W中的字符,在S 状态下扫视的符号为a1; 在节点S所射出诸矢线中寻找标记为a1的矢线(若 不存在,则说明W有错);

编译原理3

编译原理3

有穷状态自动机 (Finite Automaton)

状态转换图 确定有穷状态自动机(DFA) 非确定有穷状态自动机(NFA) 把NFA变为DFA DFA的化简
11
什么是状态转换图?

为了识别正则文法的句子而专门设计的有向图。 如:C语言中关于标识符定义的规则(词法规则) 如下: <标识符>::=字母|<标识符>字母|<标识符> 数字

15
应用状态转换图识别句子举例

例如:对于正则文法G[Z]: Z::=Za|Aa|Bb A::=Ba|a B::=Ab|b
a S b A a b B b
a
Z a
a S b
A
a Z b
a b F
a,b
a b
B
(1)识别字符串ababaaa
(2)识别字符串bababbb
16
状态转换图识别句子的实质8语言的单词符号 Nhomakorabea
单词符号是程序语言的基本语法单位,一般分为下面5种: 关键字(基本字):(个数确定,可全体编为一类,也 可一字一类) 标识符:(个数不确定,作为一类) 常数:各种类型的常数 。(个数不确定,按类型分类) 运算符:如+、-、*、/、<等。(个数确定,一符一类) 界符:如,、;、(、)、: 等。(个数确定,一符一类) 注意:一种语言的单词如何分类、怎样编码,主要取决于 技术上的方便。
24
正则集


正则集:L(D),是一个DFA接受的字符串集合 正则语言与正则集:L(G)=L(D) 最小状态自动机:状态个数最少,唯一 如何减少自动机的状态数而不改变自动机所接受 的语言呢?
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 词法分析
对于词法分析器的要求 词法分析器的设计 正规表达式与有穷自动机 词法分析器的自动产生-LEX
词法分析
词法分析的任务:从左至右逐个字符地 对源程序进行扫描,产生一个个单词符 号。
词法分析器(Lexical Analyzer) 又称扫描 器(Scanner):执行词法分析的程序
a
➢ 状态之间用箭弧连结,箭弧 1
2
上的标记(字符)代表射出结 状态下可能出现的输入字符
数字 3
或字符类。
➢ 一张转换图只包含有限个状态,其中 有一个为初态,至少要有一个终态。
一个状态转换图可用于识别(或接受)一定 的字符串。
数字
数字
其他
*
1
2
3
识别整常数的状态转换图
字母或数字
字母
其他
*
1
2
3
识别标识符的状态转换图
else {…错误处理…;}
3 状态转换图ห้องสมุดไป่ตู้实现
2)对含回路的状态结,可对应一段由WHILE语句 构成的程序.
字母或数字
i 其它 j
GetChar( ); while (IsLetter( ) or IsDigit( ))
GetChar( ); …状态j的对应程序段…
3 状态转换图的实现
3)终态结表示识别出某种单词符号,因此,对应 语句为 RETURN (C,VAL)
二、词法分析器作为一个独立子程序
词法分析是作为一个独立的阶段,是否 应当将其处理为一遍呢?
作为独立阶段的优点:结构简洁、清晰和条 理化,有利于集中考虑词法分析一些枝节问 题。
不作为一遍:将其处理为一个子程序。
词法分析器
单词符号
源程序 词法分
语法分
析器
析器
...
取下一单词
符号表
3.2 词法分析器的设计
-
_
9
$PLUS
-
*
10
$STAR
-
**
11
$POWER
-

12
$COMMA
-
(
13
$LPAR
-
)
14
$RPAR
-
空白 字母
0 数字 = + *
, ( ) 其它
字母或数字
非字母与数字 1
数字
3
非数字
5
6 非*
7 *
10
11
12
13
* 2 4*
* 8 9
3 状态转换图的实现
思想:每个状态结对应一小段程序。
做法:
1)对不含回路的分叉结,可用一个CASE语句或 一组IF-THEN-ELSE语句实现
字母 j
i 数字 k
/
l
GetChar( );
if (IsLetter( )) {…状态j的对应程序段…;}
else if (IsDigit( )) {…状态k的对应程序段…;}
else if (ch=‘/’) {…状态l的对应程序段…;}
3.1 对于词法分析器的要求
一、词法分析器的功能和输出形式 功能:输入源程序、输出单词符号 单词符号的种类:
基本字:如 begin,repeat, 标识符——表示各种名字:如变量名、数组
名和过程名 常数:各种类型的常数 运算符:+,-,*,/, 界符:逗号、分号、括号和空白
输出的单词符号的表示形式:
其中,C为单词种别,VAL为单词自身值.
全局变量与过程
1)ch 字符变量、存放最新读入的源程序 字符
2)strToken 字符数组,存放构成单词符 号的字符串
3)GetChar 子程序过程,把下一个字符 读入到 ch 中
4)GetBC 子程序过程,跳过空白符,直 至 ch 中读入一非空白符
5)Concat 子程序,把ch中的字符连接到 strToken
6)IsLetter和 IsDisgital 布尔函数, 判断ch中字符是否为字母和数字
删除无用的空白、跳格、回 车和换行等编辑性字符
区分标号区、捻接续行和给 出句末符等
预处理 子程序
输入 输入缓冲区
扫描器 扫描缓冲区
单词符号
词法分析器的结构
一、扫描缓冲区
扫描缓冲区
WhatALong…Word
WhatALong…Wo


起点 搜索
指示器 指示器
… WhatALong…Wo rd
rd
(单词种别,单词自身的值)
单词种别通常用整数编码表示。
若一个种别只有一个单词符号,则种别编 码就代表该单词符号。假定基本字、运算 符和界符都是一符一种。
若一个种别有多个单词符号,则对于每个 单词符号,给出种别编码和自身的值。
标识符单列一种;标识符自身的值表示成 按机器字节划分的内部码。
常数按类型分种;常数的值则表示成标准 的二进制形式。
例 FORTRAN程序
IF (5.EQ.M) GOTO 100
输出单词符号:
逻辑IF (34,-)
左括号 (2,-)
整常数 (20, ‘5’的二进制)
等号
(6,-)
标识符 (26, ‘M’)
右括号 (16,-)
GOTO
(30,-)
标号
(19, ‘100’的二进制)
助忆符:直接用编码表示不便于记忆,因此用助忆 符来表示编码。
词法分析器设计流程
某程序设计语言的 单词符号串集
分析词法规则
画出识别单词的状态图
根据状态图写词法分析器程序
单词符号 种别编码 助忆符
内码值
DIM
1
$DIM
-
IF
2
$IF
-
DO
3
$DO
-
STOP
4
$STOP
-
END
5
$END
-
标识符
6
$ID
内部字符串
常数(数)
7
$INT 标准二进制形式
=
8
$ASSIGN
例: IF 左括号 等号
(34,-) (2,-) (6,-)
(IF,-) ((,-) (=,-)
例 C程序
while (i>=j) i--;
输出单词符号:
< while, - > < (, - > < id, 指向i的符号表项的指针 > < >=, - > < id, 指向j的符号表项的指针 > < ), - > < id, 指向i的符号表项的指针 > < --, - > < ;, - >
所有基本字都是保留字;用户不能用它们作自己 的标识符; 基本字作为特殊的标识符来处理;不用特殊的状态 图来识别,只要查保留字表。
如果基本字、标识符和常数(或标号)之间没有 确定的运算符或界符作间隔,则必须使用一个空 白符作间隔
三、状态转换图
1 概念
状态转换图是一张有限方向图。
➢结点代表状态,用圆圈表示。
… WhatALong…Wo
二、单词符号的识别:超前搜索
以基本字的识别为例:
例如: DO99K=1,10
DO 99 K = 1,10
IF(5.EQ.M)GOTO55 IF (5.EQ.M) GOTO 55
DO99K=1.10
IF(5)=55
需要超前搜索才能确定哪些是基本字
几点限制——不必使用超前搜索
相关文档
最新文档