人類自誕生以來就想著要製造工具,以便更容易、更多、更好地獲取生存所需。兩隻空手的力量、速度都太有限,連一條狗都打不過、一條魚也抓不住,抓隻螞蟻還行。好在腦子好使,會製造工具、進而武器、進而機器。眼下都有機器人了,可以替人類完成各種各樣的工作,隻有思考還不行。能夠學習、自我完善的機器人也快了,它們被稱之為人類最後的發明。
怎麽讓機器聽人指揮呢?它得聽懂人的語言、匯聚自己的能量、執行指定的動作。機器不過是人用堅硬的材料拚裝起來的、可執行輸入/輸出的、沒有生命的物件;關鍵在於可接收原料、信號(指令)的輸入,並產生有用的、人想要的輸出。一個沒有意識的物體,怎麽接收輸入、產生輸出呢?(1)它對某種特定的東西如酸/堿、電流、熱流、光照等有反應,即是會產生某種變化;(2)某種特定的結構(形體),如拋物麵的多層次通道、鋒利的表麵、螺旋狀的彈性結構,可以增強、加快某種效應。作為輸出,(1)要多快好省;(2)主人可以明白、掌控。
機器分三種。一是來料加工機,把一種物質變成另一種更好的物質。所謂好壞,因人所需而異;把水變成冰好呢,還是把冰變成水好,要看個人需要。變化可以是物理的,簡單的分分合合,再加點調料。比如,手機裏的照片,把同主題的一些照片串聯在一起,配上一段音樂,就成了賞心悅目的視頻了。如果能夠從一張照片出發,推出那個場景的前生後世,那就是神器,而不是App了。變化也可以是化學的,即是改變物質的結構、組成成分,實現分子、原子層麵的重組。主人的能力、知識要足夠強大才行:你得能夠把分子鏈打開,重新鑄造化學鍵,還要保持長久的穩定;如果能夠把原子核打開、而又自身不受傷害,那就成神了。
二是武器。以很小的能量輸入,產生劈山斷水、毀形滅跡、致人性命的極速、暴力輸出。普通的刀劍,威力有限,必須要改善其結構、配以功法秘籍、灌注精神力,才能威力無窮。普通槍炮,射程有限;核彈還是普通,超音速/極高音速的核彈正是眼下各國上映的大戲。但是,還沒有到神器的地步。電磁炮,也隻能幹擾信號;誇克彈+弦波,才是最終的極限。隻恐怕,到那時,人類便不複存在了。
三是電子計算機,即是在電子層麵操控一個機器,這是目前人類能夠做到的最高境界了。把一切信息變成電信號,用開關電路數字化,存儲在一個磁場裏。需要的時候,把它讀入到中央處理器,再用指定程序對其處理,產生主人想要的效果。計算機程序由一係列主人事先編製好的、存儲在中央處理的指令組成,每一條指令執行一個指定的動作,比如計算1+2的結果,在屏幕上顯示字母X,判斷用戶是否敲擊了空格鍵,讓屏幕上的某個像素點顯示白色,指出一個單字Swod的拚寫錯誤。CPU隻懂得機器代碼,為了彌補機器和人類認知之間的鴻溝,人類發明了由低級到高級的數百種編程語言,最終都轉換成可執行的機器代碼。
編程語言的數量成百上千,但主流的隻有寥寥幾種:C語言,C++ Java C# Php Python JavaScript PL/SQL等。有的是編譯語言,經過編譯器先行編譯為機器代碼,之後再運行;有的是直譯語言,通過解釋器(如JavaScript引擎),動態地將代碼逐句直譯為機器代碼,之後再運行。許多語言都是由C語言發展而來,不同編程語言的特性、內置功能甚至設計思想都大同小異;隻要學會一種,其它自然觸類旁通。如同人類世界的各國語言,都有共性可尋。
計算機編程的最高境界是代碼的自動生成,這可不是把高級語言翻譯成機器代碼,而是主人說一句話,它就能夠把那句話變成數字化的指令、存儲並執行。很多人想到了模式識別和機器學習,還稱能夠自我完善的機器為不可能。這其實隻要有一個能夠進行邏輯推理、解情達意的程序就行了。我在教授《數理邏輯》時曾經萌生了一些奇妙的想法,現在是實現的時候了。