编程者何。所以役机器也。机器者何。所以代人力也。然机器之力也广。其算也速。唯智不逮也。故有智者慎谋远虑。下笔千言。如军令然。如药方然。谓之程式。机器既明之。乃能为人所使。或演星文。或析事理。其用岂止万端。问曰。机器者。物也。铜铁也。何能为而能识人之语。而为人之使耶。曰。此所以有编程语言也。人之所常言。辞或斐然。典或奥雅。机器故不能解。然机器所解者。则寥寥然二三言也。曰与。曰或。曰非。此皆至元之辞。人又未易用之。故取其中庸之道。倣人之所言。取其精炼明要者。点窜典字。严定其义。上足观之而为人之用。下足译之而为机器所解。是谓编程语言也。古有算经。易有繫辞。其用虽不同。语如其类也。
或问曰。程式所贵者何。曰二。贵巧。贵工。盖谋一事。其计非一。然或事倍而功半。或道迂而求远。皆非良策也。故编程之人。必研于策。策之佳者。其算也精。其行也速。是谓之巧。又程式如文章然。如其信笔杂凑者。其义亦必不通。其谬亦必多矣。程式亦一理。脉络通顺。文理了然者。令人读之而达其意。机器行之而无少失。是谓之工。
或问曰。君言编程亦美矣。然吾既不以其为生计。好之者自谋之。吾何学为。曰。虽不为用。学之亦有益于思。慎密而远。明辨而清。此其一。为作者之乐。此其二。又问曰。编程复何乐耶。终日营营然。对字麻麻然。逢谬急急然。何如斗鸡走犬呼卢传杯之乐欤。曰。编程之乐者。在造物也。女娲氏初知之。公输子复知之。欧冶子三知之。今有是戏。匹夫能为。而其趣盖同。何言不乐欤。问曰。吾知编程之益也。然无由而学之。曰。嘻嘻哉。观此书可也。
今世之编程。实西人草创。故其用字必译耳。其辞古多未闻。或有其字。意乃不同。故曰未言其编程。先解其用字。昔徐利之译几何原本。先解几何之用字。是理也。必不能效抱朴之河车朱雀。乃使观者不知所云。计开。
「代码」者。程式之文字也。或仅数言。或至累牍。视其用也。
「编译器」者。亦一程式也。所以译编程语言。令其为机器之所解也。
「运行」者。其程式既为机器所解。复令彼行之。或算一数。或行一事。亦视其用也。
「报错」者。或以人之误。或以物之限。机器不能达人所欲。是以其因吿人也。
今世之编程语言岂下百种。各争一日之长。然多西人所制。亦沿西人之语。今有沪上黄生。博考诸书。效古人之雅言。为汉语作编程之计。名其言曰「文言」。此书用之。不亦宜乎。
古之启蒙。无不以最易始。昔龙文三字是也。今亦因之。编程之最易者。曰「问天地好在」。列其代码如左。
吾有一數。曰三。名之曰「甲」。
為是「甲」遍。
吾有一言。曰「「問天地好在。」」。書之。
云云。
运行之。乃得
問天地好在。
問天地好在。
問天地好在。
或问曰。胡曰「問天地好在」耶。曰。盖机器未编程时。混沌茫昧。不知天地之所在。既经编程。顿而明朗。拨云见日然。故欲问天地之好在也。
或问曰。胡问之三遍耶。天地岂聋也哉。君不闻秦宓之辩耶。曰。非也。所以示「循环」之用也。「循环」者。为一事数遍也。如辐辏轮转然。如日月交替然。或问曰。欲行之五遍。可乎。行之千遍。可乎。曰。无不可也。
為是五遍。
吾有一言。曰「「問天地好在。」」。書之。
云云。
為是千遍。
吾有一言。曰「「問天地好在。」」。書之。
云云。
或问曰。「甲」者谓何。胡不谓「乙」耶。曰。皆可也。「甲」者。名也。名者。实之宾耶。实者何。悉听尊便也。欲三则三。欲五则五。是谓「变数」也。复观此二句。
吾有一數。曰三。名之曰「甲」。
吾有一言。曰「「問天地好在。」」。書之。
吾有一數 吾有一言者。盖言是变数之类也。数者。所以算也。言者。所以吿人也。物各其类。不宜混同。犹马之不同于鹿。人之不同于鬼。遂预言之。以明其类。
曰三 曰「「問天地好在。」」者。所以命其实也。后若有问数几何者。乃自是知其为三。言亦同。
名之曰「甲」者。所以名变数也。如人之名赃获。剑之名巨阙。后凡曰「赃获」者。乃知谓「赃获」其人。又万物皆变化之中。如昔人之广陵。鲍照之芜城也。今易「甲」为四如是。
昔之「甲」者。今四是矣。
書之者。盖彼运行之所得。机器自知之。而人无由而知之。故用此辞令其示人以果也。
或问曰。甲字上下有符如矩尺然者。何焉。今欲省之。可乎。曰。不可。此引号也。「单引号」者。所以别变数于其他也。「「双引号」」者。所以别言语于其他也。微是。不能别歧义也。又问曰。句读。挪抬。无之可乎。曰。此唯观者助也。无之无损于义。故前例亦可书若是。
吾有一數曰三名之曰「甲」為是「甲」遍吾有一言曰「「問天地好在」」書之云云
「問天地好在」之例。至此略明矣。