假如有某種力量使得世界上所有編譯器都被刪除了, 人類是否需要從打孔卡開始寫第乙個編譯器

時間 2021-05-06 18:40:27

1樓:張驍

都是吃過見過的主,沒了張屠戶,轉眼之間,一堆趙錢孫李周吳鄭王都能開始殺豬拔毛了。

說實話,這種奇葩的故事真要是發生,可能最大的受益者是咱們中國,呵呵。

2樓:

紙帶打孔是因為那個年代沒有記憶體條,圖靈完備的乙個條件是要求紙帶無限長。彙編編譯器不是很難,難的是高階語言編譯器,c當年的思路是先翻譯成彙編,再翻譯成機器碼。

圖靈機確實難了點,不過如果你知道丘奇機,了解lambda演算,定義乙個符號系統就簡單點。而丘奇機等價於圖靈機,到時候先用上再說嘛。

3樓:劉生

我覺得完全沒有問題。

當然不會用打孔直接寫高階語言編輯器。

但是可以湊合寫出某種低階語言的編譯器, 然後就可以用這種低階語言,去寫更高階一點語言的編譯器。

以此類推,達到目前的水平,並不會需要太久。

4樓:黃亮anthony

我幫你推廣一下,所有電腦程式的儲存裝置都被清除了,也就是說bios這些在rom中的程式也沒有了,也就不存在能用的顯示器,鍵盤了。

那麼我們會用打孔卡嗎?

很可能。第乙份電腦程式,需要把乙個01的序列讓計算機讀取到,那麼比較好驗證的方法,我覺得還是打孔卡。

但是這個過程不會持續太久,很可能只有乙個程式需要。全球程式設計師的協作之下,24小時我們可能就可以恢復一半多程式。

問題是,資料再也回不來了,很多程式永遠也不能和原來一樣執行。

5樓:Ivony

編譯器不是什麼高大上的玩意兒……

真正複雜的是適應多次迭代之後的複雜的語法和各種黑科技的優化策略……

編譯器最核心的功能,本身就不複雜,應該每個學生畢業都要寫乙個。

6樓:invalid s

沒了編譯器還有直譯器。隨便python直譯器還是別的什麼指令碼語言直譯器都行,一天不到就能擼個彙編器出來——甚至擼個簡單的C語言編譯器,沒什麼優化能力的、大約gcc 0.0.

1那樣粗糙的都沒什麼難度。

一旦粗糙的C編譯器做出來了,那麼很容易的就能用它編譯C寫的、更好的gcc;如此連番迭代,很快就能恢復到現在水平——甚至因為沒有歷史包袱,還能做的更好呢。

直譯器也刪了?

刪了沒關係,還能寫bash指令碼呢。和python功能差不多,照樣秒寫乙個gcc 0.0.1。

命令列也刪了?

刪了照樣沒關係,還有十六進製制編輯器呢。查x86機器碼手冊,手工用十六進製制編輯器搞乙個簡單的彙編器出來——所謂彙編器,其實就是機械的把和機器指令對應的助記符轉換成機器指令、外加一點點方便功能而已。

彙編器都出來了,gcc 0.0.1還遠嗎?

十六進製制編輯器也刪了?

還沒關係。可以和COM口通訊嘛,找個超級終端,把COM口進來的內容重定向到檔案——然後,你知道的,很簡單就能設計個硬體板子,用導線網的連線與否儲存0和1,逐行掃瞄灌進COM口,彙編器就又出來了。

7樓:可以是假名嗎

編譯器是編譯器,打孔卡是輸入裝置,不是乙個層面的東西。你大概是指編輯器吧?文字編輯輸入?

如果沒有編輯器的話,倒是需要打孔卡。但也有替代方式,比如按鍵輸入,你一定會說按鍵輸入也是需要程式處理什麼的,其實可以用硬體做到和打孔卡一樣的方式,而不需要軟體,當然就不需要編輯了。

8樓:劉鑫

手寫彙編/機器碼唄,跟打孔卡沒有關係,那東西就是個輸入/輸出裝置。

這事兒很煩躁,但是只要bootstrap成功,就可以逐步迭代,逐步恢復到現在的水平。

專業人士建議學習一下彙編,雖然實用上可能一輩子都用不上。但是可以破除一些迷信。

9樓:窮碼農

只是編譯器沒了而已。

人的記憶不是還在麼?電腦不是還在麼?文獻不是還在麼?寫編譯器的那幫大佬不是還在麼?

