單比特錯誤(第4/8頁)

從泰勒在垃圾箱旁看到她開始,到她一邊喂他吃開心果冰淇淋,一邊答應嫁給他的那天為止,這一個月的時間是泰勒人生中最幸福的時光。

唯一的問題在於,他還是不信上帝。

從洛斯阿達瑪鎮回來的路上,利迪婭在副駕駛座上睡著了。公路很平直,也沒什麽車。泰勒打開車上的定速巡航系統,好伸展一下腿腳。他伸手去握利迪婭的手,並轉頭去看她熟睡的樣子。

後來,他努力回憶事故發生後的感覺。那時,他看見座位旁的利迪婭正在慢慢走向死亡。她頭下腳上地被安全帶綁在座位上,脊背扭曲成一個看上去難以置信的角度,變形的車頂壓住了她的雙臂。泰勒驚奇地發現,自己對自身的痛苦沒有任何印象。

不過,沒有痛苦是不可能的,因為他的兩條腿都骨折了,而且照他臉上和胳膊上的燙傷來看,當時他這一側的車體肯定已經被烤得滾燙。等他在醫院裏恢復到可以自己坐起來的程度時,他得知失明的左眼永遠不會再見光明了。

即便如此,泰勒在那段時間裏的全部記憶也只有利迪婭是如何安詳從容地告訴他,她要死了,她一點痛苦都沒有,她會在天國裏和他再會。

然後她睜大了眼睛,說:“你好,安伯列。”

泰勒在座位上扭動身子,試圖看到她看見的東西,盡管他心裏知道這是徒勞的。他被方向盤卡住了,幾秒鐘之後便不再嘗試。他後來為此悔恨不已,因為就在他的視線離開利迪婭的幾秒鐘裏,她的生命結束了。

要是泰勒信教的話,他可以從利迪婭要與他在天國重逢的承諾之中得到安慰,也可以將憤怒的矛頭指向上帝,一直到自己能夠像約伯一樣接受命運的安排為止;但是,泰勒並不相信天國與上帝的存在。

泰勒同樣無法以一個非信徒的方式釋懷。因為他對利迪婭的愛來自她那內在的光輝,而除開利迪婭所告訴他的之外,他無法為這種光輝提供其他的定義和解釋。他所愛的就是她的信仰。

要繼續做一個非信徒,就意味著宣判利迪婭的歡樂全是幻覺,這會完全摧毀她給他留下的回憶。而變成信徒,則要求他在頭腦中去除想象與真實之間的樊籬,將看起來似乎是虛無縹緲的東西作為事實來擁抱。利迪婭在的時候,只要他們還相愛,他便可以拖延時間,不必馬上做決定,但她的死令他不得不做出抉擇。

痊愈之後,泰勒疏遠了朋友,辭去了工作,拔掉了電話線。

他所要做的,就是盡力搜集和那次事故相關的資料,試圖弄清楚到底發生了什麽。這並非易事,因為事故調查員並沒有查出多少東西,還有大量空白有待填補。不過泰勒並不缺少時間。

“程序員的工作,很大一部分就在於厘清變量與數值是如何通過間接層次相互對應的。”泰勒讀道。

變量之於存儲器,就如同名字之於人腦。可以給一整段存儲器空間冠以一個變量,這樣便無需對每一字節進行個別操作。變量可以指代任何東西——閥門參數、社會安全號碼,或是一段清空硬盤的子程序。

不幸的是,沒有什麽辦法可以判斷某個變量所指向的數據是否存在,以及是否與變量所聲稱的一致。在比特這個層次上,無論是哥斯達黎加蝴蝶的數量,還是澳大利亞外海熱帶風暴的速度,看起來都沒太大區別。

這一點困擾著所有的程序員,因為絕大部分程序對正確性所能做出的那一點點保證完全系於變量的有效性之上。要是你能讓計算機誤以為某個為空值的變量指向的是有意義的數據的話,那什麽事情都有可能發生。

為了讓程序員不至於無法區分確鑿無疑的真實和光怪陸離的災難,變量類型系統應運而生。這是一種嵌入到編程語言當中的數學構造,可以確保某個代表節流閥參數的變量不會指向別的什麽東西,比方說汽車目前的加速度。類型系統以絕對可靠的秩序來撫慰程序員,讓他們不至於因為面對混沌的比特海洋而發瘋。

像很多現代的汽車一樣,泰勒車上的定速巡航系統也是由運行在微型計算機上的專門程序控制的。

這個程序能否正確運行顯然至關重要。編寫它的那位細心的程序員非常清楚自己的工作成果直接關系到他人的身家性命。不僅如此,他使用的編程語言也擁有無比強大的類型系統,甚至在數學上可以證明,無論編程者有多麽狡猾或粗心,只要某段程序通過了類型檢測,那就可以肯定,它永遠都不會把某個被定義為油量的變量指向控制換擋的子程序。在比特的世界裏,這近乎無懈可擊。

所有這一切都說明,當初泰勒有充分的理由把汽車托付給定速巡航系統。