文档详情

高级语言及其语法描述.pptx

发布:2025-05-24约3.32千字共10页下载文档
文本预览下载声明

第2章高级语言及其语法描述程序语言的定义高级语言的一般特性程序语言的语法描述文法形式语言鸟瞰

程序语言的定义记号系统=语法+语义+[语用]词法规则语法规则

语法:词法规则和语法规则定义了程序的形式结构,是判断输入字符串是否构成一个形式上正确程序的依据。定义:是指规定如何由基本符号组成一个完整的程序的规则。可以分文一般的词法规则和语法规则(产生规则)。例子:0.5*X1+C语言的词法规则——单词符号的形成规则单词符号是语言中具有独立意义的最基本单位,包括各类型的常数、标识符、基本字、算符和界符等。语言的语法规则——语法单位的形成规则规定如何从单词符号形成语法单位(包括:表达式、语句、分程序、函数、过程和程序等)的规则。语法规则的描述——上下文无关文法

语义:添加标题语义——单词符号和语法单位的意义。添加标题形式上完全相同的语法单位在不同的语言中语义是不相同的。

描述数据和对数据运算。程序语言的每个组成成分都有(抽象的)逻辑和计算机实现两方面的意义。程序语言的基本功能:

高级语言的一般特性:类别特点语法形式示例类别特点示例备注高级语言的分类程序结构数据类型与操作(P19)

类别数据运算示例初等数据类型数据结构抽象数据类型标识符——由字母或数字组成的以字母为开头的一个字符串。它没有意义。名字——是代表一个抽象的存储单元,存储单元的内容就是该名字的值,也是名字所表示的一个具体对象,名字还有明确的属性(包括类型和作用域)和意义。数据类型与操作(P19):

赋值语句(P24):01A:=B02右值,表示名字的值03左值,存储单元,地址

程序语言的语法形式描述(P25)?:字母表——有穷符号集合(注意:是“符号”,而不是“字符”)符号——字母表中的元素例如:?={a,b,c,d,e,….z}?={begin,end,if,for,while}符号串——字母表中的符号构成的有穷序列例如:{aa,bb,cc,dd,…}(显然是一个无穷的集合)空字:不包含任何符号的序列,记为?。注意区分:?,{},{?}

用?*表示?*上的所有符号串的全体例如:?={a,b},则?*={?,a,b,aa,ab,ba,bb,aaa,…}(U、V是?*的子集)即UV中的符号串是U和V中的符号串连接而成的。连接积——UV={??|??U且??V}例如: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,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):概念文法——描述语言的语法结构的形式规则(即语法规则)上下文无关文法——文法所定义的语法单位是完全独立于这种语法单位可能出现的环境的。上下文无关文法G={终结符VT,非终结符集VN,开始符号S,产生式集P}(P27)文法的表示方法;G,G[S]

单击此处可添加副标题例子:给定如下子语言框架:程序-Program程序;分程序分程序-分程序体|说明;分程序体说明-Integer标识符表|Real|标识符表|Bloolean标识符表|Procedure过程标识符分程序|说明;说明;分程序体-Begin语句End语句-标识符|特殊字符|语句;语句程序名-标识符过程标识符-标识符标识符表-标识符|标识符|标识符表标识符-字母|标识符字母|标识符数字特殊字符-$单击此处添加大标题内容

添加标题字母-A|B|…|Z|a|b|…|z添加标题数字-0|1|2|3|4|5|6|7|8|9|添加标题该子语言文法的开始符号为(),终结符号为()非终结符号为()。

例子:hegave

显示全部
相似文档