第二章 文法和语言.pptxVIP

  • 5
  • 0
  • 约4.64千字
  • 约 45页
  • 2019-10-15 发布于湖北
  • 举报
第二章 文法和语言;一、高级语言 程序语言是一个记号系统。 语法 语义 ;1.语法;(1)单词符号 语言中具有独立意义的最基本结构。 词法规则 词法规则规定了字母表中哪些字符串是单词符号。 单词符号一般包括:常数、标识符、基本字、算符、界符等。 用正规式和有限自动机理论来描述词法结构和进行词法分析。 ;(2)语法单位 表达式、子句、语句、函数、过程、类、程序 (3)语法规则 规定了如何从单词符号来形成语法单位。 现在多数程序语言使用上下文无关文法来描述语法规则。 语言的词法规则和语法规则定义了程序的形式结构,是判断输入字符串是否构成一个形式上正确的程序的依据。 ;2.语义;对于高级程序设计语言及其编译程序来说,语言的语法定义很重要。本章主要介绍语法结构的形式描述问题。编译原理的主要内容也可以归结为应用形式语言理论,并将它贯穿于词法分析和语法分析两个阶段。 本章重点讨论正规文法、上下文无关文法及其对应的有限自动机和下推自动机,以及在构造编译程序时如何应用。 ;2.1 文法的直观概念和语言描述;“我是大学生”。是否是汉语的一个句子? ; 有了一组规则以后,按照如下方式用它们导出句子: 如句子:“我是大学生”的全部动作过程是: 〈句子〉 ? 〈主语〉〈谓语〉 ? 〈代词〉〈谓语〉  ?我〈谓语〉 ?我〈动词〉〈直接宾语〉  ? 我是〈直接宾语〉 ?我是〈名词〉 ?我是大学生; 由此可见:“我是大学生”的构成符合上述规则, 而“我大学生是”不符合上述规则,我们说它不是句子。 这些规则成为我们判别句子结构合法与否的依据,换句话说,这些规则看成是一种元语言,用它描述汉语。这里仅仅涉及汉语句子的结构描述。其中这种描述元语言称为文法。 问:“王明学习英语” 是否是汉语的一个句子? ;语言描述;语法 -- 表示构成语言句子的各个记号之间的组合规律 语义 -- 表示各个记号的特定含义。(各个记号和记号所表示的对象之间的关系) 语用 --表示在各个记号所出现的行为中,它们的来源、使用和影响。; 如果不考虑语义和语用,即只从语法这一侧面来看语言,这种意义下的语言称作形式语言。形式语言抽象地定义为一个数学系统。 “形式”是指这样的事实:语言的所有规则只以什么符号串能出现的方式来陈述。形式语言是程序设计语言语法分析研究的基础。;一、符号串的基本概念 1、字母表 定义 字母表是元素的非空有穷集合。 常用?表示 汉语字母表包括: 汉字、数字、标点符号等 例如:?1={0,1} ?1是二进制数的字母 ?2={a,b…….z} ?2是英文小写字母 2、符号 定义 字母表中的元素称为符号。 例如:设有字母表?={+,-,*,/} 则+、-、*、/为符号;3、符号串 定义 由字母表中的符号组成的任何有穷序列。 例: 设字母表?={a}; 则a,aa,a…a;都是字母表{a}上的字符串。 设字母表?={a,b};则a,b,aa,ab,abb,baa,…都是{a,b}上的符号串。 ∑={0,1} — 符号集 符号串有: 0,1,00,01,10,11 ∑={a,b,c} — 符号集 符号串有:a,b,c,ab,aaca ;4、空符号串 定义 不含任何符号的符号串,记为ε 若符号串x ,则有εx = xε= x 5、符号串的长度 定义 设x是字母表?上的符号串,符号串中包含符号的个数称为符号串x的长度,用|x|表示。 例如:|abc|=3 |ε|=0;6、符号串集合 定义 字母表?上若干符号串组成的集合。 例如: 设有字母表?={a,b,c},则有符号串集合: A={a,ab,bc ,abc} ;二、符号串的运算 1、符号串的头尾、固有头和固有尾 如果z=xy一个符号串,那么x是z的头(前缀), y是z的尾(后缀),如果x是非空的, 那么y是固有尾;同样如果y 是非空的, 那么x是固有头。 例如:z=abc 头: ε、a、ab、abc 尾: ε、c 、bc 、abc 固有头: ε、a、ab 固有尾: ε、c 、bc ;二、符号串的运算 2、符号串的连接 设x,y是字母表?上两个符号串,把y的所有符号相继写在x的符号之后所得到的串称为x与y的连接,用xy表示。 例如:若x=ab,

文档评论(0)

1亿VIP精品文档

相关文档