(编译原理) 第二讲 程序设计语言及其文法

基本概念

  1. 字母表
  • 字母表的运算:乘积、n次幂、正闭包、克林闭包(任意符号串的集合)
    -

0次幂是空串 在这里插入图片描述

  • 串的运算:连接、幂运算
    -

文法的定义

  1. 文法形式化定义:
    -
  2. 终结符:语言的基本符号token
  • 未用尖括号括起来的部分
    在这里插入图片描述
  1. 非终结符:表示语法成分的符号
  • 用尖括号括起来的部分
    在这里插入图片描述
    在这里插入图片描述
  1. S开始符号:该文法中最大的语法成分。
    在这里插入图片描述

语言的定义

  1. 句子:满足文法规则的终结符号串句子是不包含非终结符的句型。
    在这里插入图片描述
    在这里插入图片描述

如何判定一个词串是否是满足关系的句子?推导和归约

  1. 语言
    在这里插入图片描述
  2. 推导
  3. 归约
  4. 语言上的运算
  • 连接
  • 正闭包
  • 克林闭包

文法的分类

  1. 0型文法:无限制文法/短语结构文法
    在这里插入图片描述
  2. 1型文法:上下文有关文法(CSG)
  • 不包含空产生式
    在这里插入图片描述
  1. 2型文法:上下文无关文法(CFG)
    在这里插入图片描述
  2. 3型文法:正则文法
    在这里插入图片描述
  3. 四种文法的关系:逐级限制、逐级包含
    在这里插入图片描述

CFG的分析树

  1. 句型的短语: 分析树中的每棵子树的边缘
  2. 直接短语:高度为2的子树的边缘
    在这里插入图片描述
  • 直接短语一定是某产生式的右部,但产生式的右部不一定是给定句型的直接短语
  1. 二义性文法:如果一个文法可以为某个句子生成多棵分析树
    在这里插入图片描述
发布了109 篇原创文章 · 获赞 128 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/JAck_chen0309/article/details/104498270
今日推荐