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

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

按照这个解释,语法和语义解决了两个问题:
第一是编程语言长什么样子(外部结构),例如用于区分a = b + 1是编程语言,而a=%&$#b+不是
第二是它代表着什么(内部结构),例如a = 1 * 2 + 3 * 4,代表a的值是(1 * 2) + (3 * 4),而不是((1 * 2) + 3 ) * 4,更不是其它值
任何一个语言都可以套上语法和语义,但是侧重点会各不同,比如中国人学中文会更侧重语义,更多时候不关心语法,只需要知道语义,语法就是各种主谓宾、定状补、固定句式等等,这代表中文就长这样子,而语义就是中文所代表的

最低0.47元/天 解锁文章





