- 1
- 0
- 约9.56千字
- 约 59页
- 2016-09-21 发布于江西
- 举报
ly.Ch02-1,2
第二章 前后文无关文法和语言 西北工业大学,计算机学院 林奕 2008年 在20世纪50年代,N.Chomsky首先对语言的描述问题进行了探讨。他提出了一种用来描述语言的数学系统,并以此定义了四类性质不同的语言,称为语言(文法)的Chomsky分类。 人们把用一组数学符号和规则来描述语言的方式称为形式描述,把所用的数学符号和规则称为形式语言。 目前,形式语言与自动机理论已成为计算机科学中的一个重要分支。 本章将初步介绍形式语言中的某些基本概念和知识,重点是与编译技术密切相关的一些术语和概念,诸如文法、语言、句子、句型、短语、句柄以及句型分析等。 2.1 文法和语言的表示 什么是语言? 据统计,目前在世界各地人们使用的语言达2700多种。 Webster定义:“为相当大地区的公众所懂得并使用的‘话’,以及组成这些‘话’的方法的统一体” 更精确的定义: “某一字母表上符号串(句子)的集合” 描述语言需要什么 1)还应为所定义的句子提供一种结构性的描述(语法规则); 2)最好能再提供一种手段,以便能准确地判别什么是该语言中的正确句子(即识别方法、分析方法等)。 2.1.1 语言,文法与编译器的关系(I) 编译器 一种自动化的符号识别程序 语言 聆听者可以理解的所有话语(语句,文章…) 文法(grammar,syntax) 语言的内部规则(如C语言的语法,英文语法) 2.1.1 语言,文法与编译器的关系(II) 软件设计需要什么? 需求分析:要解决什么问题? 系统分析与设计:如何解决这些问题? 编译器设计时,需要知道什么? 要识别什么语言?如C语言 该语言包含什么内容?C语言的单词和语句构成规则,以及执行时的实际含义 识别该语言的编译器应当如何设计和实现? 2.1.1 语言,文法与编译器的关系(III) 语言 编译器的识别对象。如所有可能的C语言编写的程序! 文法:不需死记硬背!掌握规则即可遣词造句 编译器设计的需求。 语言构成方式的描述。 对文法的要求: 准确性,无二义性:否则不同设计者设计的编译器可能不兼容。例如,A(1)(数组)和func(1)(函数) 语义:语句的执行方式(通常难以形式化表示) 例如:c=a+b的语义:将变量a和b的值放入寄存器r1和r2,执行add指令(结果放入r1),将r1值存入变量c的内存地址。 2.1.2 本章与后续章节的关系(I) 语言、文法的符号表示(BNF范式) 后续章节论述算法时,均采用此表示方法 推导、归约均以此为基础 从文法产生和识别语言的方法 推导和归约:LL分析法和LR分析法 语法分析和词法分析的本质:提高推导和规约的效率 语义分析:在推导/归约的每个步骤中,添加语义动作 2.1.2 本章与后续章节的关系(II) 符号串及其运算:正规表达式等 语法树,句子,句型,短语,句柄,素短语(第4章)的含义(后续算法中会用到) 对语法定义的要求:没有无用符号、无用产生式、ε产生式、单产生式 文法和语言的Chomsky分类 2.2 文法和语言的基本概念 程序设计语言(Programming Language,PL)的表示方法 问题本质:用一种语言表示另一种语言 不是任意语言,存在一定限制 用什么语言表示PL? 2.2.1 表示语言有什么方法 方法1:自然语言 C语言手册,C语言规范 方法2:数学语言(形式语言或其他合适的数学模型) BNF,自动机等表示语法 比较: 前者模糊易懂,后者精确严格(不等于简洁) 前者强,后者弱 语法:形式语言 语义:半形式语言或自然语言(纯粹的形式语言难以理解--且目前很难由编译器自动处理) 概念辨析:语法、文法、词法 概念辨析:语法、文法、词法 语法(Syntax):语言的构成规则(元素是词,相对于词法而言) 词法(Lexical Rule):词汇的构成规则 文法(Grammar):语法、词法表示的是具有不同特点的语言。文法是对语言构成的结构规则的统称--实际上是描述语法的表示方法 2.2.2 语言的数学表示方法 符号、符号串及其运算规则 文法表示 BNF与前后文无关文法 文法推导和归约 推导:自顶向下(LL,递归下降) 归约:自底向上(LR等) 2.2.2.1 符号串及其相关运算(1)字母表和符号串 (1)字母表和符号串(续1) 3、符号串:字母表中符号组成的任何有穷序列 例:0,1, 01, 10, 011,.. 符号串的长度 = 符号串中所含符号的个数 例:aba的长度为3。记为:|aba|=3 4、空符号串:不含任何符号的符号串 用ε表示 显然,| ? |= 0 (1)字母表和符号串(续2) 5、符号串的前(后)缀及子串 从符号串s的尾部删去若干个(包括0个)符号之后所余下的部分称为s的前缀。 设?,
您可能关注的文档
- it一般性控制介绍(06.8.22).ppt
- Java05算法与数据结构96912.ppt
- JBPM实例教程,jbpm入门教程财务系统第三十四课.ppt
- Language and culture 介绍语言与文化的ppt.pptx
- Lecture 9 20世纪英国文学.ppt
- Lecture00_overview95.ppt
- MATLAB基础(绘图).ppt
- mn雨林木风-文言文翻译原则及方法.ppt
- 2025年第四季度N1三基理论考试测试卷及答案.docx
- 2025年第十一期消费信贷培训考试测试卷及答案.docx
- 2025年第三季度母乳喂养知识考试测试卷及答案.docx
- 2025年第三季度急危重症专项理论考试测试卷及答案.docx
- 2026年农药行业绿色转型市场竞争策略研究报告.docx
- 2025年第三季度妇科三基考试测试卷及答案.docx
- 2026年农药行业绿色转型成本控制与市场需求分析报告.docx
- 2025年第三季度医疗综合三基考试测试卷及答案.docx
- 2025年第三季度儿保科医生组三基三严考试测试卷及答案.docx
- 2026年农药行业绿色转型成本效益分析报告.docx
- 2025年第二季度N0-N4护理人员理论考核测试卷及答案.docx
- 2026年农药行业绿色认证流程与市场需求动态分析报告.docx
原创力文档

文档评论(0)