亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

第一個編譯器是如何編寫的?

第一個編譯器是如何編寫的?

ITMISS 2019-11-21 15:25:08
我聽說了雞肉,雞蛋和自舉。我有幾個問題。是什么寫了第一個將東西轉換成二進制指令的編譯器?匯編程序是否已編譯或轉換為二進制指令?...我很難相信他們用二進制編寫了編譯器。
查看完整描述

3 回答

?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

匯編指令(通常)是對操作碼的直接映射,操作碼是可以由處理器直接解釋的機器代碼的(多)字節值。通過從表中查找操作碼來直接編寫程序是很有可能的(例如,該表用于6039微處理器),該表列出了具有匹配匯編指令的程序,并手動確定事物的內存地址/偏移量像跳。


最初的程序正是以這種方式完成的-手寫操作碼。


但是,在大多數情況下,使用匯編程序來“匯編”匯編代碼會更簡單,該匯編代碼會自動執行這些操作碼查找,并且有助于計算命名跳轉標簽的地址/偏移量等。


最初的匯編程序是手工編寫的。然后,可以使用這些匯編器來匯編更復雜的匯編器,然后將其用于匯編為高級語言編寫的編譯器,依此類推。反復編寫工具以簡化下一組工具的創建的過程稱為引導(如David Rabinowitz在其回答中所述)。


查看完整回答
反對 回復 2019-11-21
?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

請閱讀有關編譯器引導和編譯器編寫歷史的信息


這個想法是直接用機器代碼編寫一個非常簡單的編譯器,使用它編寫更復雜的編譯器,使用第二個編譯器構建第三個編譯器,依此類推,直到您擁有功能齊全的編譯器為止。


查看完整回答
反對 回復 2019-11-21
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

雞蛋早于雞肉。大多數“雞和蛋”問題的答案都是相同的:進化。某些人也難以相信生物進化,但不相信不是一個論點(谷歌argumentum ad ignorantiam)。


為了直接回答您的問題:第一個編譯器是用匯編語言(由人類編寫的)的,一個稱為匯編程序的程序會將匯編語言轉換為二進制。這是比編譯簡單得多的過程,因為匯編語言只是機器語言的一種符號形式,它使用操作碼名稱而不是數字,用符號表示地址,等等。許多后續的編譯器也都是用匯編語言編寫的。但第一C編譯器是一個修飾的B類的編譯器,其寫于乙。第一個B編譯器是用TMG編寫的。TMG編譯器用來編譯B編譯器是用PDP-7匯編語言編寫的。


查看完整回答
反對 回復 2019-11-21
  • 3 回答
  • 0 關注
  • 1013 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號