第二章 高级语言及其语法描述

一、程序语言的定义:

  1、程序语言主要是由语法和语义两个方面定义。

  2、任何语言程序都可以看作是一定字符集上的一字符串。

  3、词法规则是指单词符号的形成规则。

  4、语言的语法规则规定了如何从单词符号形成更大的结构(语法单位),换言之,语法规则是语法单位的形成规则。语法单位        一般包括:表达式,语句,分程序,函数,过程和程序。

  5、语言的语法规则和词法规则定义了程序的形式结构。 

  6、一个程序语言的基本功能是描述数据和对数据的运算。程序从本质上来说是描述一定数据的处理过程。


二、高级语言的一般特性:

  1、高级语言的分类:语言范畴:强制式语言(FORTRAN、C)、应用式语言(LISP、ML)、基于规则的语言(Prolog)、面向对象语言(Java)。

  2、数据类型:(1)初等数据类型:①数值数据②逻辑数据③字符数据④指针类型

                     (2)数据类型:①数组②记录③字符串、表格、栈和队列

                     (3)抽象数据类型

三、程序语言的语法描述:

  1、1、设∑是一个有穷字母表,它的每个元素称为一个符号。∑上的一个符号串是指由∑中的符号所构成的一个有穷序列。不包含任何符号的序列称为空字,记为ε。用∑*表示∑上的所有符号串的全体,包括ε。φ表示不含任何元素的空集。

  2、集合V自身的n次(连接)积记为:Vⁿ=VV...V;规定Vº={ε}。令V*=Vº∪V¹∪V²...Vⁿ,称为V的闭包。记V﹢=VV*,称为V的正则闭包。

  3、(1)、G定义:它所定义的语法范畴(语法单位)是完全独立于这种范畴可能出现的环境的。
       (2)、G包括四个组成部分:一组终结符号(VT),一组非终结符号(VN),一个开始符号(S),一组产生式(P)。
        VT:一般用小写字母或阿拉伯数字表示,非空有限集
        VN:一般用大写字母表示,非空有限集 VN∩VT=φ
        S:非终结符号
        P:产生式集合(有限),形式:P—>a,P∈VN,a∈(VT∪VN)*。S必须在某个产生式的左部出现一次。
       (3)、假定G是一个文法,S是它的开始符号。如果S=>a,则称a是一个句型。仅含终结符的句型是一个句子。文法G所产         生的句子的全体是一个语言,将它记为L(G)。

         ★★★L(G)={ a | S=+>a&a∈VT* }。

  4、最左推导:任何一步a=>b都是对a中的最左边非终结符进行替换。

  5、如果文法G的一个句子存在两棵不同的最左语法分析树,则这个文法是二义的。 

       如果文法G的一个句子存在两棵不同的最右语法分析树,则这个文法是二义的。

  6、乔姆斯基(Chomsky)将文法分为四类,即0型文法(强于1)、1型文法(强于2)、2型文法(强于3)、3型文法。0型文法是短语文法,1型文法是上下文有关文法,上下文无关文法是2型文法,2型文法的描述能力最强,3型文法又称为正规文法。

四、课后题第六题

  G6:

  N→D|ND

  D→0|1|2|3|4|5|6|7|8|9

  则L(G6)是终结符产生的一个符号串,即数字0~9组成的符号串。

五、总结:本章主要写了高级程序语言的结构和主要的共同特征,并且介绍了程序语言的语法描述方法。本章是学习编译原理的基础,要学好和构造编译程序,理解和定义高级程序语言,本章是基础必须要学好。本章要解决的问题有①给定一个问题,定义语法②由文法,找出该文法所形成的的语言。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值