首页 文章

在计算机科学中,什么不是正式语言? [关闭]

提问于
浏览
4

在维基百科https://www.wikiwand.com/en/Formal_language上,我找到了正式语言的定义:

在数学,计算机科学和语言学中,形式语言是一组符号串,可能受到特定于它的规则的约束 .

这看起来很抽象 . 我可以_2551351不适合这个定义 . 有没有人对 informal language 看起来是什么以及它不符合定义有什么想法?

3 回答

  • 0

    让我先谈谈你的问题 . 一个很好的非正式语言的例子是自然语言 . 英语和斯洛文尼亚就是例子 . Tagalog和Tarifit Berber也是如此 . 不幸的是,语言学家似乎没有对所有人都同意的自然语言的定义 .

    诺姆·乔姆斯基(Noam Chomsky)在其1956年的论文_2551353中尝试使用无背景伽玛来模拟自然语言 . 他在那篇论文中发明了(或发现,如果你愿意的话);虽然他对英语语言模型没有用,但它们彻底改变了计算机科学 .

    形式上,形式语言只是有限字母表中的一组字符串 . 而已 .

    示例包括所有有效的C程序,所有有效的HTML文件,所有有效的XML文件,"balanced"括号的所有字符串(例如 (), ()(), ((()))()(()), ... ),始终停止的所有确定性图灵机的集合(某些编码下的代码),所有简单图形的集合可以使用 k -colors(实际上是某些编码下的代码)着色,所有以 1 开头的二进制字符串的集合等 .

    有些使用正则表达式(或者等效地,DFA)很容易识别;有些是不可能使用DFA识别的,但可以使用PDA识别(或者,等效地,可以用无上下文语法描述);其他人不承认这样的描述,但可以通过图灵机识别;有些甚至不是图灵机(称为不可计算机)也无法识别 .

    这就是定义如此有用的原因 . 我们在CS evey日遇到的许多事情都可以用正式语言来表达 .

    为了对这个主题做一个很好的介绍,我强烈推荐Hopcroft等人出版的“自动机理论,语言和计算简介” .

  • 1

    英语不是一种正式语言 . 它不仅仅是一组字符串;它有一种口头形式,随着时间的推移和方言的演变,以及形式语言所没有的各种其他东西 . 从十年到下一年,正式语言无法获得“电子邮件”这个词 .

  • 5

    语言是由给定符号组成的一组序列 . 它可以是有限的也可以是无限的(即使有句子,例如过长,即使是母语人士也无法理解的句子,英语句子的集合是无限的) . 如果它是有限的,那么它的任何描述都是正式的定义 .

    如果语言是无限的,说算术表达式的语言涉及数字,两个二元运算符'','*'和变量那么你不可能列出属于该语言的所有字符串,但有时(见下面的blazs的评论)你可以将有限描述作为一组规则给出 .

    E:= NUM | v | E''E | E'*'E

    (其中NUM是数字序列,v是变量)是无限集的有限描述 . 这才是正式的 .

    言语或语言演变等各种其他方面都是不同的问题 . 那些也可以正式化 .

相关问题