吳先生這樣一比喻,加上許仙原本就是學程序的,對這個程序穩定性頓時理解了不少。
吳先生繼續道:“程序員在回到過去編修程序時,最忌諱的就是在編修的過程中,留下了一些‘垃圾程序’,也就是‘道’裏麵所講的‘因果’。這種垃圾程序或者說因果,往往會在不經意超過程序容錯性的範圍,進而破壞程序穩定性。”
突然聽到‘因果’和‘垃圾程序’有關係,許仙的大腦立刻當機了,對吳先生所說的一時間十分糊塗。
吳先生應該是看出來,盯著許仙看了片刻,才緩緩說道:“仔細聽好了,先假設在一個封閉環境下,有一個程序塊A,它由子程序B‘1’、子程序C‘+1-1’和子程序D‘+1’這三部分組成,即它的基本功能是實現‘1+1-1+1’,並且每隔n秒運行一次,n為無限小。”
“再假設程序塊A正在運行,那麼,它的前n秒以及後n秒,應該都會產生一個結果‘2’。”
“這時一種特定程序S闖入進來,它可以回到前n秒,並將程序塊A的一部分子程序B‘1’去掉,隻剩下子程序C和子程序D,即‘+1-1+1’,那麼會發生什麼?”
吳先生說到這裏,臉上已經沒有了絲毫的微笑,似乎是從許仙溫文爾雅的初中語文老師變成了他那位大學教計算機語言的刻板眼鏡博士。
許仙回答道:“剩下的‘+1-1+1’是無法運行的,程序塊A應該會報錯,或者會終結。”
吳先生又道:“那如果不是去掉子程序B,而是去掉子程序C,又會是什麼結果?”
許仙聽得入神,幾乎都忘掉自己在不久前出了車禍,仿佛回到了授業聽課的學堂,他忍不住想到:去掉中間的‘+1-1’,那就是等於剩下了‘1+1’,這樣無論是前n秒還是後n秒,結果都仍然是‘2’。
許仙說道:“如果是去掉子程序C,那結果應該沒有變化…”
許仙的回答有點忐忑。
吳先生微一點頭道:“這個結果‘2’可以看做是是程序穩定性,當我們去掉子程序B是,穩定性就會被破壞,而當我們去掉子程序C時,穩定性卻沒有受損。又或者我們多加一個子程序E‘-1’,穩定性也同樣會被破壞掉。”
“所以程序員回到過去編修程序時,無論是對程序進行什麼樣的操作,都要以保證結果始終是‘2’,即保證程序穩定性為前提。”
許仙沒有吭聲,信息量實在太多了,即便他每句話都能聽懂,也無法將這些概念聯係成一條清晰的脈絡。
吳先生繼續道:“實際情況比這還要複雜。真實世界中,程序間互相影響,譬如剛才所說的程序塊A,去掉它的子程序C,它的結果雖然還是2,但是被丟棄的子程序C就是‘垃圾程序’、‘因果’,如果再被另一個程序塊X吸納,從而導致程序塊X發生變化,這樣也等於間接破壞了程序穩定性!”
“而這其中所導致的不穩定將由特定程序S,也就是程序員負責!”
“輕則扣除程序員的子程序,重則程序員會被程序世界抹殺!”
許仙一驚:“程序員也會死?”
“為什麼不會死?程序世界雖然給了程序員一定的自由和能力,但程序世界始終都是程序員的父程序,它保留著終結程序員的能力。用西方的神鬼體係來說,我們隻是神的代言人,神讓我們脫離人類,並注入了一定的神力,如果我們犯了過錯,神照樣可以剝奪我們的神力。我們中國就是說,有違天道,罰下天劫。”
(神的代言人,即指上帝的代言人)
許仙瞠目結舌,從某種程度上,程序世界就是將神鬼體係理論用程序的現代概念重述了一遍,但顯然用程序解釋真實世界,要比神鬼那一套要清晰細致太多。
許仙定了定心神,勉強接受了神仙和程序是一碼事。
吳先生重新回到了正題上道:“為了不破壞程序穩定性,或者盡量少破壞點程序穩定性,用中國程序員的老話講,就是少沾點因果,以免受到天劫,所以程序員一般都隻會對已經終結的程序下手!”
“已經終結的程序?”許仙眉頭一皺,疑惑道:“那不就是死了嗎?”
(英國術士‘弗拉德旺’隻是參照了計算機名詞,他所提出的程序世界以及相關概念,雖然與計算機名詞十分相似,但實際定義還是有所出入的)
(大家把這一章當做教科書讀就行了)