中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

GCC為什么用C++來編譯

發布時間:2021-11-29 14:54:35 來源:億速云 閱讀:158 作者:iii 欄目:編程語言

本篇內容介紹了“GCC為什么用C++來編譯”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

為什么要用C++

在GNU的C++ Conversion文檔中,我們可以在Background中看到這樣的描述:

Whether we use C or C++, we need to try to ensure that interfaces are easy to  understand, that the code is reasonably modular, that the internal documentation  corresponds to the code, that it is possible for new developers to write new  passes and to fix bugs. Those are the important issues for us to consider. The  C++ features which are not present in C – features which are well documented in  many books and many web sites – are not an important issue.

這句話的意思可以理解為,今天GCC在用C語言的實現已經有點hold不住了,因為,開發人員覺得,不管我們用C或C++,都需要努力確保接口是容易理解的,這樣我們的代碼是想當理性地被模塊化的,這樣內部文檔和代碼一致,這樣可以更好地組織代碼,這樣有利于新人了fix-bug。而C++正好可以讓他們更好的完成這些東西。

GNU還給出了下面這些理由:

  • C++ 是一種標準化的,大眾的,流行的語言。

  • C++ 是C90的超集。

  • C++作為C的擴展和C在性能上一樣好。

  • C++ 在一些有意義的案例上支持更干凈的代碼。

  • C++ 讓你更容易去寫一個更干凈的接口。

  • C++ 永遠不會讓你的代碼變得更丑。

  • C++ 不是萬靈藥,他是C的一個改進。

數據結構的操作 ——  你寫的一定不會有STL好

GCC為什么用C++來編譯

結構套結構還是繼承?

GCC為什么用C++來編譯

函數指針還是多態?

GCC為什么用C++來編譯

垃圾回收 還是 智能指針?

GCC為什么用C++來編譯

Why not C++? 

  • C++慢嗎?某些特性會慢,但是有時C++更快,你可以只用你喜歡的C++特性。

  • C++復雜嗎?它只不過是另一種編程語言,他可以讓你對程序員維護更簡單。

  • FSF不喜歡C++!因為FSF(自由軟件基金會)這些人不寫代碼。

GCC為什么用C++來編譯

Bootstrapping

***,我想來介紹一下Bootstrapping。  所謂Bootstrapping,就是用自己這個語言寫編譯器來編譯自己,也就是說如果你要編譯gcc,你需要用一個c的編譯器來編譯之,這個就是bootstrapped  process,自舉過程。包括 BASIC, Algol, C, C++, Pascal, PL/I, Factor, Haskell, Modula-2, Oberon, OCaml,Common  Lisp, Scheme, Java, Python, Scala 等語言都這么干。

這樣干的好處主要是,自己可以測試自己,編譯器的改善和語言的改善相輔相成。

但是,這是一個“雞生蛋,還是蛋生雞”的問題,如果你需要用X語言來寫一個X語言編譯器的語言,你可以這樣干:

  • 用Y語言來實現X的語言解釋器或編譯器。 Niklaus Wirth 說 Pascal 的***個編譯器是由 Fortran 寫的。

  • 已存在用Y語言寫的X語言的編譯器或解釋器。Scheme 就是這么干的。

  • 已經有一個編譯器來編譯一個早期版本的X語言,然后就可以用早期版本的X語言來編譯新版本的X語言了。Java,Haskell, 和最初版的 Free  Pascal 就是這么干的。

  • X在某平臺上的編譯器已經存在,可以使用交叉編譯技術來編譯另一個平臺上X語言,C語言就是這么干的。

  • 用X語言寫一個編譯器,然后手動編譯之(不需要特別優化),(注:手動編譯估計就是手動翻譯成機器匯編代碼),然后再運行這個手動編譯的編譯器來編譯這個編譯器的源碼,并優化之。Donald  Knuth 在他的 WEB literate programming 系統里用到了這個方法。

“GCC為什么用C++來編譯”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

犍为县| 巫溪县| 漠河县| 眉山市| 卓资县| 泰兴市| 承德市| 邢台市| 高碑店市| 买车| 贵港市| 嵊泗县| 吉木萨尔县| 莲花县| 怀安县| 松滋市| 明星| 瑞安市| 西城区| 驻马店市| 静海县| 修武县| 渝北区| 平利县| 浠水县| 遵义市| 彩票| 应用必备| 盐山县| 西青区| 铜川市| 高陵县| 普兰县| 鹤山市| 徐汇区| 赤城县| 阿拉尔市| 平陆县| 永德县| 梅州市| 安徽省|