趣文网 > 作文大全

C++中 形式语言与自然语言的区别到底在哪里?这篇文章讲通了

2020-11-19 08:05:01
相关推荐

自然语言是人类讲话使用的语言,如英语、西班牙语和法语等。虽然人们总要给自然语言加上一些规则,但自然语言并非人类设计,它们是自然演化而来的。

形式语言是人们为特定应用设计的语言。例如,数学家使用的记号就是一种便于表示数字与符号关系的形式语言。化学家也使用一种形式语言来表示分子的化学结构。最重要的是:

编程语言是人为设计的用来表达计算的形式语言。

形式语言有严格的语法规则。比如3+3=6是符合语法的数学语句,而3=+6$则不是。同样*H*2*O*是符合语法的化学式,但2*Zz*不是。

这里的两个2都是下标,在Markdown语法中无法表示。

语法规则包含两个方面:标识符与结构。标识符是语言的基本元素,像单词、数字以及化学元素等。3=+6$的一个错误是,至少据我所知$不是数学上合法的标识符。类似的,2*Zz*也是非法的,因为没有缩写为Zz的化学元素。

第二种语法错误是句子结构上的,即标识符的排列方式。语句3=+6$结构上也是非法的,因为加号不能直接放在等号后面。类似地,化学式中的下标必须在元素名后面,而不能在前面。

阅读英语的句子或者形式语言的语句时,必须分析句子结构(使用自然语言时,你会下意识地这样处理)。这个过程叫做解析。

例如,当你听到“The other shoe fell”这句话时,你会知道“the other shoe”是主语而“fell”是动词。分析完句子结构,你就理解了它的意思,即句子的语义。假设你知道“shoe”是什么,也知道“fall”的意义,你就能理解句子的大体含义。

虽然形式语言和自然语言有很多共同点,如标识符、结构、语法和语义,但是它们仍然有很多不同点:

歧义:自然语言常有歧义,人们需要根据上下文和其他信息来理解。而形式语言天生就是清晰无二义的,也就是说不管上下文是什么,任何语句都有一个精确的意义。

冗余:为了弥补歧义问题并减少误解,自然语言引入了很多冗余,结果就是语言常常很冗长。形式语言冗余少些,更加简洁。

字面意义:自然语言有很多成语和隐喻。比如我说“The other shoe fell”,可能不是说鞋,也没有什么东西掉下来。而形式语言语句的含义和字面意义是完全一致的。

说着自然语言长大的我们,通常都要经历一段痛苦的时期才能适应形式语言。从某些方面来说,自然语言和形式语言的差别就像诗歌和散文的差别,而且可能还有过之无不及:

诗歌:选词既要求发音,又要求含义,整首诗营造出一种效果或情感响应。歧义不仅常见,很多时候是有意为之。

散文:词汇的字面意思更加重要,而且句子结构也更能表意。相对于诗歌,散文更经得起推敲,但仍然会存在歧义。

程序:计算机程序的含义是无歧义的,和语句的字面意思一致,通过对标识符和结构的分析可以完整地理解。

关于阅读程序(或其他形式语言)提几点建议:

首先,形式语言比自然语言难懂的多,所以读起来会花费更长的时间。

其次,结构非常重要,从上到下、从左到右地阅读并不见得管用。相反,要学会在头脑中分析程序,识别标识符并解读清楚句子结构。

最后,细节很重要,像拼写或者标点符号错误,在自然语言中有可能无伤大雅,但在形式语言中可能造成天壤之别。

阅读剩余内容
网友评论
显示评论内容(2) 收起评论内容
  1. 2021-08-19 02:30|▍有一种霸道无与伦比、[湖南省网友]IP:1729372724
    谢谢分享!
    顶9踩0
  2. 2020-04-08 10:15信仰创始人[湖北省网友]IP:1744632104
    我觉得这篇文章真的很棒,对于C++中的+形式语言和自然语言的区别有了更清晰的理解。
    顶0踩0
相关内容
延伸阅读
小编推荐

大家都在看

今年高考作文江西 读书的快乐作文600字 尊重别人的英语作文 走过才懂得作文 全国劳动模范作文 关于人物的作文300字 会说话的笔作文 语文六年级下册第二单元作文 六年级语文下册第二单元作文 做一道菜的作文400字 我拿什么奉献给你作文 我也是生活的主角 作文 冬天的景色作文200字 小事不小作文600字 游锦绣中华作文 快乐的一天作文200字 介绍朋友的英语作文初一 高考作文注意事项 环境健康杯作文 写物的作文250字 快乐的假期作文300字 爸爸的自画像作文 我的爸爸三年级作文300字 四年级作文字数要求 这就是幸福作文500字 五一劳动节作文500字 感恩父母的作文300字 找回自信作文600字 游玉皇山作文 五年级作文神奇的探险之旅