最早的編譯器是什麼樣子的?計算機語言的怎樣一步步發展的?
01-28
每次學習編程的時候總是會想,這xx東西是怎麼弄出來的啊ヽ(#`Д′) 小弟的問題就是,
就計算機這個東西來說,某種語言是如何產生的,是如何「製作」出來的,我知道最初的計算機是用讀孔來接受信息的,那麼又是如何一步步發現到如今這種讓人眼花繚亂的,各種語言並存的盛況的呢?題 某文理學校計算機專業,認為只有了解計算機的歷史與本質才算是了解這門學科,求各路高手解答(;′??Д??`)
請學習計算機原理
基本上,各種語言的層級是按這個順序起來的(有一部分被簡化了):
電路/半導體
=&>加法操作器/位操作器(通過半導體和通電的針腳改變結果)=&>單指令操作器(若干個操作器疊加,可執行加減乘除等)=&>CPU(有PC,寄存器,以及若干個操作器——機器語言被放到對應的操作器執行)=&>機器碼(二進位編碼,每一條代碼直接對應一條硬體指令)=&>彙編語言(二進位編碼直接轉寫成可讀格式)
=&>C(用比較結構化的方式表達彙編,並且支持一些高級數據結構比如struct,還有int/char等)=&>操作系統(將各種硬體調用封裝為API級別的調用,同時提供對進程和線程的支持;語言為C或C++)=&>原生代碼(使用操作系統API的程序;一般的C++在這個層級)=&>虛擬機/解釋器(Java和.Net等語言的底層支持;負責內存分配和類型控制等)=&>強類型高級語言(Java/.Net等在虛擬機上運行的語言;可以分配內存使用硬體等,但一切都是通過底層虛擬機調用的,所以獨立於操作系統本身)
=&>弱類型/動態類型/解釋型語言(JavaScript,Python等)=&>宏/腳本/Workflow可以讀csapp這本書
最初紙帶打孔,然後發現不易修改
好像還有用開關的,一排撥動開關排成排,一個代表一個二進位位。Altair 8800這是直接操作二進位的時代(好像是)也就是機器碼然後發現這個太反人類所以換成了彙編語言用上了鍵盤但用彙編還是很累
所以有了basic然後就是眾所周知的c了
在之後的語言都是為某些功能而造的了(全憑印象,有錯請指出,圖來自網路)推薦閱讀:
※硬碟基礎知識科普
※如何評價Windows 10計算機管理、設備管理器等系統軟體高DPI下依舊模糊的現象?
※筆記本顯卡和台式顯卡能混用嗎?
※建一個C++學習群吧