W!o 的派生‧十日談之《一》

甲骨文永

甲骨文派

説文解字》:

永,長也。象水巠理之長。《詩》曰:“江之永矣。”凡永之屬皆从永。

派,別水也。从水从 派派 亦聲。

之所以將『 Python 』譯為『派生』實有個緣故。『 Computer 』本就是『計算機器』,祇因『程式語言』源自用機器『作計算』,也可以稱為『計算機語言』,在這個意義上說,『派生』可以說是『 Pi 』── 圓周率 π ── 所『』。由於人們一般比喻的說,也將『 Computer 』意會成『電腦』,從此向度來講,『派生』亦不只是『 Python 』的『音譯』,『』之『古義』為『別水』,正如『 Python 』號稱『 Battery Included 』自備電池的,而且有眾多『應用分支』程式庫,於是因 W!o 之故而得名,旨在『一本萬殊,各建其功』。

之前作者曾用系列的方式介紹『 Thue 之改寫系統』、『 λ 運算』,以及『圖靈機』。這些都可以看成是『程式語言』,儘管表面上『符號』有很大的差異,『語法』那麼的不同,然而就『計算』一事而言,彼此的『語意』是可以『互譯』的,從『可計算性』角度來看,它們是『對等』的。雖然可以這麼講, 如果從表達『計算』之『方便性』與『容易度』來看,大概沒人會常用『這樣的語言』來寫『程式』。它們存在的重要性,在於可以用來深度解析『程式語言』之『語法結構』,多方理解『程式語言』的『字詞概念』,企圖通達『程式語言』的『語意詮釋』。如果將『程式語言』與『人類語言』作個比較,『程式語言』一般是『無脈絡』的,然而『人類語言』是『脈絡相關』的。所謂『脈絡』就是有多個『相同符號』,但是『意指』不同,需要依據『上下文』來決定它們的『意義』。舉例來說︰

你說︰ 我不想學『巨蟒』。

我說︰ 我也不想學『派生』。

聽說他說︰ 我想學『 Python 』。

這些『你‧我‧他』都用著『我』,而『我』是『誰』呢?

也許有一天,果將會有以『語意』為中心的『程式語言』,屆時『機器』與『』或真可『對話』的吧!不是說那個『尤金‧古斯特曼』Eugene Goostman 『人工智慧聊天機器人』,已經通過『圖靈測試』了嗎?由於作者不知他們到底如何作測試,所以在此不置可否,倒是想起了過去『相聲』裡的『對對子』︰

★︰ 『天』對『地』,『雨』對『風』,『大陸』對『長空』,☆ ,就讓我們來『對對子』吧。

☆︰ 好ㄚ,讓你先說。

★︰ 上

☆︰ 下

★︰ 天

☆︰ 地

★︰ 言

☆︰ 醋【對鹽】

★︰ 好

☆︰ 歹

★︰ 事

☆︰ 炮【對士】

★︰ 我合起來是『上天言好事』。

☆︰ 我…合……是『下地醋歹炮』………

更不要說《陳寅恪出高考怪题:以“孫行者”為上聯要求對下聯》,那《一道怪題??》!,據聞只有『三個人』對上了!!

也許『人類語言』之『柔軟』與『意象』,恰好可以對比著『電腦語言』的『規定』且『剛硬』。或許這就是『電腦語言』『難學』的原因之一,有點太『不通人情』,非得要『空白對齊』?少了一個『:』又會怎樣??然而『電腦語言』就是靠著『語法‧符號』之『嚴謹』,取得了『語意』的『明確性』,避免了因『歧義』可能引起的『錯誤』的哩!!

由於在各種『程式語言』裡,許多的『概念』是『共通』的。作者當時談那些『系列』之目的,就是冀盼藉著『小巧完備』構造嚴謹之『系統』,來說明某些看來『複雜困難』的『概念』,引導讀者進入『計算機科學』領域,領略一些『數理邏輯』的『推導』,希望能使讀者『認識』什麼是所謂的『程式語言』,所以才用著那些『希用鮮講』的特殊『程式語言』 。對於尚未閱讀那些『系列』的讀者,剛好藉此將談談『派生』 Python 的時機,或許抽空瀏覽一下,以免因著某些『術語』用法,引發『誤解』,那可就不好了。

雖然『人類語言』可以『說‧聽‧讀‧寫』,然而在實用上要掌握『母語』之『』與『』,不那麼依賴『符號』和『文法』,但是如果能夠清楚明白『母語』的『整體結構』︰

符號 → 字詞 → 語法 → 語義 → 語用

,對於通熟『古代』、『區域』、『外國』甚至『其它』語言,都可達到『事半功倍』的效果,當然針對『電腦語言』也不例外。但是使用『人類語言』來講述,比方說『數學問題』︰

孫子算經的作者不知何許人也,成書的年代不詳,一些學者根據書中事物發生的時間來看,約是在魏晉南北朝,距今已超過一千五百年了。

卷下‧第三十一題》︰雞兔同籠問題的始祖

今有雉、兔同籠,上有三十五頭,下九十四足。問雉、兔各幾何?
答曰:雉二十三。兔一十二。
術曰:上置三十五頭,下置九十四足。半其足,得四十七。以少減多,再命之,上三除下三,上五除下五。下有一除上一,下有二除上二,即得。
又術曰:上置頭,下置足。半其足,以頭除足,以足除頭,即得。

卷下‧第二十六題》︰中國餘數定理

今有物,不知其數。三、三數之,賸二;五、五數之,賸三;七、七數之,賸二。問物幾何?
答曰:二十三。
術曰:「三、三數之,賸二」,置一百四十;「五、五 數之,賸三」,置六十三;「七、七數之,賸二」,置三十。并之,得二百三十三。以二百一十減之,即得。凡 三、三數之,賸一,則置七十;五,五數之,賸一,則置二十一;七、七數之,賸一,則置十五。一百六以上,以一百五減之,即得。

孫子歌

三人同行七十稀,
五樹梅花廿一枝,
七子團圓正半月,
除百零五便得知。

怕是會令很多人頭大的吧!即使能夠『領悟』,將之『一般化』來求解『類似』問題,想來也不容易??為什麼呢?因為一個好的『符號系統』才更能夠『清楚表達』複雜狀況,這使得讀者『明白理解』所謂何事,就像嘗試『說解九連環』一般的吧!!