首页 > 其他分享 >第二章 语言与文法

第二章 语言与文法

时间:2024-03-01 21:45:13浏览次数:18  
标签:文法 语言 生成式 beta 字符串 第二章 rightarrow

语言与文法

目录

语言的定义与运算

  • 字母表:字符的有限集合
    • 字符不一定是单个字符,如 aa 也可以是一个字符
    • 字符不允许重复,具有唯一性
    • 常用 T 、\(\sum\) 表示
  • 字符串:由字母表中的字符构成的有限序列
    • 空串用 \(\epsilon\) 表示
    • 字符串 w 的长度记为 |w|

字符串的运算

  • 连接:把两个字符串相连
    • 结合律:\((xy)z=x(yz)\)
    • \(\epsilon x=x \epsilon=x\)
    • \(|xy|=|x|+|y|\)
  • 前缀、后缀、子串
    • 空串是任何字符串的前缀、后缀和子串
  • 逆:w 的逆记为 \(\overline{w}\)
    • 空串的逆还是空串
  • 幂运算
    • \(T^0={\epsilon}\)
    • \(x \in T^{n-1},a\in T,ax\in T^n\)
      • 闭包 \(T^* = T^0\cup T^1...\),字母表 T 上的所有字符串和空串的集合
      • 闭包 \(T^+=T^1\cup T^2...\),字母表 T 上的所有字符串的集合
      • 闭包不包含空串

语言

  • 定义:设 T 为字母表,则任何 T* 的子集 L 就是字母表 T 上的一个语言,可能有限可能无限
  • 空语言:不包含任何字符串的语言,不是只包含空串的语言,记为 \(\Phi\)

语言的基本运算

  • 积:两个语言的积就是两个语言中的字符串连接构成的集合,注意先后顺序
    • 积不满足交换律
    • 语言的幂:\(L^n=L^{n-1}\cdot L=L\cdot L^{n-1}\)

文法

定义:定义语言的数学模型

表示语言的方法

  • 有限:穷举法
  • 无限
    • 文法产生系统,由定义的文法规则产生语言
    • 机器识别系统(自动机):当一个字符串能被一个语言的识别系统接收,就属于语言;否则不属于

元语言:用来描述语言的语言

BNF 范式:通常作为讨论程序设计语言的元语言

文法是一种元语言,一种方法,根据文法产生语言的句子

Chomsky 文法体系

  • 文法的生成式:\(\rightarrow\) 表示可替代,如 \(L\rightarrow a|b|c...|z\) 表示小写字母
  • 生成式集合:一个文法的所有生成式
  • 任何一种文法必须包含两个不同的有限符号的集合,即非终结符集合 N 和终结符集合 T,一个形式规则的有限集合 P ,一个起始符 S
  • P 中的生成式是产生语言句子的规则,句子是仅由终结符构成的字符串,这些字符串必须从起始符 S 开始,不断使用 P 中的生成式导出
  • 文法的核心是生成式的集合

文法的形式定义

  • 文法 G 是一个四元组 G = ( N,T,P,S )
  • P 的形式为 \(\alpha\rightarrow\beta\)
    • \(\alpha\in(N\cup T)^*N^+(N\cup T)^*\),即 N 和 T 中字符的任意组合,不包含空串
    • \(\beta\in(N\cup T)^*\),即 N 和 T 中字符的任意组合
    • S 为起始符,\(S\in N\)

推导和句型

  • 直接推导
    • 对于文法 G,若有生成式 \(A\rightarrow\beta;\alpha,r \in(N\cup T)^*\),则称 $\alpha A r => \alpha\beta r $为直接推导
  • 推导序列
    • 对于文法 G,若 \(a_i\rightarrow a_{i+1}\),则称 \(a_0=>a_1=>a_2...=>a_n\) 为长度为 n 的推导序列
    • 对 \(a_0\) 推导出 \(a_n\) 可以记为 \(a_0 \rightarrow^*_G a_n\),若推导序列长度大于 0,可以把 * 改成 +
    • 推导序列的每一步都产生一个字符串,这些字符串称为句型

句型:字符串 a 是文法 G 的句型当且仅当 \(S\rightarrow^*_G a\)

句子:w 是 G 的句子当且仅当 \(S\rightarrow ^*_G w\),且 $w\in T^* $,即 w 是由终结符组成的字符串

句型包含句子

文法产生语言的定义

由文法 G 产生的语言记为 L(G),\(L(G)=\{w|w\in T^*且S\rightarrow _G^* w\}\)

文法的分类

