欢迎来到天天文库
浏览记录
ID:59331077
大小:679.50 KB
页数:76页
时间:2020-09-20
《哈工大编译原理第二章语言概述ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、高级语言及其文法2.1语言概述2.2基本定义2.3文法(Grammar)的定义2.4CFG的分析树(ParseTree)2.5文法的分类2.6文法的构造本章主要内容2.1语言概述什么是语言?2.1语言概述语言特征自然语言(NaturalLanguage)是人与人的通讯工具语义(semantics):环境、背景知识、语气、二义性——难以形式化计算机语言(ComputerLanguage)计算机系统间、人机间通讯工具严格的语法(Grammar)、语义(semantics)——易于形式化:严格2.1语言概述语言的
2、描述方法——现状自然语言:自然、方便-非形式化数学语言(符号):严格、准确-形式化形式化描述高度的抽象,严格的理论基础和方便的计算机表示。2.1语言概述语言——形式化的内容提取语言(Language):满足一定条件的句子集合句子(Sentence):满足一定规则的单词序列单词(Token):满足一定规则的字符(Character)串语言是字和组合字的规则例(自然语言:第译始一天课今开编上节)今天开始上第一节编译课2.1语言概述语言是字及其组合规则的统一体2.1语言概述程序设计语言——形式化的内容提取程序设计
3、语言(ProgrammingLanguage):组成程序的所有语句的集合。程序(Program):满足语法规则的语句序列。语句(Sentence):满足语法规则的单词序列。单词(Token):满足词法规则的字符串。例:变量:=表达式if条件then语句while条件do语句call过程名(参数表)2.1语言概述描述形式——文法语法——语句语句的组成规则描述方法:BNF范式、语法(描述)图词法——单词单词的组成规则描述方法:BNF范式、正规式形式语言于自动机理论的产生与作用语言学家Chomsky最初从产生语言
4、的角度研究语言。1956年,通过抽象,他将语言形式地定义为是由一个字母表中的字母组成的一些串的集合。可以在字母表上按照一定的规则定义一个文法(Grammar),该文法所能产生的所有句子组成的集合就是该文法产生的语言。克林(Kleene)在1951年到1956年间,从识别语言的角度研究语言,给出了语言的另一种描述。克林是在研究神经细胞中,建立了自动机,他用这种自动机来识别语言:对于按照一定的规则构造的任一个自动机,该自动机就定义了一个语言,这个语言由该自动机所能识别的所有句子组成。形式语言于自动机理论的产生与
5、作用1959年,Chomsky通过深入研究,将他本人的研究成果与克林的研究成果结合了起来,不仅确定了文法和自动机分别从生成和识别的角度去表达语言,而且证明了文法与自动机的等价性。20世纪50年代,人们用巴科斯范式(BackusNourForm或BackusNormalForm,简记为BNF)成功地对高级语言ALGOL-60进行了描述。实际上,巴科斯范式就是上下文无关文法(ContextFreeGrammar)的一种表示形式。这一成功,使得形式语言在20世纪60年代得到了大力的发展。形式语言于自动机理论的产生
6、与作用形式语言与自动机理论除了在计算机科学领域中的直接应用外,更在计算学科人才的计算思维的培养中占有极其重要的地位计算思维能力的培养,主要是由基础理论系列课程实现的,该系列主要由从数学分析开始到形式语言结束的一些数学和抽象程度比较高的内容的课程组成。它们构成的是一个梯级训练系统。在此系统中,连续数学、离散数学、计算模型等三部分内容要按阶段分开,三个阶段对应与本学科的学生在大学学习期间的思维方式和能力的变化与提高过程的三个步骤。计算思维能力的培养过程中学数学数学分析离散数学具体.静止变量.运动离散.抽象形式.
7、模型(基本运算系统)(计算系统)实数抽象集合单一、具体的计算一般、形式化的计算(实例计算)(模型化计算)形式语言与自动机理论运算范围特征高水平计算专业人才的计算思维能力的渐进培养2.2基本定义字母表(Alphabet)∑是一个非空有穷集合,字母表中的元素称为该字母表的一个字母(Letter),也叫字符(Character)。例以下是不同的字母表:⑴{a,b,c,d}⑵{a,b,c,……,z}⑶{0,1}(4)ASCII字母表2.2基本定义符号串的定义(1)ε是∑上的一个符号串。(2)若x是∑上的符号串,而a
8、是∑的元素,则xa是∑上的符号串。(3)y是∑上的符号串,当且仅当它由(1)和(2)导出。由字母表中的符号所组成的任何有穷序列被称之为该字母表上的符号串,也称作"字"。2.2基本定义设s是符号串,则s的前缀:移走s的尾部的零个或多于零个符号后缀:删去s的头部的零个或多于零个符号子串:从s中删去一个前缀和一个后缀子序列:从s中删去零或多于零个符号(这些符号不要求连续)逆转(用SR表示):将S中的符号按相反次序写出而
此文档下载收益归作者所有