剛剛開始學習編譯原理這門課,想到一個問題:
1.編譯器將高級語言撰寫的程式編譯、連接生成可執行檔案,該程式才能運行。但是編譯器本身也是一段程式,那么它是由誰編譯連接的呢?
2.我聽說過“移植”一說,可以用L1語言撰寫另一種高級L2的編譯程式,但是最開始的編譯器是不是必須用機器語言或匯編撰寫?
求詳解!謝謝~
uj5u.com熱心網友回復:
第一個編譯器肯定是機器語言寫的,但很不完善。大致應該是:機器語言撰寫出剛剛能用的匯編編譯器,之后由這個匯編語言編譯器編譯出C語言編譯器和更完善的匯編語言編譯器,然后由C語言編譯器混合匯編語言編譯出更高級的編譯器記得csdn里面有一個最早的編譯器是什么樣的文章,說名了當時編譯器的不完善和操作的費勁
uj5u.com熱心網友回復:
當然,最開始的所謂的匯編語言應該也是個籠統的說法,可能是由一個個更簡單的輔助機器碼生成工具一步步最終完善而成的uj5u.com熱心網友回復:
電報員收發的電報碼和機器碼是差不多的東西,也就是說記憶0和1組成的機器碼并不是很難,但是現在的程式員即使想返古也做不到了,因為機器碼要由專門的硬體設備才能寫入,這種設備現在即使是處理器廠商也很難說會用上uj5u.com熱心網友回復:
這個問題有點意思。工具跟產品互相促進發展的。工具本身就是產品的一部分。跟車床一樣,車床自身的零部件是由車床制造的。但歷史上第一臺車床的零部件應該是純手工打造的。uj5u.com熱心網友回復:
每一種編譯器不一定都完全支援編程規範的項目...且編譯器也有編譯上的瑕疵所造成的 Bug...所以在編程上有時得技巧性的迴避開潛在的問題...許多程式員並不了解這樣的事實......這個世界上...有著生命的存在便是一種神奇...但...這個世界上...畢竟並不完美...但能追求卓越趨於完美......
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/132749.html
標籤:基礎類
上一篇:Embarcadero C++ Builder XE中怎樣使用ActiveX控制元件?
下一篇:新手求小游戲源代碼,c++
