下载此文档

3 第3章 词法分析1 (2).ppt


文档分类:IT计算机 | 页数:约60页 举报非法文档有奖
1/60
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/60 下载此文档
文档列表 文档介绍
第三章
词法分析与有穷自动机
编译过程
词法分析
语法分析
语义分析及 中间代码生成
代码优化
目标代码生成
词法规则→单词符号
语法规则语法单位
语义审查中间代码
等价变换更为高效
机器指令代码

对字符串表示的源程序 prog
从左到右进行扫描和分解
根据词法规则
识别出一个一个具有独立意义的 单词符号 syn, token, sum

是指语言中具有独立意义的最小语法单位
可分为以下五种
关键字,也称基本字,if, then, while, do等
标识符,表示各种名字,如变量名、数组名、函数名等,如char ch, int syn, token,sum
常数,如123,4587
运算符,如+, -, *, /, :=, <=, >, <>等
界符,,;():等

二元式
(单词种别,单词自身的值)
单词种别,表明单词的种类,语法分析需要的重要信息
整数码
关键字、运算符、界符:一符一码
标识符:10, 常数:11
单词自身的值
标识符token、常数sum
关键字、运算符、界符token
实验1:词法分析
实验目的:编制一个词法分析程序
实验要求:
待分析语言的词法:
关键字:begin if then do end
运算符::= + - * / < <= <> > >= = ; ( ) #
标识符l(l|d)*,整型常数dd*
空格
各种单词符号对应的种别码
单词符号
种别码
单词符号
种别码
begin
1
:
17
if
2
:=
18
then
3
<
20
while
4
<=
21
do
5
<>
22
end
6
>
23
l(l|d)*
10
>=
24
dd*
11
=
25
+
13
;
26
-
14
(
27
*
15
)
28
/
16
#
0
词法分析程序的功能
输入:源程序字符串
输出:二元组(种别,单词本身)
词法分析程序
#include <>
#include <>
char prog[800], token[20]; //程序段,单词符号
char ch;
int syn,p,m,n,sum; //单词符号类型syn,整数sum , 当前要识别程序段第一个字符指针p
char * rwtab[6]= {"begin","if","then","while","do","end"};
main()
{
p=0;
printf("\n 请输入源程序段");
do{
ch=getchar();
prog[p++]=ch;
}while (ch!='#');
p=0;
do{
scaner(); //读取一个单词符号,类型syn,单词token或sum
switch(syn)
{
case 11: printf("\n(%d,%d)",syn,sum); break;
case -1: printf("\n(%s,出错!)",token);break;
default: printf("\n(%d,%s)",syn, token);
}
}while (syn!=0);
system("pause");
}

3 第3章 词法分析1 (2) 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数60
  • 收藏数0 收藏
  • 顶次数0
  • 上传人luyinyzhi
  • 文件大小393 KB
  • 时间2017-11-02