编译原理 前后文无关文法与语言.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 文法和语言 在20世纪50年代,N.Chomsky首先对语言的描述问题进行了探讨。他提出了一种用来描述语言的数学系统,并以此定义了四类性质不同的语言,称为语言(文法)的Chomsky分类。 人们把用一组数学符号和规则来描述语言的方式称为形式描述,把所用的数学符号和规则称为形式语言。 目前,形式语言与自动机理论已成为计算机科学中的一个重要分支。 本章将初步介绍形式语言中的某些基本概念和知识,重点是与编译技术密切相关的一些术语和概念,诸如文法、语言、句子、句型、短语、句柄以及句型分析等。 本 章 内 容 2.1 语言的概述 2.2 文法和语言的定义 2.1 语言的概述 什么是语言 自然语言(Natural Language) 是人与人的通讯工具 语义(Semantics):环境、背景知识、语气、二义性——难以形式化 计算机语言(Computer Language) 计算机系统间、人机间通讯工具 严格的语法(Grammar)、语义(Semantics) ——易于形式化:严格 语言是用来交换信息的工具——功能性描述 2.1 语言概述 语言的描述方法——现状 自然语言:自然、方便-非形式化 数学语言(符号):严格、准确-形式化 形式化描述 高度的抽象,严格的理论基础和方便的计算机表示。 2.1 语言概述 语言——形式化的内容提取 单词(Token):满足一定规则字符(Character)串 句子(Sentence):满足一定规则单词序列 语言(Language):满足一定条件的句子集合 语言是字和组合字的规则——结构性描述 例:一译开天第课今始编节上 今天开始上第一节编译课 2.1 语言概述 程序设计语言——形式化的内容提取 程序设计语言(Programming Language):组成 程序的所有语句的集合 程序(Program):满足语法规则的语句序列 语句(Sentence) :满足语法规则的单词序列 单词(Token) :满足词法规则的字符串 例 变量=表达式 if 条件 then 语句 while条件 do 语句 call 过程名(参数表) 2.1 语言概述 语言描述形式——文法 语法——语句 语句的组成规则 描述方法:BNF(巴科斯范式: Backus Normal Form )范式、语法(描述)图 词法——单词 单词的组成规则 描述方法:BNF范式、正规式 复习:巴科斯范式 (BNF -- Backus Normal Form) 遗憾的是,对于自然语言来说,目前尚无能够完全刻划一语言全部句子的结构的方法。 然而,对大多数程序设计语言来说,此问题已被解决。1960年,P.Naur J.Backus(巴科斯--瑙尔)首先用BNF(Backus-Naur-Formal(范式))对ALGOL语言进行了描述。应指出,BNF成功地解决了程序设计语言的语法描述问题,但描述其语义,还必须借助自然语言。 巴科斯范式 (BNF ) 例子: The big elephant ate the peanut.(大象吃花生) The little boy ran quickly.(小男孩跑得快) The man has a dog.(这人有一条狗) 以上都是符合英语语法规则的句子,即它们是在英语语法规则中成立的句子。 如何描述一个给定的句子在给定规则下是否成立呢? ①〈句子〉∷=〈主语〉〈谓语〉 ②〈主语〉∷=〈冠词〉〈形容词〉〈名词〉 ③〈冠词〉∷=the  ④〈形容词〉∷= big ⑤〈谓语〉∷=〈动词〉〈宾语〉 ⑥ 〈动词〉∷=ate ⑦ 〈宾语〉∷=〈冠词〉〈名词〉 ⑧〈名词〉∷=elephant | peanut 我们把这种描述语法规则方法称巴科斯范式,也称巴科斯--瑙尔范式(Backus Normal Form),简称BNF。 步骤 推导 所用规则 1 句子? 主语 〈谓语〉 ① 2 ? 冠词〈形容词〉 〈名词〉 〈谓语〉  ② 3 ? the 〈形容词〉 〈名词〉 〈谓语〉 ③ 4 ? the big 〈名词〉 〈谓语〉

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档