首页 > 其他分享 >形式语言学

形式语言学

时间:2023-08-06 17:01:50浏览次数:25  
标签:状态 文法 语言 形式 语言学 自动机 转移

1. 理解形式语言学

  形式语言通常作为定义编程语言和语法的基础,是正式版本的自然语言的子集。它能被具有有限计算能力的机器所解析。

1. 语言形式与语言功能:形式语言学研究语言的结构形式,而不关注语言表达的具体功能或意义。它把语言视为一套规则来递归生成句子,这些规则构成语言的「语法」。

2. 符号系统:形式语言学使用抽象的符号系统来研究语言结构,而不使用具体的语音或词汇形式。常用的符号系统有布尔代数、形式逻辑等。

3. 递归规则:语言的结构是通过一组递归规则构建的,即较小的结构重复应用到更大的结构上。这些规则定义了语法,其自顶向下的应用可以生成所有的合法句子。

4. 上下文无关文法:形式语言学通常采用上下文无关文法来描述语言结构,即一个符号的产生仅依赖于该符号左部的符号,而与上下文无关。这种文法简洁且易于描述。

5. 语言等价性:可以通过等价性测试判断两种语言的表达能力是否相同。常用的等价性测试有越似变换、万能文法等。

6. 启发式算法:形式语言学还研究语言结构的学习问题,常使用启发式算法来学习文法,如句法分析算法等。

 

2. 理解自动机

  自动机是有限状态机(FSM)的数学模型。自动机是一种抽象的计算模型,用于识别和生成形式语言中的字符串

1. 状态:自动机中的状态表示识别或生成过程中的中间结果。初始状态表示开始,终止状态表示结束。

2. 字母表:自动机运算所使用的符号集合,它定义了自动机可以识别或生成的字符范围。

3. 转移函数:定义了从一个状态到下一个状态的转移规则。当输入一个字母表中的字符时,会根据转移函数转到新的状态。

4. 确定性vs非确定性:确定性自动机的转移是唯一的,而非确定性自动机可以有多个转移选择。后者更加灵活但解析难度较大。

5. 有限自动机:具有有限个状态和字母表的自动机。这是一种比较简单但功能也较弱的模型。

6. ε-转移:自动机可以在不消耗任何输入的情况下从一个状态转移到另一个状态,这种转移成为ε-转移。它增加了自动机的表达能力。

7. 接受与拒绝:对输入字符串,如果自动机可以从初始状态转移到某终止状态,则该字符串被「接受」;否则被「拒绝」。

8. 正则表达式:一种简洁的语法,可以描述某个语言中所有合法字符串的集合。许多语言的规则可以用正则表达式表达。

 

a) 为什么研究自动机理论

确定的有穷自动机 DFA

不确定的有穷自动机 NFA

带空移动的有穷状态机 ε-NFA

正则语言的识别器 FA finite automation 有穷状态自动机

  δ——状态转移函数(transition function),有时候又叫做状态转换函数或者移动函数。δ:Q×Σ->Q,对所有(q,a)∈Q×Σ,δ(q,a)=p表示:M在状态q读入字符a,将状态变成p,并将读头向右移动一个带方格而指向输入字符串的下一个字。

系统或部件是处在有穷多个“状态”之一。
状态的目的是记住系统历史的有关部分。
好处:用固定的资源就能实现系统

 

3. 乔姆斯基体系

  由语言学家诺姆·乔姆斯基提出的文法类型体系,它按照文法规则的约束程度将文法划分为4种类型:

1. 无类型文法(Type 0):可以包含任意类型的规则,无任何约束,生成能力最强但难以处理。 PSG

2. 上下文有关文法(Type 1):允许出现在左部但不在右部的非终结符,增加了一定约束,生成能力减弱但仍较强。 CSG

3. 上下文无关文法(Type 2):每个产生式的左部和右部出现的非终结符必须相同,此类文法简洁,容易处理且生成能力适中。 CFG

4. 正则文法(Type 3):产生式仅允许在右部增加终结符,是所有文法类型中最简单且生成能力最弱的。RL

 

a) G=(V, T,P,S)

V: 变量非空有穷集 T: 终极符 S:开始符号 P:产生式

推导与归约和产生式不一样。 推导与归约是一一对应的

约定:对一个文法,有一个字母表Σ,使得只列出该文法的所有产生式,有一个字母表Σ,使得且所列第一个产生式的

左部是该文法的开始符号。

定理:

