形式语言

✍ dations ◷ 2024-12-22 18:17:44 #形式语言
在数学、逻辑和计算机科学中,形式语言(英语:Formal language)是用精确的数学或机器可处理的公式定义的语言。如语言学中语言一样,形式语言一般有两个方面:语法和语义。专门研究语言的语法的数学和计算机科学分支叫做形式语言理论,它只研究语言的语法而不致力于它的语义。在形式语言理论中,形式语言是一个字母表上的某些有限长字符串的集合。一个形式语言可以包含无限多个字符串。语言定义在某一个特定的字母表上,字母表(经常记作 Σ )可以为任意有限集合。例如集合 { a , b , c . . . , z } {displaystyle {a,b,c...,z}} 就表示所有小写字母构成的字母表。字符串是字母表中的元素构成的有穷序列,以之前定义的小写字母表为例,“hello”,“wikipedia”,“abcjkg”都是上面的串,而“AbCd”就不是上面的串了。记号 ε 表示空串——它是一个特殊的长度为0的串。直觉上,一个语言是字母表所能构成的所有串的集合的一个子集,具体来说:对于任意一个字母表,记全体长度为 n 的子串为 Σ n {displaystyle Sigma ^{n}} ,特别的,规定 Σ 0 {displaystyle Sigma ^{0}} 为{ε},则还可以定义Σ ∗ = Σ 0 ∪ Σ 1 ∪ ⋯ ∪ Σ n ∪ ⋯ {displaystyle Sigma ^{*}=Sigma ^{0}cup Sigma ^{1}cup cdots cup Sigma ^{n}cup cdots }Σ ∗ {displaystyle Sigma ^{*}} 包含了字母表 Σ {displaystyle Sigma } 所能构成的所有字符串。语言(一般记为 L )定义为 Σ ∗ {displaystyle Sigma ^{*}} 的任意子集。下面给出一些语言的例子, { h e l l o , w o r l d } {displaystyle {hello,world}} 是一个包含两个字符串的集合,也可以被视为小写字母构成的字母表上的一个语言。而实际上研究的语言的例子则常常更为复杂,例如所有合法的C语言程序串构成的集合也可以视作ASCII上的一个语言(假定编译器只支持英文符号)。需要注意的一点是, Σ ∗ {displaystyle Sigma ^{*}} 的空子集 ∅ 与只包含空串的语言 {ε} 是两个不同的语言。语言间的运算就是 Σ*幂集上的运算。不像自然语言,一个形式语言作为一个集合,需要有某种明确的标准来定义一个字符串是否是它的元素。这可以通过多种方法来完成,下面将给出一些例子:如果一个形式语言的元素数目是有限的,那么可以通过枚举它的各个字符串来严格地定义它。通过形式文法来产生(参见乔姆斯基谱系)。正则表达式是一种很多编程语言和库都支持的语法,这种语法可以用于匹配符合一定条件的字符串,经常用于文本的搜索和过滤。从名称上来说,正则表达式应当是对应于正则语言的,在形式语言领域内所称的正则表达式确实如此。不过,在实际的编程语言中,很多正则表达式已经通过引入复杂的扩展,可以匹配正则表达式所不能描述的内容。形式语言中的正则表达式和一般编程语言中所称的正则表达式在语法上也有较大差异。直觉上来说,自动机消耗输入符号,并在自身的不同状态间转移,可以通过状态机消耗完整个字符串之后是否达到某些特定状态来定义一个字符串是否属于某一个语言。语言可以通过某种自动机来识别,比如图灵机、有限状态自动机。

相关

  • 460–519医学导航: 呼吸系统解剖(n, x, l, c)/生理/发育病理(c, p)/先天/肿瘤, 症状/人名体征, 创伤手术, 药品(R1/2/3/5/6/7)
  • 重症医学重症医学(Intensive care medicine )是医学中的一个分支,诊断及管理会危及生命的疾病或是情形,会需要器官支持(英语:Organ support)及侵入性监测设备。在重症监护室中常见的设备有
  • 人乳头状瘤病毒人类乳头瘤病毒(Human Papillomavirus,HPV)是一种DNA病毒,属于乳头瘤病毒科乳头瘤病毒属。该类病毒感染人体的表皮与黏膜组织,目前约有170种类型的HPV被判别出来,有些时候HPV入侵
  • 沿岸流沿岸流(英语:longshore current)是指波浪推向岸边,有时波峰列(波列)并不平行海岸线,两者形成的夹角,一波一波的波浪推动成一股贴岸而行的海流。近岸水流的流动方向与碎波区底床地形.
  • 泛昔洛韦泛昔洛韦(Famciclovir)是第二代开环核苷类抗病毒药,主要用于疱疹病毒感染,尤其是带状疱疹。泛昔洛韦为喷昔洛韦前药,在肠壁和肝脏经酶转化为喷昔洛韦。泛昔洛韦常用于带状疱疹治
  • 注射注射(英文:Injection)俗称打针,是一种利用注射器与针头穿过皮肤,并将液体送入身体内的方法。是一种给药途径,注射所预期的作用位置,不一定是受注射的位置。目前有多种不同的注射方
  • 生活品质马斯洛的需求金字塔上达到越高层的人可以视同生活质量越高自我实现的需求尊重需求(社会承认需求)社交需求(社会关系需求)安全的需求生理的需求(身体基本需求)生活质量(Quality of L
  • Fl5f14 6d10 7s2 7p2(预测)2, 8, 18, 32, 32, 18, 4(预测)第一:823.9(预测) kJ·mol−1 第二:1621.0(预测)主条目:
  • 米兰-利纳特机场米兰-利纳特机场(意大利语:Aeroporto di Milano-Linate,IATA代码:LIN;ICAO代码:LIML)是意大利米兰三大机场之一。主要用于国内和短途国际航班(所有国际航班的目的地仅限于欧洲境内),至
  • 耳柱骨耳柱骨(英语:columella)是爬虫类、两生类与鸟类的听小骨,可将声波从鼓膜传到内耳,其内端较粗,紧贴内耳的卵圆窗;外端较粗,连接在鼓膜中央。其功能相当于哺乳类中耳的镫骨。