资源描述:
《高级语言及其语法描述.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第2章高级语言及其语法描述程序语言的定义高级语言的一般特性程序语言的语法描述文法形式语言鸟瞰程序语言的定义记号系统=语法+语义+[语用]词法规则语法规则语法:定义:是指规定如何由基本符号组成一个完整的程序的规则。可以分文一般的词法规则和语法规则(产生规则)。例子:0.5*X1+C语言的词法规则——单词符号的形成规则单词符号是语言中具有独立意义的最基本单位,包括各类型的常数、标识符、基本字、算符和界符等。语言的语法规则——语法单位的形成规则规定如何从单词符号形成语法单位(包括:表达式、语句、分程序、函数、过程和程序等)的规则。语法规则的描述—
2、—上下文无关文法词法规则和语法规则定义了程序的形式结构,是判断输入字符串是否构成一个形式上正确程序的依据。语义——单词符号和语法单位的意义。语义:形式上完全相同的语法单位在不同的语言中语义是不相同的。程序语言的基本功能:描述数据和对数据运算。程序语言的每个组成成分都有(抽象的)逻辑和计算机实现两方面的意义。高级语言的分类程序结构数据类型与操作(P19)高级语言的一般特性:类别特点语法形式示例类别特点示例备注标识符——由字母或数字组成的以字母为开头的一个字符串。它没有意义。名字——是代表一个抽象的存储单元,存储单元的内容就是该名字的值,也是名
3、字所表示的一个具体对象,名字还有明确的属性(包括类型和作用域)和意义。数据类型与操作(P19):类别数据运算示例初等数据类型数据结构抽象数据类型赋值语句(P24):A:=B右值,表示名字的值左值,存储单元,地址程序语言的语法形式描述(P25):字母表——有穷符号集合(注意:是“符号”,而不是“字符”)符号——字母表中的元素例如:={a,b,c,d,e,….z}={begin,end,if,for,while}符号串——字母表中的符号构成的有穷序列例如:{aa,bb,cc,dd,…}(显然是一个无穷的集合)空字:不包含任何符号的序列,记
4、为。注意区分:,{},{}连接积——UV={
5、U且V}(U、V是*的子集)即UV中的符号串是U和V中的符号串连接而成的。用*表示*上的所有符号串的全体例如:={a,b},则*={,a,b,aa,ab,ba,bb,aaa,…}例如:U={a,b}、V={aa,bb}则UV={aaa,abb,baa,bbb}Vn=VVV……V规定V0={}闭包:V*=V0UV1UV2UV3U……正则闭包:V+=VV*例如:已知字母表X={0,1,2,3,4,5,6,7},求X*和X+解答:X0={},X1=X={0,1,2,3
6、,4,5,6,7},X2={00,01,02,03,04,05,06,07,……,77}…………X*={,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,…}上下文无关文法(P27):1、概念文法——描述语言的语法结构的形式规则(即语法规则)上下文无关文法——文法所定义的语法单位是完全独立于这种语法单位可能出现的环境的。2、上下文无关文法G={终结符VT,非终结符集VN,开始符号S,产生式集P}(P27)文法的表示方法;G,G[S]例子
7、:给定如下子语言框架:<程序>->Program<程序>;<分程序><分程序>-><分程序体>
8、<说明>;<分程序体><说明>->Integer<标识符表>
9、Real
10、<标识符表>
11、Bloolean<标识符表>
12、Procedure<过程标识符><分程序>
13、<说明>;<说明>;<分程序体>->Begin<语句>End<语句>-><标识符>
14、<特殊字符>
15、<语句>;<语句><程序名>-><标识符><过程标识符>-><标识符><标识符表>-><标识符>
16、<标识符>
17、<标识符表><标识符>-><字母>
18、<标识符><字母>
19、<标识符><数字><特殊字
20、符>->$<字母>->A
21、B
22、…
23、Z
24、a
25、b
26、…
27、z<数字>->0
28、1
29、2
30、3
31、4
32、5
33、6
34、7
35、8
36、9
37、该子语言文法的开始符号为(),终结符号为()非终结符号为()。例子:hegavemeabook.VT={he,gave,me,a,book}VN={<句子>,<主语>,<谓语>,<直接宾语>,<间接宾语>,<代词>,<冠词>,<动词>,<名词>}S=<句子>P={<句子>-><主语><谓语><直接宾语><间接宾语>,<主语>--><代词>,…………<代词>-->he,…………}<句子>语法树<主语><间接宾语><直接宾语><谓语>he<代
38、词>gave<动词>me<代词><冠词><名词>abook3、推导(P29)、最左推导和最右推导(P30)4、句型、句子(P29)例如:文法2.1:E→E+E
39、E*E
40、(E)
41、i