第4章词法分析
- 格式:ppt
- 大小:729.50 KB
- 文档页数:129


一、词汇词汇是语言的建筑材料,是一种语言里所有的(或特定范围的)词和固定短语的总和。又叫语汇。
2、词汇也指某个人所掌握的全部词和短语的总和。3、词汇还是某部著作中所有词的和短语的总和。
词汇反映着语言的发展状况,也标志着人们对客观世界认识的广度和深度。第一节词汇、词汇单位和词的结构
1、词汇是某种语言中所有词和短语的总和。!
现代汉语词汇特点汉语词汇发展双音节化的原因:第一,汉语的音节数目有限,单音节词
往往会造成大量的同音词,这样就会给实际交际带来困难,双音节有助于避免大量同音词的出现。第二,单音节词往往是多义词,因而有时语义难以确定。双音节词就使得词义的表达更为细腻、精确,涉及的范围也更为宽广、深入。第三,双音节词读起来往往带有一种乐感,轻重之间形成一种节奏,悦耳动听。
词语双音节化的途径主要是:1.以一个单音节语素为主,在前面或后面加上一个辅助性的相关成份。后加:月——月亮耳——耳朵前加:唇——嘴唇发——头发2.单音节语素的前后添加没有意义的附加成份。后加:竹——竹子石——石头前加:师——老师姨——阿姨3.意义相同或相近的单音节语素联合起来使用。联合道路学习刚才皮肤牙齿经历解释4.三音节的词省略其中一个音节。落花生——花生照相机——相机山茶花——茶花机关枪——机枪5.四音节以及四音节以上的词语采用缩略法。化学工业——化工文学艺术——文艺超级市场——超市彩色电视机——彩电人民代表大会——人大政治协商会议——政协
双音节以及双音节以上的合成词的内部构造,基本上跟普通短语的构造是一致的。它们主要是用以下五种方法构成的:
偏正式:单干——单独地干狂欢——疯狂地联欢壁画——墙壁上的画红旗——红色的旗子动宾式:管家——管理家务知己——知道自己结晶——结成晶体隔壁——隔着墙壁联合式:语文——语言和文学珍宝——珍珠和宝石答应——回答和应付广大——广阔和宽大主谓式:地震——大地震动军用——军队使用性急——性子急躁锋利——刀锋锐利补充式:改正——改得正确说服——说得服帖缩小——缩得很小突出——突得很出
习题 第4章 词法分析
4.1 编写以下字符串集的正规式(若没有正规式则说明原因):
(1)以a开头和结尾的所有小写字母串;
(2)以a开头或/和结尾的所有小写字母串;
(3)不以0开头的所有数字串;
(4)每个5均在每个1之前的所有数字串;
(5)a和b的个数相等的所有ab串。
4.2 简述由下列正规式生成的语言:
(1)(a|b)*a(a|b|ε)
(2)(A|B|…|Z)(a|b|…|z)*
(3)(aa|b)*(a|bb)*
(4)(0|1|…|9|A|B|C|D|E|F)+(x|X)
4.3 构造4.1题的每个字符串集的DFA,或说明不存在DFA的原因。
4.4 构造下列正规式相应的NFA,然后转换为DFA:
(1)(a|b)*a(a|b|ε)
(2)(aa|b)*a(a|bb)*
4.5 构造自动机A1和A2,使得
L(A1)={ε,an,ban|n≥1}
L(A2)={ε,(ab)n|n≥1}
4.6 将下列NFA确定化:
4.7 消除下列εDA的ε边:
4.8 构造以下3型文法相应的最简自动机:
G: S → aS | bA | a
A → aS | bA | bB
B → bB | b 1 2 3 1 2 3 - + + - b
b a b
ε a
ε a
A1 A2 ε
ε 4 ε 1 2 3 1 2 3 - + + - b b
b b a a
a a
A1 A2 4.9 构造以下自动机相应的3型文法G:
4.10 将以下自动机最小化:
6 1 2 + -
b d a
a d
4 a 5 3 a
a D A C + -
b
b a
a
b B a +
1 第四章 语义分析
前面章节介绍的词法分析和语法分析主要用来解决单词和语言成分的识别及词法和语法结构的检查。语法结构可以形式化地用一组产生式来描述。对于给定的一组产生式,我们能够比较容易地将其分析程序构造出来。但是仅仅完成这两部分还是不够的,因为程序不但要在词法和语法结构上满足要求,它的语义也必须正确。也就是说,源程序和编译后的目标程序可以在语法结构上不同,但是它们所要表达的语义必须是一致的,它们所产生的结果必须一样,否则编译过程就失去了意义。
紧接在词法分析和语法分析之后,编译程序要做的工作是进行语义分析。其任务是对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译。包括两个方面的工作:首先是对各种语法范畴进行静态语义检查,例如,变量是否定义、类型是否正确等等。如果语义正确,则进行中间代码的翻译。
在该阶段需要识别出什么时候同一单词的多个出现引用的是同一个程序实体,并且要保证这些使用的相容性。在大部分的语言里,语义分析器需要跟踪标识符和表达式的类型,这既是为了验证使用的相容性,也用于知道后面阶段中的代码生成。
利用符号表,语义分析器就能贯彻执行许多分析规则,这些规则是上下文无关文法和语法分析树无法表示的。举例说,它需要检查并确定以下内容:
每个标识符在使用之前都已有定义;
没有标识符被用在不合适的上下文中;
为子程序调用提供的是数目和类型都正确的实际参数;
每个函数里至少包含了一个刻画返回值的语句;
语义分析需要结合程序的上下文来进行,在这个过程中,要对变量,表达式进行类型检查,查看类型是否匹配。同时还要检查变量是否重复定义,以及是否没有定义就使用等。与语义分析过程联系紧密的一个环节就是对符号表的操作。
本章将集中讨论类型检查和中间表示的生成,有关符号表的设计和实现我们将放到下一章中去描述。正如上面的例子所指出的,大部分静态检查都是一些简单的工作。例如,当我们将名字信息填入符号表时,即可对该名字的惟一性进行检查。对于更复杂的结构,将类型检查作为语法分析和中间代码生成(中间代码生成我们将在稍后介绍)之间单独的一遍会更方便一些,如下图4.1所示:
编译原理-第三章词法分析-3.4词法单元的识别词法单元的识别词法单元的识别
⼀、状态转换图定义
状态转换图描绘词法分析器被语法分析器调⽤时,词法分析器为返回下⼀个记号所做的动作表⽰
圆圈:表⽰状态,开始状态由⼀条没有出发节点、标号为“开始”的边指明双层圆圈:表⽰接受状态,表⽰已识别⼀个记号;若返回,则返回⼀个词法单元和其相关属性有向边:表⽰从⼀个状态到另⼀状态每条边的标号包含⼀个或多个符号,若离开状态s的某边上标号为other,则它表⽰离开s的其他边所指⽰的字符以外的任意字符*: 表⽰输⼊指针必须回退的转态
⽰例
1.关系符转换图
2.标识符和保留字的转换图
3.空⽩符的状态转换图
4.⽆符号数的状态转换图
⼆、基于状态转换图的词法分析器的体系结构上述实例的合并转换图
参考——慕课-苏州⼤学