码文不易,希望支持,谢谢->支持原创
高级语言及其文法
让系统知道组成规则并按规则执行
目录
语言的概述
语言是用来交换信息的工具
语言
- 自然语言(Natural Language)
- 计算机语言(Computer Language)
自然语言
是人与人之间的通讯工具
语义(Semantics):环境、背景知识、语气、二义性——难以形式化
计算机语言
计算机系统间、人机间通讯工具
严格的语法(Grammar)、语义(Semantics) ——易于形式化:严格
形式化的内容提取
自然语言
- 字符(Character) 语言的基本字符
- 单词(Token) 满足一定规则的字符串
- 句子(Sentence) 满足一定规则的单词序列(在计算机语言中一个程序就是一个句子)
- 语言(Language) 一定规则的句子的集合、
程序设计语言
- 程序(Program) 满足语法的语句序列
- 语句 (Statement) 满足语法规则的单词序列
- 单词(Token) 满足语法规则的字符串
语言是字和组合字的的规则——结构性描述
基本定义
字母表
字母表(Alphabet) ∑ ∑ 是一个非空有穷集合,字母表中的元素称为该字母表的一个字母(Letter),也叫字符(Character)
符号串
字母表 ∑ ∑ 上符号串(String)
(1) E E 是 ∑ ∑ 上的一个符号串(叫做空串);
(2) 若x是 ∑ ∑ 上的符号串,而a是∑的元素,则xa是 ∑ ∑ 上的符号串;
(3) y是 ∑ ∑ 上的符号串,当且仅当它由(1)和(2)导出
对于字符串s
前缀:移走s的尾部的零个或多于零个符号
后缀:删去s的头部的零个或多于零个符号
子串:从s中删去一个前缀和一个后缀
子序列: 从s中删去零个或多于零个符号(这些符号不要求是连续的)
长度:是该符号串中的符号的数目。
由字母表中的符号所组成的的任何有穷序列被称之为该字母表上的符号串,也称作“字”(Word)
正闭包
∑ ∑ 的正闭包(Positive Closure):
∑+ ∑ + ={x | x是 ∑ ∑ 上的非空字符串}
∑+ ∑ + = ∑⋃∑2⋃∑3⋃∑4⋃...... ∑ ⋃ ∑ 2 ⋃ ∑ 3 ⋃ ∑ 4 ⋃ . . . . . .
克林闭包
∑ ∑ 的克林闭包(Kleene Closure):
∑∗ ∑ ∗ ={ E E } ⋃∑+ ⋃ ∑ +
∑∗ ∑ ∗ = ∑0⋃∑⋃∑2⋃∑3⋃∑4⋃...... ∑ 0 ⋃ ∑ ⋃ ∑ 2 ⋃ ∑ 3 ⋃ ∑ 4 ⋃ . . . . . .
乘积
设 ∑1 ∑ 1 、 ∑2 ∑ 2 是两个字母表, ∑1 ∑ 1 与 ∑2 ∑ 2 的乘积(Product) ∑1∑2 ∑ 1 ∑ 2 ={ ab | a ∈∑1 ∈ ∑ 1 ,b ∈∑2 ∈ ∑ 2 }
语言&句子
设