[讨论] GCC、Clang使用C++编写?

楼主: Matz (妹妹C吸)   2020-04-18 00:59:21
是这样的。
GNU GCC 原本使用C语言编写,随着Clang、LLVM的崛起,
改由C++编写,Ian Lance Taylor也表示C++效能不会输给C
而且能设计出更好,更容易维护的程式。
但本鲁很不解,C++复杂的程度远远超过C,为何还能设计出效能
不亚于使用C编写的编译器???
有大大能够解或吗????
感谢各位大神了。
作者: lunasdejavu (我的头上长香菇了)   2020-04-18 01:02:00
有哪里测试数据说效能不输阿
作者: SMMIT (Negan)   2020-04-18 02:01:00
查到一篇 sort 比 qsort 快https://www.geeksforgeeks.org/c-qsort-vs-c-sort/这一篇有 Ian Lance Taylor 的简报连结https://lwn.net/Articles/542457/整理一下第一个连结,以 sort, qsort 为例子。C++ STL sort 用 template 实践可以在 compile time 生出程式码,让编译器最佳化。C 的 qsort 因为 comparator 需要传入 function pointer ,所以无法在 compile time 最佳化。从第二个连结看来 Ian 应该是指需要担心效能的地方一样用 C写,其余用 C++ 好维护。
楼主: Matz (妹妹C吸)   2020-04-18 11:34:00
感谢大大帮忙
作者: prokofieff (回不去了吧...)   2020-04-18 13:21:00
简单来说 C++把尽量能先算完的都丢到compile time先算
作者: superpandal   2020-04-18 17:46:00
..............................
作者: plsmaop (plsmaop)   2020-04-18 20:19:00
gcc llvm 都有做 const folding const propagation,compile time 能做的也做了很多我倒觉得是在 compiler 越来越厉害的情况下用 c++ 能写出来的程式效能差距不大
作者: a1u1usul3 (Q-Max)   2020-04-18 20:47:00
编译时间clang不一定比较快,问题是gcc是GPL license
作者: Bencrie   2020-04-18 22:45:00
gcc 是 gpl 这对一般不是做 compiler 的有什么问题吗你不会以为 gcc build 出来的 binary 会感染 GPL 吧 XD
作者: a1u1usul3 (Q-Max)   2020-04-19 02:58:00
会影响developer的人数
作者: flypaper (一直飞)   2020-04-19 18:10:00
gcc 通常编比较快吧

Links booklink

Contact Us: admin [ a t ] ucptt.com