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

本文详细介绍了程序语言的定义,重点讨论了高级语言的语法,包括词法和语法规则,以及上下文无关文法G。文章还概述了高级语言的分类,如强制式、应用式和面向对象语言,并提及数据类型的概念。此外,文中还通过实例解释了文法的产生式和句子的生成过程。
摘要由CSDN通过智能技术生成

一、程序语言的定义

语法:一组规则,用这组规则可以产生形式上正确的程序

词法规则:合法单词的构成规则,也就是如何从字母表中选择字符构成一个合法单词(用有限状态自动机或正规式描述)。


语法规则:合法程序的构成规则,也就是如何把各个单词符号组成更大的语法单位(语句、程序)(用上下文无关文法进行描述)

世界上已有上千种高级语言

例如:
FORTRAN:面向科学计算
COBAL:面向事务处理
PROLOG,LISP,python等:人工智能
Ada:大型嵌入式实时处理
SNOBAL:符号处理

C++,C:通用

任何语言实现的基础是语言的定义。

在定义方面,编译程序研制者与一般用户有所不同
用户关心语言如何使用
开发人员关心文法的定义。他们对哪些构造允许出现更感兴趣。

程序语言主要由语法和语义两方面定义。

二 高级语言的一般特征

1、高级语言的分类

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

(2)、编译时是否需要类型检查:静态类型语言(C/C++、Java)、动态类型语言(Python、PHP)

(3)、类型检查强弱:弱类型、强类型

(4)、是否支持过程的嵌套定义:支持(Pascal)、不支持(C/C++、Java)

2、数据类型

基本数据类型(int,double...)

构造数据类型(数组、指针...)

自定义数据类型(栈、队列、字符串...)

三.语法

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

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

记V﹢=VV*,称为V的正则闭包。

3、上下文无关文法G

(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* }。

二.应用

6、(1) L ( G6 ) 是0到9 组成的数字串.

(2)最左推导: N =>ND =>NDD =>NDDD =>DDDD =>0DDD =>01DD=>012D=>0127 

N =>ND =>DD =>3D=>34

 N =>ND =>NDD =>DDD =>5DD =>56D =>568

最右推导: N =>ND =>N7=>ND7=> N27=> ND27=> N127=> D127=>0127

N =>ND =>N4=>D4=> 34

N =>ND =>N8=>ND8=> N68=>D68=>568

7. G( S ) S->J | AJ     J->1 |3| 5| 7| 9     O->2 |4 |6 |8 | J     T->0 | O     A->AT | O

8.

                      i + i + i                                          i + i * i    

                            

总结 : 很高兴这个学期能够学习编译原理这门课,我很喜欢,但是比较难,目前还是 处于啥都不会的状态,不过我会好好学习的,争取早日跟上大家的步伐
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值