编译原理——3.3 词法单元的规约

3.3.1 串和语言
1、字母表:一个有限的符号集合;
2、串:字母表中符号的一个有序集合;
3、语言:某个给定字母表上一个任意的可数的串集合。

3.3.2 语言上的运算
编译原理——3.3 词法单元的规约_第1张图片

3.3.3 正则表达式
1、优先级:
1)一元运算符*具有最高优先级,左结合;
2)连接具有此高优先级,左结合;
3)|优先级最低,左结合。
Eg: (a)|((b)*(c)) => a|b*c
2、代数定律
编译原理——3.3 词法单元的规约_第2张图片

3.3.4 正则定义
1、定义:给某些正则表达式命名,并在之后的正则表达式中使用符号一样使用这些名字。
2、eg:
letter_ -> A|B|…|Z|a|b|…|z|_
digit -> 0|1|…|9
Id -> letter_(letter_|digit)*

3.3.5 正则表达式的扩展
1、一个或多个实例:可以用单目后缀运算符+表示,有r* = r+|ε和r+ = rr* = r*r;
2、零个或一个实例:可以用单目后缀运算符?表示,有r?=r|ε;
3、字符类:[a-z]=a|b|…|z

你可能感兴趣的:(编译原理)