形式語(yǔ)言與自然語(yǔ)言

2023-03-20 15:43 更新

自然語(yǔ)言是人類講話使用的語(yǔ)言,如英語(yǔ)、西班牙語(yǔ)和法語(yǔ)等。雖然人們總要給自然語(yǔ)言加上一些規(guī)則,但自然語(yǔ)言并非人類設(shè)計(jì),它們是自然演化而來(lái)的。

形式語(yǔ)言是人們?yōu)樘囟☉?yīng)用設(shè)計(jì)的語(yǔ)言。例如,數(shù)學(xué)家使用的記號(hào)就是一種便于表示數(shù)字與符號(hào)關(guān)系的形式語(yǔ)言?;瘜W(xué)家也使用一種形式語(yǔ)言來(lái)表示分子的化學(xué)結(jié)構(gòu)。最重要的是:

編程語(yǔ)言是人為設(shè)計(jì)的用來(lái)表達(dá)計(jì)算的形式語(yǔ)言。

前面也提到過(guò),形式語(yǔ)言有嚴(yán)格的語(yǔ)法規(guī)則。比如3+3=6是符合語(yǔ)法的數(shù)學(xué)語(yǔ)句,而3=+6$則不是。同樣H2O是符合語(yǔ)法的化學(xué)式,但2Zz不是。

這里的兩個(gè)2都是下標(biāo),在Markdown語(yǔ)法中無(wú)法表示。下段同。——譯者注

語(yǔ)法規(guī)則包含兩個(gè)方面:標(biāo)識(shí)符與結(jié)構(gòu)。標(biāo)識(shí)符是語(yǔ)言的基本元素,像單詞、數(shù)字以及化學(xué)元素等。3=+6$的一個(gè)錯(cuò)誤是,至少據(jù)我所知$不是數(shù)學(xué)上合法的標(biāo)識(shí)符。類似的,2Zz也是非法的,因?yàn)闆](méi)有縮寫(xiě)為Zz的化學(xué)元素。

第二種語(yǔ)法錯(cuò)誤是句子結(jié)構(gòu)上的,即標(biāo)識(shí)符的排列方式。語(yǔ)句3=+6$結(jié)構(gòu)上也是非法的,因?yàn)榧犹?hào)不能直接放在等號(hào)后面。類似地,化學(xué)式中的下標(biāo)必須在元素名后面,而不能在前面。

閱讀英語(yǔ)的句子或者形式語(yǔ)言的語(yǔ)句時(shí),必須分析句子結(jié)構(gòu)(使用自然語(yǔ)言時(shí),你會(huì)下意識(shí)地這樣處理)。這個(gè)過(guò)程叫做解析

例如,當(dāng)你聽(tīng)到“The other shoe fell”這句話時(shí),你會(huì)知道“the other shoe”是主語(yǔ)而“fell”是動(dòng)詞。分析完句子結(jié)構(gòu),你就理解了它的意思,即句子的語(yǔ)義。假設(shè)你知道“shoe”是什么,也知道“fall”的意義,你就能理解句子的大體含義。

雖然形式語(yǔ)言和自然語(yǔ)言有很多共同點(diǎn),如標(biāo)識(shí)符、結(jié)構(gòu)、語(yǔ)法和語(yǔ)義,但是它們?nèi)匀挥泻芏嗖煌c(diǎn):

歧義:自然語(yǔ)言常有歧義,人們需要根據(jù)上下文和其他信息來(lái)理解。而形式語(yǔ)言天生就是清晰無(wú)二義的,也就是說(shuō)不管上下文是什么,任何語(yǔ)句都有一個(gè)精確的意義。

冗余:為了彌補(bǔ)歧義問(wèn)題并減少誤解,自然語(yǔ)言引入了很多冗余,結(jié)果就是語(yǔ)言常常很冗長(zhǎng)。形式語(yǔ)言冗余少些,更加簡(jiǎn)潔。

字面意義:自然語(yǔ)言有很多成語(yǔ)和隱喻。比如我說(shuō)“The other shoe fell”,可能不是說(shuō)鞋,也沒(méi)有什么東西掉下來(lái)。而形式語(yǔ)言語(yǔ)句的含義和字面意義是完全一致的。

說(shuō)著自然語(yǔ)言長(zhǎng)大的我們,通常都要經(jīng)歷一段痛苦的時(shí)期才能適應(yīng)形式語(yǔ)言。從某些方面來(lái)說(shuō),自然語(yǔ)言和形式語(yǔ)言的差別就像詩(shī)歌和散文的差別,而且可能還有過(guò)之無(wú)不及:

詩(shī)歌:選詞既要求發(fā)音,又要求含義,整首詩(shī)營(yíng)造出一種效果或情感響應(yīng)。歧義不僅常見(jiàn),很多時(shí)候是有意為之。

散文:詞匯的字面意思更加重要,而且句子結(jié)構(gòu)也更能表意。相對(duì)于詩(shī)歌,散文更經(jīng)得起推敲,但仍然會(huì)存在歧義。

程序:計(jì)算機(jī)程序的含義是無(wú)歧義的,和語(yǔ)句的字面意思一致,通過(guò)對(duì)標(biāo)識(shí)符和結(jié)構(gòu)的分析可以完整地理解。

關(guān)于閱讀程序(或其他形式語(yǔ)言)提幾點(diǎn)建議:首先,形式語(yǔ)言比自然語(yǔ)言難懂得多,所以讀起來(lái)會(huì)花費(fèi)更長(zhǎng)的時(shí)間。其次,結(jié)構(gòu)非常重要,從上到下、從左到右地閱讀并不見(jiàn)得管用。相反,要學(xué)會(huì)在頭腦中分析程序,識(shí)別標(biāo)識(shí)符并解讀清楚句子結(jié)構(gòu)。最后,細(xì)節(jié)很重要,像拼寫(xiě)或者標(biāo)點(diǎn)符號(hào)錯(cuò)誤,在自然語(yǔ)言中有可能無(wú)傷大雅,但在形式語(yǔ)言中可能造成天壤之別。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)