計算機軟體是怎麼發展的。

例如怎麼由最初的輸入0和1,到可以用彙編語言,再到各種高級語言?低級語言怎麼編寫的高級語言?

計算機硬體是怎麼發展的。

例如怎麼讓支持彙編語言的計算機,怎麼發展到可以支持各種高級語言?。

心裡一直有這些疑問,然而網上可以搜到的又解釋的有些籠統,沒有具體描述,希望大家可以詳細解答一下。


01生彙編,彙編生c,c生萬物。

推薦你讀一讀李忠的《穿越計算機的迷霧》主要是講硬體發展史,軟體發展史總的來說就是機器語言-&>彙編語言-&>高級語言,剩下的就是各個IT公司各顯神通。可以閱讀吳軍的《浪潮之巔》和美國沃爾特·艾薩克森寫的《創新者》。發展史之類的偏歷史書籍最好是找本書,靜下心,慢慢讀,如果只是上網看的話只能了解模糊的大概情況。


自己去買本書看,《編碼:隱藏在計算機軟硬體背後的語言》


不請自來!

你的問題很宏大,我只能說個大概。

事實上,現代的數字式電子計算機,它從正式誕生到今天,不過才發展了幾十年。

在數字電子計算機誕生前,曾有許多先驅者做過許多嘗試,典型的有帕斯卡的純機械式計算機和近代的模擬電子計算機,但是它們的應用範圍有限,最後都不太成功。直到英國的阿蘭圖靈提出了圖靈機模型,並成功建造出實物,解決了重要的密碼破譯問題,才為數字電子計算機的誕生鋪平了道路(電影《模仿遊戲》就講述了二戰期間,圖靈和他的團隊一起共同創建和應用世界上第一部電子計算機攻破德軍密碼的故事,相當精彩值得一看)。

現代數字電子計算機都以布爾代數和邏輯電路為基礎。

作為普通大眾,如果想了解計算機軟硬體發展史,最好的科普書是《編碼:隱藏在計算機軟硬體背後的語言》。計算機專業課程中有《計算機系統原理》《操作系統》《編譯原理》等課程,都是跟你的問題有關的內容。


首先,機器碼的產生不是憑空產生的,而是根據設計好的電路產生的,也就是說,你設計好了電路之後,自然就有了對應的機器碼了。那電路是怎麼設計的呢?是根據布爾代數和邏輯電路的本質一樣性。布爾代數非真既假,和邏輯電路的開或關在本質上是一樣的。所以可以用布爾代數計算的數學問題,邏輯電路都是可以實現的。而布爾代數其實更像邏輯學,羅素已經做了證明,所有的數學問題都可以轉化為邏輯問題,而邏輯問題就可以使用布爾代數表示和解決,而布爾代數和邏輯電路本質是一樣的,所以,所有的數學問題,都可以使用邏輯電路解決,這也就是為什麼設計的電路可以解決數學問題的原因。電路不是胡亂設計的,最開始都是一群數學家和工程學家和科學家一塊研製出來的,都是經過理論證明的,這樣設計的電路,是可以解決數學問題的。

前奏結束,下面,低級語言到高級語言是靠自己的迭代實現的,最開始是直接使用開關和插線實現二進位的輸入的,然後是列印的二進位紙帶,再之後是彙編程序,最開始的彙編程序就是使用二進位寫的,有了彙編程序後,就可以用彙編程序寫功能更強大的彙編程序了,然後用功能更強大的彙編程序寫高級語言,比如fortran,也可以用更高級的彙編語言寫操作系統了。彙編器開始的時間遭遇操作系統,彙編語言出現於1946年11月,彙編器出現於1949年5月,操作系統出現於1955年。最開始的彙編器應該也具有一定的操作系統的功能應該。

第三,計算機硬體的發展,最開始是普通的機械開關,後來變成電子管也叫真空管,再後來是三極體或叫晶體管,再後來把三極體集成到一塊半導體晶元中,再後來是大規模集成電路。其實,硬體一直都是工藝再進步,本質是沒變的,無論工藝怎麼進步,都是使用能表示開和關的電子元件組裝邏輯電路或布爾電路的。

第四,怎麼讓讓支持彙編語言的計算機,怎麼發展到可以支持各種高級語言?高級語言和彙編語言只不過是信息而已,計算機除了可以處理數學問題,還可以處理信息。就是把高級語言先經過詞法分析、語法分析、語義分析轉成彙編語言,再把彙編語言使用彙編器翻譯成二進位語言,也就是高低電平。電路只能認識高低電平,因為電路的輸入只可能是高電壓或低電壓。

這幾天的研究成果。


推薦科普書。

《計算機是怎樣跑起來的》講的比較細,作為入門讀物可以了。如圖,我買的電子版的。


都是編譯器相關問題

是計算機相關專業的等著學《編譯原理》,不是的話找相關教程或者公開課看看


謝邀

計算機硬體發展類的知識可以參考一些專業級入門的書 例如湖北技能高考的計算機基礎這樣的書 一般都會講解硬體發展而所謂的低級語言編寫高級語言 我用C語言舉例子1.由機器代碼(01)編寫彙編語言2.由彙編語言編寫最最基礎的C語言編譯器3.由基礎的C語言編譯器編譯功能更複雜的C語言編譯器4.一直參照第三條

以上

割割割割割割割割

上面的內容嚴格地說屬於科普類的 適合入門用 如果想更深入的了解 請參考其他答案的大佬們

ps 為什麼!為什麼改題目了!我好尬啊


cpu是人類歷史上最宏大的智慧結晶


0和1表示開與關,開關的組合行程邏輯運算,從而衍生指令。有指令就有指令對應的表達式,一堆給指令命名形成了彙編,然後簡化彙編形成了高級語言。


推薦閱讀:
相关文章