编译原理第三章总结

本文概述了词法分析的任务和要求,包括单词符号的种类,并详细介绍了词法分析器的工作方式,如超前搜索和直接分析法。此外,讨论了状态转换图法在单词符号识别中的应用。还讲解了正规表达式和有限自动机的概念,特别是确定有限自动机(DFA)和非确定有限自动机(NFA)的构造与等价性。
摘要由CSDN通过智能技术生成

词法分析的任务:从左至右逐个字符的对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为由单词符号串组成的程序。

3.1对词法分析器的要求

源程序 —> 词法分析器 —> 单词符号

单词符号:指语言中具有独立意义的最小的语法符号。

单词符号的种类:

* 关键字(保留字、基本字):是由程序语言定义的具有固定意义的标识符。

* 标识符:用来表示各种名字,如变量名、数组名、过程名等。

* 常数:整型、实型、布尔型、文字型等。

* 运算符:+、-、*、/等。

* 界符:,、;、()、/*、*/等。

单词种别:单词种别通常用整数编码

标识符:一般统归为一种。

常数:宜按类型(整、实、布尔等)分种。

关键字:可将全体视为一种,也可一字一种。

运算符:一符一种,也可把具有一定共性的运算符视为一种。

界符:一符一种。

[注]:

1.若一个种别只包含一个单词符号(一种一字),对于该单词符号,种别编码就可以代表它自身了。

例如:关键字,运算符,界符

2.若一个种别包含有多个单词符号(一种多字),对于该种别的每个单词符号,除了给出种别编码,还需给出单词符号的属性值

        例如:整型常数,实型常数,布尔常数,标识符

3.2词法分析器



单词符号的识别:

1. 超前搜索

在单词识别的过程中,通过向前多读几个符号的形式,准确的进行单词的识别

一旦确定识别到的单词之后,需要进行扫描指针的回退,保证单词识别工作的顺利进行

例如: ++,&&,10e2, int a

2. 直接分析法

基本思想:根据读来的第一个字符的种类分别转到各种子程序处理。这些子程序功能就是识别以相应字符开头的各种单词。

方法

①以字母开头的

基本字、标识符、格式说明符,…
IF

WHILE

②以小数点开头的

.34  等

③以数字开头的

常数、格式语句、重复说明

WRITE(6,10) X,Y

10 FORMAT(2X, F10.4, F9.3)

3. 状态转换图法

构造一个识别标识符的状态转换图

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值