作者:
capita (小明)
2018-05-11 01:26:30※ 引述《wizardfizban (瘋法師)》之銘言:
: 看多了我也困惑了起來。
: 雖然我不是這方面專家但好歹也懂一點點。
: 我認知中程式語言最終還是要轉譯成機器語言,電腦才能執行他。
: 機器語言簡單來說就是0101010。
: 最早編程就是010101這樣做,但這樣太苦逼了。
: 所以才開始有人開發高階的也就是形式語言。以我們人類較為直觀方便的方式編程,然後
: 再以轉譯程序翻譯成機器語言給電腦執行。
: 所以每次看到用漢語寫的程式語言多優美多簡潔可以甩那些英文語言好幾條街的說法時,
: 我都很困惑。
: 關鍵在優勢在那?現在的形式語言的優缺點其實就是不同語言適用的程式開發不同,有些
: 語言用在特定的情況下更方便。
: 所以漢語的程式語言優勢在那?最終都是要翻譯成機器語言的不是嗎?在基底都一樣的情
: 況下,只是把英文符號改成漢語符號就能有一堆優勢?
: 我真心不懂為什麼?有專家能為我解惑嗎?
中文程式語言,幾乎不可能比使用英文或符號的程式語言更有優勢。
這要從程式語言的理論來說起,程式語言是人與機器的溝通媒介,
而控制機器的通用核心計算模型,它必要的操作是非常少的。
以當前主流的馮紐曼機而言,只要設值、計算、判斷三種主要操作,
就可以完成一切功能,幾乎所有的計算模型都是如此簡單。
然後加上方便人類理解的流程控制和資料型態之後,就構成通用的
程式語言,早期的 C 語言 (C89) 總共只有 32 個關鍵字,到現在
C11 是 44 個。
這個數量雖然偏低,但像是功能已經相當完整的 Java 是 53 個,
到最複雜的 C++ 也沒有超過 100 個,而 C++ 已經讓很多人覺得
太過困難了。
在這樣的複雜度之下,中文並沒有優勢可言。除非是一開始就需要
數百種以上的核心要素並有高度組合性的運算結構,使得任何一個
語法操作或實體描述就需要 40 到 60 個字元以上,這時使用中文
就會有減少組合爆炸的好處。
但目前及近未來的機器或系統,還不會複雜到這個程度,就算是在
理論上存在,短期內人類也很難設計和製造出來。
需要注意的是,現在許多程式語言已經可以用中文來寫了,但由於
沒有實際的好處,那只是有趣而已。
例如著名的 PerlYuYan:
https://github.com/audreyt/lingua-sinica-perlyuyan
# The Sieve of Eratosthenes - 埃拉托斯芬篩法
use Lingua::Sinica::PerlYuYan;
用籌兮用嚴。井涸兮無礙
。印曰最高矣 又道數然哉。
。截起吾純風 賦小入大合。
。習予吾陣地 並二至純風。
。當起段賦取 加陣地合始。
。陣地賦篩始 繫繫此雜段。
。終陣地兮印 正道次標哉。
。輸空接段點 列終註泰來。
這是一個計算質數表的程式,像這樣用文言來寫程式夠酷了吧,
但就真的不會比英文來得好用。