预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共34页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

电子科技大学计算机科学与工程学院第一节词法分析概述1.单词的种类 标识符:用来命名程序中出现的变量、数组、 函数、过程、标号等 基本字:也可称关键字或保留字,如if、while、 for、do、goto等 常数:各种类型的常数,如216、3.14159、TRUE等 运算符:如+、-、*、/等 界符:如;、:、/*、*/等(单词类别,单词的属性)(2)单词类别的划分一个例子 A:=B50+10;的输出为: (标识符的编码,‘A’) (:=的编码,—) (标识符的编码,‘B50’) (+的编码,—) (整数的编码,‘10’) (;的编码,—)第二节词法分析器的结构3.扫描缓冲区:从输入缓冲区输入固定长度的字符串到另一个缓冲区(扫描缓冲区),词法分析可以直接在此缓冲区中进行符号识别。扫描缓冲区的结构:二.符号的识别DO100I=1,10 DO100I=1.10 IF(5.EQ.M)GOTO100 IF(5)=100(2)标识符的识别:读到非字母数字 (3)常数的识别:根据常数的格式;大多数常数后都有运算符或界符 (4)运算符的识别:需要超前搜索,如** (5)界符的识别:需要超前搜索,如/*电子科技大学计算机科学与工程学院从初态出发到某一终态路径上字符的连接。 下图是识别标识符的状态转换图:内容回顾第四章设计的语言允许下述单词: 标识符、数字串、begin、end、integer、if、 then、else、function、read、write、 -、*、<、<=、<>、 =、>、>=、:=、;、(、)电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院每个状态结对应一小段程序 分支状态——if或case语句 循环状态——while语句 终态——return语句锻炼电子科技大学计算机科学与工程学院start:token:=‘‘; getchar;getnb; casecharacterof ‘a’…’z’:begin whileletterordigitdo beginconcatenate;getcharend; retract; c:=reserve; ifc=0thenbegin buildlist; return($ID,val) end elsereturn(c,—) end;‘<‘:begingetchar; ifcharacter=‘=‘thenreturn($LE,—) elseifcharacter=‘>’thenreturn($NE,—); retract; return($LT,—) end; ‘>‘:begingetchar; ifcharacter=‘=‘thenreturn($GE,—); retract; return($GT,—) end; ‘:‘:begingetchar; ifcharacter=‘=‘thenreturn($ASSIGN,—) elseerror end;电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院