第二章高级语言及其语法描述课件.pptx
文本预览下载声明
第2章 高级语言及其语法描述
• 程序语言的定义
• 高级语言的一般特性
•程序语言的语法描述
• 形式语言鸟瞰
程序语言的定义
记号系统 = 语法 + 语义 +[语用]
词法规则
语法规则
语法:
n 定义:是指规定如何由基本符号组成一个完整的程序的 规则。可以分文一般的词法规则和语法规则 (产生规则) 。
例子:0.5 *X1 + C
n 语言的词法规则——单词符号的形成规则
单词符号是语言中具有独立意义的最基本单位,包括各类型的常数、 标识符、基本字、算符和界符等。
n 语言的语法规则——语法单位的形成规则
规定如何从单词符号形成语法单位 (包括:表达式、语句、 分程序、函数、过程和程序等) 的规则。
n 语法规则的描述——上下文无关文法
词法规则和语法规则定义了程序的形式结构,是判断 输入字符串是否构成一个形式上正确程序的依据。
程序语言的基本功能:
描述数据和对数据运算。程序语言的 每个组成成分都有(抽象的) 逻辑和计 算机实现两方面的意义。
高级语言的一般特性:
• 高级语言的分类
类 别
特 点
语法形式
示 例
类 别
特 点
示 例
备 注
• 数据类型与操作 (P19)
• 程序结构
类 别
数据
运 算
示 例
初等数据类型
数据结构
抽象数据类型
标识符—— 由字母或数字组成的以字母为开头的一个字符串。 它没有意义。
名 字——是代表一个抽象的存储单元,存储单元的内容就是 该名字的值,也是名字所表示的一个具体对象,名字还有明确 的属性 (包括类型和作用域) 和意义。
数据类型与操作 (P19) :
程序语言的语法形式描述(P25)
• x :字母表——有穷符号集合(注意:是“符号”,而 不是“字符”)
•符号——字母表中的元素
•例如: x={a,b,c,d,e,….z} x={begin,end,if, for, while}
• 符号串——字母表中的符号构成的有穷序列
• 例如: {aa,bb,cc,dd,…} (显然是一个无穷的集合)
• 空字:不包含任何符号的序列,记为 c。
•注意区分: c,{},{c}
用 x* 表示x*上的所有符号串的全体
例如: x={ a, b },则
x* = {c , a , b, aa , ab , ba ,bb , aaa , …}
• 连接积——UV = { | =U 且 =V}
( U 、V是 x *的子集)
即UV中的符号串是 U 和 V中的符号串连接而成的。
例如: U ={ a, b } 、V ={ aa , bb }
则UV = { aaa, abb ,baa ,bbb }
• Vn = V V V ……V 规定V0 = { c }
v 闭包: V* = V0 U V1 U V2 U V3 U……
v正则闭包: V+= V V*
例如: 已知字母表X ={ 0,1,2,3,4,5,6,7 },求X*和 X + 解答: X0 = { c } ,X1 = X= { 0,1,2,3,4,5,6,7 },
X2 = { 00,01,02,03,04,05,06,07 ,…… ,77 }
…… ……
X*={c , 0,1,2,3,4,5,6,7, 00 ,…77 ,000 ,… ,777 ,… } X + = XX*
={0,1,2,3,4,5,6,7, 00 ,…77 ,000 ,… ,777 ,… }
例子:给定如下子语言框架:
程序 - Program程序 ;分程序
分程序 - 分程序体|说明;分程序体
说明 -Integer 标识符表|Real| 标识符表 |Bloolean 标 识符表 |Procedure 过程标识符 分程序 | 说明;说明; 分程序体 - Begin 语句 End
语句 - 标识符| 特殊字符 | 语句 ;语句
程序名 - 标识符
过程标识符 - 标识符
标识符表 - 标识符| 标识符| 标识符表
标识符 - 字母 | 标识符 字母 | 标识符 数字 特殊字符 - $
字母 -A |B | … |Z |a|b| … |z
数字 -0 |1 |2 |3 |4 |5 |6 |7 |8 |9 |
该子语言文法的开始符号为( ),终结 符号为( )非终结符号为( )。
例子: he gave me a book.
VT ={ he , gave , me , a ,book }
VN = { 句子 ,主语 ,谓语, 直接宾语, 间接宾语 , 代词,冠词 , 动词 , 名词 }
S =句子
P={ 句子 - 主语
显示全部