計算機理論也發展了這麼些年了,咱們不會因為丟了編譯器,其他的東西都得回退呢。

重新造就好了呀。

雖然我寫不出來,也不會。

以前主要是那幫先驅們不光要造計算機,還得證明各種可行性,找人給他們經費來開發。

然後,大家就會投錢進去的。

別慌,這波能找回。不需要從打孔的吧。

突然忘了一點,咱們不還有Jeff Dean麼?

他不是直接寫01機器碼的麼?

以後的程式都讓他來寫吧,但感覺最近他很忙。

實在不行,如果他有時間,讓他先培訓一下手底下的Googlers怎麼手寫機器碼吧。

10樓:JennyVenus

編譯器沒有了,不還有各種解釋型語言嗎?你把解釋型語言也都刪完了,也就用乙個月,乙個最基本C編譯器就出來了,有鍵盤,有滑鼠,為啥用紙帶打孔呢?

11樓:pansz

第乙個編譯器當然利用的是組合語言,用的是彙編器。

例如gcc的編譯大致就是:用組合語言編譯乙個迷你編譯器,用這個迷你編譯器編譯出乙個小的c語言編譯器,用這個小的c語言編譯器編譯出乙個完整的編譯器。

不過,我想你或許要問:如果組合語言的彙編器也算編譯器怎麼辦?

好訊息,組合語言的彙編器是相對比較簡單的,可以看CPU指令手冊直接搞出來,然後HexEdit直接寫二進位制就能實現了。

在你的假定中,缺少的是編譯器,而不是輸入輸出手段,打孔卡時代用打孔的原因並不是因為編譯器,而是因為當時沒有更好的輸入輸出手段,當顯示器跟鍵盤成為靠譜的輸入輸出手段以後,打孔卡就已經是不需要的了

12樓:

最早的編譯器是人腦,而不是打孔紙帶。

另外,先有打字機再有計算機。

人腦先記指令,然後落在草稿紙上。

寫程式的時候用打字機,輸入是人腦裡的彙編,輸出是打孔紙帶。

在IBM System/360流行之後,1byte才事實上統一為8bits,早期計算機多位7bits,能表示128個ASCII字元,打孔紙帶乙個位元組7個孔

總而言之,編譯器沒了沒關係,分分鐘寫乙個,就算計算機沒了,都可以分分鐘從頭造乙個。

13樓:frams

不用從打孔開始,打孔是儲存方式的一種,現在能讀打孔紙的機器不好找。實現編譯器還是用磁碟容易些

另外打孔相當於寫機器指令。沒編譯器還有彙編器,寫彙編就行不用機器指令。

當然如果是整個編譯器工具鏈都沒了,那就乖乖寫機器指令吧。

所以打孔是不可能打孔的

至於第乙個編譯器怎麼做出來,可以搜尋編譯器自舉

假如有足夠長的時間,是否可以說世界上的所有動物都能進化出像人類一樣甚至比人類更高的智慧型?

亡魂 地球人存在很多遠比人類存在了更久的生物,甚至有不少進化出了永生這種逆天的能力,那麼問題來了,智慧型對於人類的作用是什麼?如果人類沒有智慧型,在食物鏈中,也不過是自然界裡毫不起眼的一種生物,為了生存,人類進化出了智慧型,但是如果乙個生物,它生活的環境沒有天敵,甚至可以永生,它就不需要為了生存而進...

假如有乙個不為私利 力量絕對凌駕於地球所有勢力的霸權來制衡, 大部分的 紛爭 戰爭 真的會消失嗎?

荀彧 人的天性使然,人本身就是自私的動物,追求不平等區別的生物,你硬是要創造乙個大同社會,這不是為難我們自己嗎?我斷言哪怕以後生產力無限大,想要什麼就有什麼,照樣也有戰爭。 需要這麼一種文明,文明先進程度和進化程度永遠處於捏爆地球人狀態。不為壓迫不為資源單純作為秩序守護者徹底取代地球權力層面。幫助人...

假如世界上所有人都獲得1000塊錢,世界會怎樣?

ayasa 什麼都不會發生,數額太小了。對富人來講1000就是他們萬貫財產中一滴小水滴,不驚起任何波瀾。對小康家庭來說也不算什麼,吃幾頓飯就沒了。對窮人來說,會很快用掉這筆錢,因為他們更多看的是蠅頭小利,或應急之需,根本不會想到也沒有途徑將這筆錢變成更多的錢。再說1000是什麼貨幣?歐幣?rmb?美...