第203章 世界毀滅以後(1 / 1)
隨著現實世界的逐漸毀滅,林易東所在的遊戲世界也在逐漸毀滅。
而在現實世界徹底毀滅之前,林易東所在的遊戲時間便先一步徹底毀滅了。
四周到處都是“0”和“1”,以及世界毀滅後留下的一堆殘渣。
林易東隨手撿起一塊塗鴉轉頭,而後將其捏成了一堆的“0”和“1”。
林易東隨手撈起一把“0”和“1”,而後看著它們在手裡靜靜地躺著。
事實證明,“0”和“1”並不是沙子。
但也正因為如此,林易東心想,也許自己可以用“0”和“1”整點啥。
整根火柴?
不對,應該先弄一些基本構造。
如此想著,林易東開始試著撿起一些“0”和“1”,並將他們拼湊在一起。
“0”後面加個“1”,“1”後面加個“0”,“0”後面加個“0”,“1”後面加個“1”,諸如此類。
“0”是0,“00”是0,“000”是0;“0”是0,“01”是1,“011”是3;“1”是1,“10”是1,“100”是1;諸如此類。
“計算機語言?”
林易東眼前一亮,
“二進位制?!”
林易東開始在自己腦子裡不斷地尋找著,
“也許我真的可以整點啥。”
林易東清楚的記得,計算機能處理二進位制,二進位制是處理器的“母語”。
或者說,它們只能理解二進位制,這叫“機器語言“或“機器碼“。
在計算機早期階段,人們必須用機器碼寫程式。
具體來講,會先在紙上寫一個“高層次版”。
比如,虛擬碼。
而在紙上寫好後,他們便會用“操作碼錶”把虛擬碼轉成二進位制機器碼。
一頓操作後,他們便可以將自己想要的程式喂入計算機並執行。
但這麼實在過於繁瑣,所以人們很快就厭煩了。
於是,人們整出了“助記符”。
“助記符”後面緊跟資料,形成完整指令。
當然,CPU表示:
“我根本不能理解文字,我只能理解二進位制。”
但這不是問題,人們很快就解決了它。
人們意識到,他們可以寫二進位制程式來幫忙。
它可以讀懂文字指令,自動轉成二進位制指令。
這種程式呢,它就叫彙編器。
彙編器讀取用“組合語言”寫的程式,然後轉成“機器碼”。
隨著時間推移,彙編器有越來越多功能,讓程式設計更容易。
林易東記得,其中一個功能是自動分析JUMP地址。
然而,即使彙編器有這些厲害功能,比如自動跳轉。
但是,彙編只是修飾了一下機器碼。
想著想著,林易東想到了更多東西。
林易東想到了紡織業,以及雅卡爾織布機。
當時的人如果只想織一塊紅色大桌布,可以直接放紅線進織布機。
但如果想要圖案怎麼辦?
比如條紋或者方格。
這時,工人就需要每隔一會兒調整一次織布機。
因為非常消耗勞動力,所以圖案紡織品很貴。
而特定位置有沒有穿孔,決定了線是高是低,橫線是從上還是從下穿過。
為了讓每行圖案不同,紙卡連成長條,形成連續指令。
而這,也許就是最早的程式設計。
事實證明,穿孔紙卡便宜、可靠、也易懂。
近一個世紀後,穿孔紙卡被廣泛用於人口普查。
一張卡存一個人的資訊,比如性別、婚姻狀況、子女數量、出生地等等。
針對每個問題,人口普查工作者會在對應位置打孔。
當卡片插入彙總機,孔會讓對應總和值“+1”。
可以插入整個國家人口的卡片,在結束後得到各個總值。
值得注意的是,早期彙總機不算計算機,因為它們只做一件事。
那就是彙總資料,操作固定,不能程式設計。
穿孔紙卡存的也不是程式,而是資料。
之後很多年,這些機器被不斷加強。
可以做減、乘、除,甚至可以做一些小決定。
舉個例子,比如決定何時執行某指令。
為了正確執行不同計算,程式設計師發現自己需要某種控制面板。
他們構思了一種控制面板,在這塊面板上有很多小插孔。
他們希望自己可以插電線,讓機器的不同部分互相傳資料和訊號。
但不幸的是,這意味著執行不同程式要重新接線。
所以程式設計師們不斷改善著“插線板”,並最終使它變成了可拔插的。
這一創舉,讓程式設計更方便,也可以給機器插入不同程式。
比如,一個插線板算銷售稅,另一個算工資單。
某段時間內,這樣做非常的流行。
但因為早期計算機非常昂貴,停機幾個星期只為換程式,這一點人們完全無法接受。
因此,人們急需更快、更靈活的新方式來程式設計。
“是什麼呢?”
一邊回想著自己當初上課時看的書,林易東的雙手一邊也在無意識的撥動著,
“到底是什麼呢?”
對了,是因為記憶體變得價格下降,容量上升。
於是人們發現,與其把程式存在插線板,存在記憶體似乎可行。
而且這樣做,程式也更易於修改、也更方便CPU快速讀取。
而這類機器,似乎叫做“儲存程式計算機”。
如果記憶體足夠,不僅可以存要執行的程式,還可以存程式需要的資料。
包括程式執行時產生的新資料,程式和資料都存在一個地方。
“叫啥來著?”
林易東撓了撓下巴,
“啥啥諾啥啥曼結構?”
命名好像是來自一個傑出的數學家和物理學家,那位老兄好像曾說過:
“我在思考比炸彈重要得多的東西,計算機。”
“我在思考比計算機重要得多的東西,造物。”
如此想著,林易東看向了自己身前這檯筆記本。
開啟筆記本後,林易東發現裡面啥都沒有。
撓了撓頭皮後,林易東把筆記本合上了。
林易東很清楚,程式設計的目的是完成既定的需求。
換言之,程式設計的過程就是一個不斷遇到問題、解決問題並最終滿足需求的過程。
而在完成需求的過程中所遇到的問題,它們被稱為風險。
一名程式設計師如果可以提前識別風險,並會在真正開始編碼之前解決掉風險,那麼他就算是邁入了架構師的門檻。
解決複雜問題的一個重要途徑是對問題進行拆解,將其轉換為簡單問題或已知問題,並逐一解決。
人類目前所有的知識體系,都是建立在人類對這個世界的認知中。
計算機的整個知識體系,自然也不例外。
這也就意味著在程式設計中所遇到的問題,基本上都是在認知範圍內可以解決的。
甚至可以借鑑一些特別樸素的生活經驗,來幫助人們尋找解決問題的方向。
想到這裡,林易東再次想到了“一生二、二生三、三生萬物”。
古人觀察到自然界中各種對立又相聯的現象,如天地、日月、晝夜、男女、上下等,以哲學的思維方式,抽象出“陰陽”的概念。
在如今科技飛速發展的時代,人們對事物的認知越發理性化。
有一種與“陰陽”相同的事物一直被人們所使用,那便是二進位制。
乾卦,表示111;兌卦,表示110;
離卦,表示101;震卦,表示100;
巽卦,表示011;坎卦,表示010;
艮卦,表示001;坤卦,表示000。
正所謂:
“太極生兩儀,兩儀生四象,四象生八卦......”
簡簡單單的陽爻和陰爻,似乎就能夠組成世間萬物。
“也許,我可以靠著簡簡單單的‘1’和‘0’創造一個世界?
屬於我的世界?”