第二章理解回顾——高级语言及其语法描述

高级语言及其语法描述

Part 1 概念明晰

讨论对象:高级语言
讨论内容:高级语言的一些定义、结构、和共同特征

程序语言定义——语法和语义

程序语言是一个记号系统,通过该系统中指定的一组符号进行组合来表达一些特定的含义,用于描述问题及解决方案。

一组符号进行组合:在这过组合的过程中所遵循的规则,便是语言的语法。
一些特定的含义:规定了语法成分的实际含义,就是语言的语义。

  • 语法
    首先,任何语言都是建立在一个特定的字符集之上的。(如英语的26个字母,中文的偏旁部首等等)。
    但却不是任意的组合都能形式正确,例如 Giev I a book him.尽管是一个字符串排列,却不符合我们的想要的形式。因此我们需要将排列产生,由“giev”到“give”,由“Give I a book”到“I give him a book”这样的形式时,它会对应某种合乎要求形式正确(合式)的规则,这组规则就是该语言的语法。
    因此, 程序语言的语法是由词法规则语法规则两部分组成的。

词法规则是指单词符号的形成规则。单词符号的形成比较简单,通常由数个至数十个字符排列而成,少数单词符号直接由字母表中的单个字符构成。
注:单词符号是语言中具有独立意义的最基本结构。包括关键字、标识符、常数、运算符、界符(逗号、分号、括号等)。

语言的语法规则规定了如何从单词符号形成更大的结构(即语法单位),即语法规则是语法单位的形成规则。常见的语法单位有:表达式、语句、分程序、函数、过程和程序等。

  • 语义
    在有字母表、语法、词法规则之外,当然还必须规定出它的各个单词符号和语法单位的含义(如在英文中构词action、invention这些单词符号和句式if…else结构就要给出含义,否则没有含义也就无法对应使用),这便是要解决语义的问题。而语义仍然是一组规则,可以理解为定义意义的规则。(可以类比成英语里的构词法等)。很明显,这样一种解释是对语法单位的人为解释,对形式上相同的一个语法单位,在不同的语言中可能会有不同的解释,即语义不同。

  • 理解程序结构
    一个程序实质上是对某一问题(用数据表示)及处理这一问题的方法(体现为对数据的运算)作出的描述。对目前的许多程序语言,它的一个程序可以看成是一个层次结构:
    在这里插入图片描述

高级语言的一般特性

要说高级语言的一般特性,也就是说当我们谈到高级语言时会涉及到一些什么要素。下面简要列出。
1.高级语言的分类

  • 强制性语言
  • 应用式语言
  • 基于规则语言
  • 面向对象语言

2.程序的结构
一般是由过程、函数等若干子程序段构成,有些还引入了程序包、类等更高级的结构

3.数据类型与操作
4.表达式:由运算量(操作数:变量,常量、数据引用、函数调用等等)和算符组成。
5.语句:可分为说明性语句,执行性语句

Part 2 程序语言的语法描述

直接走重要的部分。

上下文无关文法

文法是描述语言的语法结构的形式规则。如果一种文法所定义的语法范畴(或称语法单位)是完全独立于这种范畴可能出现的环境的,则称此文法为上下文无关文法。

  • 例子引入
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 符号描述
    在这里插入图片描述

VT 中的每一个符号称为终结符号,代表一个语言不可再分的基本符号。 在程序语言中指的是单词符号。
VN中的每一个符号称为非终结符号,也称语法变量,用来代表语法范畴。例如,“算术表达式”、“布尔表达式”、“赋值句”、“分程序”、“过程”等。

既然非终结符号用来代表语法范畴,它表示的是一个类记号的集合。也就是说非终结符号在文法中起到了延续扩展的作用,也就上面例子中语法范畴不断的被细化缩小。所以非终结符号是由终结符号、非终结符号组成的一个字符串。(有非终结符号就可以继续缩小语法范围,而这个缩小的终点就是达到只有终结符号的表达)
在这里插入图片描述
在这里插入图片描述

  • 关于文法的确定描述
    在这里插入图片描述
    在这里插入图片描述
  • 最左推导与最右推导
    注意是选择非终结符号替换在这里插入图片描述
    例题理解(1)
    在这里插入图片描述
    解答:
    在这里插入图片描述
    在这里插入图片描述
  • 语法分析树

在这里插入图片描述
(2)
在这里插入图片描述

  • 关于二义性
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值