- 概述
- 程序设计语言的三要素:语法,语义,语用
- 语法:结构定义
- 语义:描述语言的含义
- 语用:使用的角度
- 字母表和符号串
- 字母表:元素的非空又穷集合。至少包含一个元素。元素可以是字母,数字或其他符号。
- 符号:字母表中的元素
- 符号串(字):符号的又穷序列
- 有序
- 空符号串:ε,长度=0
- 符号串的运算
- 连结 首尾相接连在一起
- X=ABD,Y=345 XY=ABD345,YX=345ABD
- εx=xε=x
- 集合的乘积
- A={a, b} B={c, d}
- AB={ac, ad, bc, bd}
- {ε}A=A{ε}=A
- {ε}ǂΦ
- 幂
- x是符号串
- 𝑥^0=𝜀
- 𝑥^1=𝑥
- 𝑥^2=𝑥𝑥
- 集合的幂
- X是符号串的集合
- 𝑋^0={𝜀}
- 𝑋^1=𝑋
- 𝑋^2=𝑋𝑋集合的乘积
- 集合的正闭包和闭包
- A是符号串的集合
- 正闭包𝐴^+=𝐴^1∪𝐴^2∪···∪𝐴^𝑛···
- 闭包𝐴^∗=𝐴^0∪𝐴^1∪··· ∪𝐴^𝑛···={𝜀}∪𝐴^+
- 连结 首尾相接连在一起
- 文法和语言的形式定义
- 形式语言:序列的集合:每个形式语言都是某个字母表上按某种规则构成的所有符号串的集合。
- 形式语言的描述:
- 语言为有穷集合:枚举
- 语言为无穷集合:文法
- 产生式:A --> B 或 A::=B 规则使用产生式表示
- --> 生成,由···组成
- 文法的形式定义
- 规则的非空又穷集合,通常用四元组G=(V_N V_T,P,S)
- V_N 非终结符号集合
- V_T 终结符号集合
- P 文法规则集合(关键)
- S (属于V_N):文法的开始符号或文法的识别符号,至少要在一条规则中作为左部出现。由此开始,识别处我们所定义的语言
- 约定:
- 文法以产生式的形式(规则)给出,不用四元组
- 第一条规则的左部是文法识别符号S,常在G[S]中给出
- 非终结符号集V_N的元素用大写字母表示,或用<>括起来的符号。包括文法开始符号。
- 终结符号集V_T的元素是不属于非终结符号集的符号,是一个语言的不可再分的基本符号,常用小写字母,数字,其他符号表示(非大写字母)
- 对于若干个左部相同的规则,如A::=A1,A::=A2······缩写为A::=A1|A2···每个Ai称为A的一个候选式
- 产生式中: | 是或的意思,不是终结符
- 等价文法:两个不同的文法,描述的语言相同