1. L是一个左线性语言的充要条件是存在文法G,G中的产生式要么是形如:A->a的产生式,要么是形如A->Ba的产生式,使得L(G)=L。其中A、B为语法变

量,a 为终极符号。

2. 左线性文法的产生式与右线性文法的产生式混用所得到的文法不是RG.

3. 设G=(V,T,P,S)为一文法,则存在与G同类型的文法G′=(V′,T,P′,S′),使得L(G)=L(G′),但G′的开始符号S′不出现在G′的任何产生式的右部。

4. L(G’)包含于L(G)

5. 往L中添加空串

⑴ 如果L是CSL,则L∪{ε}仍然是CSL。
⑵ 如果L是CFL,则L∪{ε}仍然是CFL。
⑶ 如果L是RL,则L∪{ε}仍然是RL

标签:状态,文法,语言,形式,语言学,自动机,转移
From: https://www.cnblogs.com/dwletsgo/p/17403273.html

相关文章

  • 输入任意整数,直到输入-1,用插入法排序以5行形式打印输出
    intmain(){ inta[100]; inti=0;intj=0;intn=0;intk=0; scanf("%d",&a[n]); n=0; while(a[n]!=-1) { n++; scanf("%d",&a[n]); } printf("BeforeSort:\n"); for(i=0;i<n;i++) { printf("%d",a[i......
  • depend各种形式
    depend形容词为dependent;动词为depend;名词为dependence(依靠,依赖),dependent(依赖他人生活的人)。扩展资料dependvi.依赖;依靠;信赖;决定于;[例句]Thecookingtimeneededdependsonthesizeofthepotato所需的烹饪时间取决于土豆的.大小。[其他]第三人称单数:de......
  • js中将数字格式化成内存的形式
    constformatSize=(size)=>{if(size<1024){returnsize+"b";}elseif(size<1024*1024){return(size/1024).toFixed(2)+"KB";}elseif(size<1024*1024*1024){retur......
  • C语言学习笔记(七)初识结构体
    初识结构体结构体的声明结构体的基础知识结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。结构的声明struct标签{ 值; 值; ……}变量列表;例://定义一个结构体类型structStu//struct-结构体关键字Stu-结构体标签structStu-结......
  • 个人博客的这三个形式?你选哪一个呢
    我们在搭建个人博客之前,最重要的就是去了解要怎么搭建。只要把博客搭建好,才能后续去填写内容、发布信息等。今天looklook就从个人博客的形式出发,和大家聊聊我们搭建个人博客的时候可以通过哪几个方法开展呢。个人博客的形式1.通过托管博客形式来拥有个人博客空间,你无需购买域名和空......
  • Python绘制多种形式的条形图(柱状图)
    绘图前的准备因为涉及到中文显示,所以需要用两行代码解决中文乱码问题importnumpyasnpfrommatplotlibimportpyplotaspltplt.rcParams['font.sans-serif']=[u'SimHei']#SimHei就是中文字体#因为设置了中文后,负号就乱码了,所以还要设置负号的编码plt.rcParams['axes.......
  • COMSOL中的求解器(1)—— 方程形式
    1.流程COMSOL中将PDE转成ODE(瞬态仿真),再通过对时间项离散,最后获得稀疏矩阵方程,通过求解器求解。而稳态仿真则跳过上述时间离散的过程,其余与瞬态仿真求解一致。流程如下:瞬态: 稳态:   2.隐式ODE,及其离散形式 将隐式方程L(U对时间的导数,U,t)=0 进行离散,获......
  • C语言学习笔记
    C语言入门写代码流程写C代码1、创建工程2、创建项目.cpp-c++文件.c-源文件.h-头文件head3、写代码1、main主函数,程序的入口,有且仅有一个//包含一个叫stdio.h的文件//std-标准standardinnputout标准输入输出,所以函数中有输入、输出语句都要包含这个文件#in......
  • C语言学习笔记
    C语言程序设计求100-500的质数#include<stdio.h>intmain(){inti,j,n,f=1;for(i=100;i<=500;i++){f=1;for(j=2;j<i/2;j++){if(i%j==0){f=0;}}if(f==1){printf(&......
  • c语言学习10
    结构:结构是由程序员自己设计的一种数据类型,用于描述一种事物的各项数据,由若干个不同的基础类型组成设计:struct结构体类型名{类型名成员名;...};定义:struct结构体类型名结构体变量名;注意:C语言中在定义结构变量时,struct关键字不能省略初始化:......