“何教授,就是這樣……昨晚花了我的電腦一晚上的時間,還是什么都查不到……”顧念之都有些沮喪了。
她還從來沒有碰到過這種情況。
何之初輕輕咳嗽一聲,對顧念之說:“念之,我想問問你,你對Prolog這種編程語言熟悉嗎?”
“Prolog?Programminginlogic?”顧念之迅速反應過來,“知道啊,但是這種編程語言運用并不廣泛,還處于實驗室階段。”
“那你知道它為什么運用并不廣泛?”何之初像是在課堂講課一樣啟發顧念之的思維。
“Prolog,也就是Programminginlogic,顧名思義,它是一種基于邏輯理論的編程語言,也就是智能程序的一種。現有的電腦硬件水平有限,不足以支撐這種編程語言的大規模運用,所以實際運用基本為零。”
“對,那它跟普通的編程語言有什么不同?”何之初抬眸看著窗外的陽光燦爛,瞇了瞇眼。
“呃,何教授是在考我嗎?”
“你不是號稱天才電腦小能手嗎?我看看你的基本知識掌握得怎么樣。”何之初清淺地笑了笑,修長潔凈的手指將窗簾放下,走到自己的書桌前坐下,打開了電腦。
顧念之嘻嘻笑了一聲,說:“好吧,我是這樣理解的。普通編程語言,程序員占有絕對主導地位。他的代碼一行行明明白白,都是給電腦的指令。而Prolog這種邏輯編程語言,卻是給電腦設定邏輯規則,然后讓電腦根據邏輯規則自行判斷如何進行下一步程序。”
“舉例來說,用普通編程語言讓電腦計算公式,程序員教電腦先乘除,后加減。電腦嚴格按照程序員設定的計算順序進行計算。從這個角度來說,電腦執行程序員的命令,永不出錯。出錯的只能是程序員寫錯了程序。”
“而Prolog這種邏輯編程語言,是按照邏輯規則進行數據處理,并不是簡單的先加減后乘除。”
“最簡單的邏輯關系是這樣的,先設定小紅是人,小麗也是人,兩人互相喜歡。再給出判斷規則:互相喜歡的人是朋友。那么當你輸入小紅喜歡小麗,小麗喜歡小紅,電腦就會得出結論:她們是朋友關系。然后按照朋友關系進行下一步推理運行。”
何之初滿意地點點頭,“不錯,深入淺出,是這個道理。但是,這是最基礎的描述。——你用Prolog編過程嗎?”
顧念之想了想,搖頭說:“試過幾次,但沒有系統地大規模編過程。”
她從趙良澤那里學到的是最實用的黑客技術,這意味著她對現有廣泛運用的程序研究得更多更透徹。
因為黑客本質說白了,就是破解功能。
最強大的黑客,可以破解一切程序。
而智能編程語言,基本上沒有實際運用,也就不需要破解,因此顧念之對這一方面了解得比較粗淺。
“太可惜了,如果有機會,你多用Prolog編程,有些問題就不成為問題了。”何之初含蓄地提醒她。
顧念之一時沒聽出來何之初的言外之意,她聳了聳肩,不以為然地說:“可是智能程序跟計算機的人工智能息息相關,在人工智能取得突破性進展之前,這些智能編程語言只能是小打小鬧,干嘛要花時間在這上面?等人工智能大行其道之后,我再來研究如何破解也不遲啊。”
何之初頗不贊成地搖了搖頭,“念之,據我所知,這種智能編程語言,在有些國家的軍方實驗室里,已經是半成品了。——軍方的半成品,你知道是什么概念嗎?”
顧念之一下子卡殼了。
何之初的身份地位,讓顧念之不能對他說的任何一句話等閑視之。
顧念之突然若有所悟。
她想到剛才何之初提到的Prolog這種編程語言,雖然她只有粗淺的了解,但是這些粗淺的了解包括了這種智能編程語言最核心的規則。
而何之初的提示,也像在顧念之面前打開了新世界大門。
她定定地看著電腦上她琢磨了一整個上午的源代碼,好像明白了什么。
“念之?”何之初半天沒有聽見顧念之說話,有些擔心地叫了她一聲。
顧念之回過神,欣喜萬分地說:“何教授你太厲害了!我覺得我已經找到問題所在了!對不起我要找bug了,等我找到bug,我請何教授吃飯!”
“真的?你可別哄我。”何之初清冽冷漠的臉上露出一絲淡淡的笑意,那笑意既輕且淺,就像春天零星的雨水落入清澈的蔚藍湖水中蕩起的細小漣漪。
顧念之連連點頭,“絕不食言!食言讓我長成個大胖子!”
“嘖嘖,你對自己真夠狠的,連我都怕了。”何之初淡淡打趣她兩句,就掛了電話。
看著眼前的電腦,何之初想了一下,點開了一個不常用的程序……
顧念之掛了電話之后,盯著電腦顯示屏足足半個小時,坐在那里一動不動,就如泥塑木雕一樣。
其實她的腦子里正飛快地運轉著,回想著如何使用Prolog這種智能邏輯編程語言,以及如何破解這種智能邏輯編程語言。
不過破解的第一步,是探測。
何之初的話,讓顧念之有了一種新的設想。
一個普通程序里,如果夾雜有Prolog,或者跟Prolog類似的編程語言,會是什么情況?
她和趙良澤都找不出來的bug,是不是跟Prolog這種智能編程語言有關?!
又過了半個小時,顧念之全部想透徹了,才拿起鼠標,打開自己的編程本,開始寫程序。
這一次,她把自己查驗bug的小程序進行了改裝,把智能編程語言也當做是一種bug進行查找。
查找的依據就是,凡是用邏輯設定進行運行的源代碼,都是bug。
因為普通編程語言從來不用邏輯設定編寫源代碼。
改裝之后,再重新對趙良澤給她的源代碼進行查驗。
這一次顧念之沒有睡覺了,她一直坐在電腦前,眼睛都不眨地看著自己的程序運行查找。
不得不說,趙良澤給她的監控軟件的源代碼確實太厲害了。
幸虧她在霍紹恒官邸的這臺電腦功能更加強大,才能進行這樣高負荷的運算和檢測。
盡管如此,也花了她幾乎十二個小時,才完成整個檢測。
她的中飯和晚飯都是在臥室吃的。
整整12個小時,顧念之腳不出戶,除了去門口拿勤務兵送來的午飯和晚飯,她幾乎沒有離開電腦一步路。
晚上十一點,她的程序終于傳來大功告成的叮鐺聲。
她從來沒有看到電腦顯示屏上出現的大大“Done”這么高興過。
顧念之長長吁了一口氣。
點開程序的errorreport,她看到以前空空如也的驗錯報告里,出現了幾行指令,頓時喜笑顏開。
昨天晚上她的程序查了一夜,可是一個錯誤都沒有查出來。
那個errorreport里什么都沒有,顧念之卻一點都不高興。
現在看見errorreport里出現了真正的錯誤指令,她卻高興得不得了,也是醉了。
顧念之興奮地閱讀驗錯報告,越看越興奮,越看越激動。
“我擦!還有這種操作?!”
“居然能在普通程序語言里設定一個基于Prolog智能邏輯編程語言的遞歸(recursion)程序!”
“……這是在一群一個指令一個動作的傻子中安插了一個中二選手,悄悄地給傻子們發號指令啊……”
顧念之看得心潮澎湃,目不暇接。
就好像在只會“說一是一,說二是二”的源代碼里,突然多了一種代碼,告訴它們,當一出現的時候,可以原地不動,當二出現的時候,可以回到一。
如果既不是一,也不是二,那就照原指令運行。
這特么就是在既定的“一、二”兩種情況之間設定了一個邏輯死程序啊!
關鍵是用了智能邏輯編程為基礎,讓這種邏輯死不會成為死循環的病毒程序,所以不會被軟件的使用人發現。
“真是太厲害了!誰這么天才啊?!”
顧念之顧不得半夜三更,激動地給何之初打電話:“何教授!我找到bug了!果然有人在普通編程語言里夾雜了幾行prolog指令!——何教授您太厲害了!您才是天才!真正的電腦小能手!”
何之初剛睡了,被顧念之的電話吵醒,他也不生氣,淡淡地笑了一下說:“能夠被天才電腦小能手夸獎,我不勝榮幸之至。”
顧念之笑得很開心,“何教授太謙虛了,這個問題難倒我們很多人,沒想到您居然一下子就看出了問題的本質。我想問問您,你為什么會知道是這個原因呢?您對電腦好像也很精通哦!”
何之初眼神閃了一下,從容不迫地說:“我也是站在巨人的肩膀上。——我曾經贊助過一個國家的軍方實驗室,看見他們做過這方面的測試。”
“喔咧!明白!”顧念之知道何之初說的是哪個國家,她心照不宣地閉了閉眼,“看來,我們要趕超的路還很長啊……”
“也不長了。”何之初悠然地靠坐在床上,“其實你說你們有人提出這個問題要么是電腦問題,要么是軟件問題,已經指出了問題的核心。相信那個人只要再多想一陣子,就能想出問題的關鍵。”
因為只有智能編程語言才能真正驅使硬件為軟件服務。
顧念之一下子覺得與有榮焉。
她家霍少就是這么棒棒噠!
這是第三更3100字了,也是大章哦!
提醒親們的