汉扬编程 C语言入门 「C语言哲学三问」你了解吗?脱离天际的思考

「C语言哲学三问」你了解吗?脱离天际的思考

C语言哲学三问:语法和语义是什么、为什么要知道语法和语义、怎么做才能摸清语法和语义。

「C语言哲学三问」你了解吗?脱离天际的思考

「C语言哲学三问」你了解吗?脱离天际的思考

「C语言哲学三问」你了解吗?脱离天际的思考

语法和语义是什么任何编程语言都离不开语法和语义,小白觉得与哲学相关,可以联想到《易经》的阴和阳,或者计算机二进制中的0和1,理解为从属领域内事物的基准,万物起于始,也终于始,也就是语法和语义是一门语言的基准,语言从此开始,也结束于此,这里是一个闭环的定义,稍微有点抽象。下面引用《计算的本质:深入剖析程序和计算机》内的解释,比较通俗易懂,这也是面向计算机的一种解释,所以直接引用了:

「C语言哲学三问」你了解吗?脱离天际的思考

为了完整地定义编程语言,我们需要:语法,描述程序看起来是什么样的;语义,描述程序的含义。 ——《计算的本质:深入剖析程序和计算机》

「C语言哲学三问」你了解吗?脱离天际的思考

「C语言哲学三问」你了解吗?脱离天际的思考

「C语言哲学三问」你了解吗?脱离天际的思考

按照这个解释,语法和语义解决了两个问题:

第一是编程语言长什么样子(外部结构),例如用于区分a = b + 1是编程语言,而a=%&$#b+不是。

第二是它代表着什么(内部结构),例如a = 1 * 2 + 3 * 4,代表a的值是(1 * 2) + (3 * 4),而不是((1 * 2) + 3 ) * 4,更不是其它值。 任何一个语言都可以套上语法和语义,但是侧重点会各不同,比如中国人学中文会更侧重语义,更多时候不关心语法,只需要知道语义,语法就是各种主谓宾、定状补、固定句式等等,这代表中文就长这样子,而语义就是中文所代表的情绪、数据、信号等等,它可以让人与人产生各种交流。

细想,你学语言的时候其实就是在学这两个东西,比如英文,各种从句长什么样子,它代表着什么,是不是突然感觉很有意思。总结一下,编程语言的语法和语义就是:

语法,外表长什么样——外部结构

语义,所表达的含义——内部结构

为什么要知道语法和语义为什么编程语言要讨论语法和语义?答案是为了深入语言本质,如果只停留在语言的语法表面,那么至多只是会使用这门语言,它内部任何资源的使用和机制你都是模糊的,就像即使你知道了N多个英语从句句式,但是你却不知道为什么会有这么多,区别在哪,什么时候会限制等等,所以英语依然不会用。 如果深入到本质,你就可以看透这门语言,知道他的优势劣势,在哪个平台能够发挥真正的作用,在什么场合用什么内容,甚至可以改造这门语言 。如果把语言比作一棵树,那么从根部到叶子的整个结构全面了解,才能深入了解这棵树的本质,包括它的品种、生活状况、生长情况等等。因此,如果你深爱并需要这门语言,那就去研究它的语法和语义。

怎么做才能摸清语法和语义要去摸清一门编程语言的语法和语义,小白建议需要做几件持续的事情:

1、持续阅读这门编程语言的相关书籍、文章、资讯等。目的是为了持续强化和更新大脑记忆,语法众多总不会常记,语义更多是根据上下文进行,如果你长期使用此语言的某个方面或者特长等,慢慢地其它知识就会被你遗忘,因此建议,书籍不论新旧和热门冷门,文章一般要选取成熟的大平台以防抄袭和低质量,资讯选取权威平台以防造谣作假。

2、经常比较各个书籍中提到相同知识点的差异。每本书对同一个知识点的描述和介绍会有个别差异,比如《C语言深度解剖》中表明数组和指针没有关系,而《C程序设计-谭浩强》则表明数组和指针有藕断丝连的关系并且没有说明清楚,或许用语法和语义的思维去思考就能得到答案,此时需要自己去比较这种差异,找出这种差异的存在并且尝试解释哪个说法是正确的,久而久之就会有自己的想法,对编程语言会更深一层。

3、保持对权威的挑战和知识点的好奇心。尽信书不如无书,书籍也是人编写的,总有错漏,当自己对某个知识点无法理解时,要尝试大胆假设这个知识点就是错误的,小心去寻找反例求证,当尝试使用各种方法都无法证明时,往往就知道了这个知识点的本质所在,学会挑战权威,自学学习会更加独立。

原文: ://juejin.cn/post/6967647795691913230

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/cjia/6464.html

已知它们的和为偶数,那么c是多少?

现在买书还有送C吗?什么书?

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部