文法根据生成式的形式分为四类:0 型,1 型,2 型,3 型

  • 0 型:无限制,对应递归可枚举语言,与图灵机等价
  • 1 型:上下文有关文法,生成式形式为 \(\alpha\rightarrow\beta,|\alpha|\leq|\beta|,\beta\in(N\cup T)^+\),对应上下文有关语言,与线性有界自动机等价
  • 2 型:上下文无关文法,生成式形式为 \(A\rightarrow\beta,A\in N,\beta\in(N\cup T)^*\),对应上下文无关语言,与下推自动机等价
  • 3 型:正则文法
    • 右线性文法,生成式形式为 \(A\rightarrow wB或A\rightarrow w,A,B\in N,w\in T^*\)
    • 左线性文法,生成式形式为 \(A\rightarrow Bw或A\rightarrow w,A,B\in N,w\in T^*\)
    • 对应正则语言,与有限自动机等价

文法唯一表示一种语言,一种语言可以用多个文法表示

2 型包含 3 型,不包含 \(A\rightarrow\epsilon\) 的 2 型和 3 型属于 1 型

标签:文法,语言,生成式,beta,字符串,第二章,rightarrow
From: https://www.cnblogs.com/DrinkLessMilkTea/p/18048020

相关文章

  • R语言建立和可视化混合效应模型mixed effect model|附代码数据
    全文下载链接:http://tecdat.cn/?p=20631最近我们被客户要求撰写关于混合效应模型的研究报告,包括一些图形和统计输出我们已经学习了如何处理混合效应模型。本文的重点是如何建立和_可视化_ 混合效应模型的结果设置本文使用数据集,用于探索草食动物种群对珊瑚覆盖的影响。 ......
  • 深入浅出Go语言:泛型入门指南
    深入浅出Go语言:泛型入门指南原创 麻凡 麻凡 2024-03-0109:00 湖南 听全文随着Go1.18版本的发布,泛型正式成为了Go语言的一部分。泛型为Go开发者带来了更强大的类型抽象能力,允许我们编写更加灵活和可复用的代码。本文将带你了解Go泛型的基础知识,让你快速上手这一新特......
  • 《系统科学方法概论》第二章
    常绍舜的《系统科学方法概论》第二章主要围绕系统科学的基本概念、发展历程和主要学派进行深入探讨。这一章节强调了系统思维的重要性,即通过将复杂现象视为相互关联的整体来理解问题。系统分析的基本步骤和工具也被介绍,帮助我们将复杂问题分解成更小、更易管理的部分,并确定每个部......
  • 《程序是怎么跑起来的》第二章
    《程序是怎么跑起来的》第二章的主题是“计算机系统概述”。在阅读之后,我深深感受到这本书的独特之处:它没有枯燥的理论,而是通过生动的故事和实例,引领读者探索计算机世界的奥秘。第二章首先介绍了计算机的基本构成,包括中央处理器(CPU)、输入输出设备、存储设备和网络设备等。这部分......
  • 第二章投资技术《第一节 走势图》
    1.走势图k线均线macd成交量k线和均线组成的交易系统,就足以帮助我战胜市场不要相信内幕消息,没有在走势中反应出来的内幕消息就是没用的消息能够看出市场走势的投资者往往能通过对当前市场走势的观察,看懂市场的这幅宝藏图。看出当前是否存在交易机会2.走势图的构成2.1k......
  • 《系统科学方法概论》第二章
    这一章讲述了系统工程。首先解释了什么是工程,现代意义上的工程概念,通常指由众多工作组成的整体及其展开过程。然后什么是系统工程,原意指以系统为对象的工程。钱学森认为系统工程就是以组织建立或者是经营管理某一系统为目的的工程。系统工程与常规工程相比,具有复杂程度高、有一个......
  • 第二章
    系统工程方法1.什么是系统工程系统工程(SYSTEMSENGINEERING)一词是20世纪50年代由美国人首先使用的一个概念,原意指以系统为对象的工程。我国学者钱学森解释说,如果一项工程的“目的是系统的组织建立或者是系统的经营管理,”那么这项工程就是系统工程。换句话说,系统工程就是以......
  • Go语言精进之路读书笔记第41条——有层次地组织测试代码
    聚焦位于测试包内的测试代码该如何组织41.1经典模式—平铺测试函数各自独立,测试函数之间没有层级关系,所有测试平铺在顶层41.2Unit家族模式测试套件(TestSuite)和测试用例(TestCase)41.3测试固件测试固件是一个人造的、确定性的缓解,在这个环境中进行测试,测试结果是可重复的......
  • 第二章
    系统工程是一种综合性的学科和方法论,旨在通过系统思维和系统方法来设计、开发、实施和维护复杂系统。它涵盖了多个学科领域,包括工程学、管理学、计算机科学、数学等,以解决现实世界中的复杂问题。系统工程的发展史可以追溯到20世纪中期,随着科学技术的迅速发展和生产规模的不断扩大,......
  • 《系统科学方法概论》常绍舜 第二章
    在阅读完《系统科学方法概论》的第二章之后,我理解了系统科学方法论的基础概念和原则。以下是我对这一章节的思考和感悟:系统思维与分析系统思维:本章强调了系统思维的重要性,即通过将复杂的现象视为相互关联的整体来理解问题。这种思维方式有助于发现问题的本质,并找到解决问题的......