智能寫作機器人 作品

第四十七章 語言

    減少現代科技援助、尤其減少信息科技的援助,在當時看來,算是個危險的想法。

    從後來的記錄看,之所以能得到一定程度的認同,主要得益於第二次迴歸時的突發情況。

    當時,在目標的身上,衣服、頭髮,通過飲食等手段沒入身體內部的發信器並不在少數。這些發信器為無名部門構建出了一個嚴密且即時的健康數據監查網絡。時空穿越發生後,它們自然不起作用。但在迴歸後,它們理應開始彙報庫存的數據。然而這時失常,監視組們詫異地見到屏幕上出現了一連串怪異的符號。

    時晴不在場,因此後來才知道當時地下基地的震撼,警報大作,幾乎被認為是一種逆向入侵。

    於是在目標送醫後,所有發信器均被取下,連同密文一起送往解密局。

    這比李明都與鋼星人的交流更加複雜。這些符號單純來自於基地計算機系統本身具有的字庫中的符號,沒有具體的指稱,很難與現實事物一一相連。然而單純研究每個符號出現的頻率,以及出現的位置本身,意即研究語言的結構,也是可以窺視其中的奧妙的。

    以人類的語言為例,反覆出現的“的”、“和”,“是”通常是結構的指示符,是一種邏輯符號。

    “是”類似於數學中的等號,“和”相當於加號。“的”則相當於集合論中的屬於。

    而人類語言中的,“水”、“火”則是意義符號。

    通常而言,邏輯符號比意義符號的出現率更高,並且會頻繁出現在同一結構的不同話語的同一位置。

    解密局一天即使用超級計算機進行一次遍歷,初步勘破了規律。他們發現該密文的寫作符合逆波蘭表示法的特點,也有點像日語。這一特點體現在,所有邏輯符號通常出現在第二個意義符號的後方。

    譬如漢語中講“你沒有女朋友”。然而這門密文的結構則會這樣寫“你女朋友沒有”。

    逆波蘭表達式在人類世界的誕生,是基於上世紀計算機的堆棧需求。對於計算機而言,先識別數據,再識別不同的運算符,然後動用不同的運算器求值,比起先識別一個數據,再識別運算符,再來識別另一個數據,再動用運算器求值,能省去不少步驟。

    解密局思慮過後,即將其抄送中央編譯器與編程語言設計院,也就是一般所說的程序院。程序院收到標識了秘密的任務後不敢懈怠,只在三天內即發來私下不正式的私下回復:

    “該密文內藏複雜的解釋器功能,可以直接將自身編譯為當代大多數計算機環境下的彙編語言。換而言之,它可以作為程式啟動,啟動的後果即是自我複製,並使用可能的一切方式將自身的複製發出。儘管通過底層的逆向追溯,我們確定了密文中屬於解釋器的部分所在的位置,但不論是整體,還是散落在各處的解釋器的部分均有百分之九十九以上無法識別、也沒有實際發出機器指令的未解明密文。它有點像tcc,能夠自己編譯自己,但比tcc複雜太多。冒昧請問一下,這份密文是從哪裡得來的?”

    解密局回覆道:

    “這與有關部門有關。”

    之後,即牽線程序院與其餘數個國立保密機構共參破譯工作。

    這場研究經歷了數次反轉,直到李明都冬季迴歸後,才將這一事件真實的面貌展現得較為清晰。

    最開始的一個月,程序院即破譯出這是另一種計算機語言,內含了多種使用另一種計算機語言書寫的程式。

    整個密文發送過程被中央程序院理解為如下:

    第一階段:發信器被控制。

    地下基地所使用的發信器雖然不足頭髮絲大小,但集成了當時最先進的高速單片機,同時具有簡單的運算和儲存信息的功能。寫入密文後,這一發信器即會被實際控制,原本儲存的人體健康數據大量被清除,存儲器僅開始存儲密文。

    第二階段:翻譯。

    密文是以接近於健康數據的形式保存的,因此它被收信器讀取後,即以健康數據的方式寫出。所有符號均是健康數據會採用的符號。

    第三階段:發送。

    由於偽裝成人體健康數據信息,收信器接收後,送入計算機時,防火牆沒有識別異常。

    第四階段:呈現。

    實際呈現在人們面前的密文,即是密文文檔。這個文檔可以執行,執行的後果之一即是把這個文檔重新從發信器中輸出。然而這隻佔據了百分之一不到的內容。剩下百分之九十九的內容沒有參與發信過程,好像是密文中無關緊要的部分。

    發信器的存儲採用的是dna硬盤技術,密文的大小是這種微型發信器所能儲存的信息的上限,約等於一百萬張cd。想要破譯絕非是簡單的事情。

    幾乎是立刻,對於密文的研究即陷入泥沼。縱然反覆啟動程式,嘗試觀察並記錄全部的流向,它的可讀性也差到可怕,對邏輯電路的調動來源分佈在密文相差甚遠的位置,也讓人感到困惑不解,直到第二個月的開頭,有人發現,在這一密文的書寫中,屬於意義符號串的部分具有一種可怕的對稱性。這種對稱性體現在,它的正數可以通過減去自身的兩倍,而變成一個與原本的自己對稱的負數表示。

    這種規律並不存在於現代的二進制電腦。使用0與1的二進制,無法直接表示負數。想要表示負數,譬如是把首位或末位作為“符號位”,在這個符號位上用0與1來表示負數。而它的計算便需要識別這一符號參數,單從數碼上來看,這是一種不對稱的浪費的行為。