量子計算機的出現能否加快cpp的編譯時間?
12-31
眾所周知,cpp的runtime可是非常快的,基本上是地球最快;
但cpp的compile time簡直了。那麼,為了讓更多人用上cpp,我們是不是應該思考如何加快cpp的compile time?隨著量子計算機的誕生和應用,是否存在一種量子演算法解決這一難題呢?
感覺量子計算和CPP同時被黑了...
量子計算可以幫助編譯器在遇到 undefined behavior 時選擇最帥的一種 crash 方式。
說了你可能不信,量子計算機是C++程序員發明的。他們非常敬業,充分利用編譯時的空閑時間研發量子計算機。
答案由於太暴力被續了
---
我覺得吧,要想提高 cpp 的編譯效率,不但需要量子計算機的奮鬥,當然 gcc/llvm 這些編譯器也是需要做一點微小的貢獻才可以。不可能的!已經被智子鎖死了
Deep Learning能否模仿勃勃提問?
其實題主說的cpp是 C Pre-processor (逃
大數據能否猜出導致 template 出錯的真實原因?
感覺量子計算機做好了只能當輔助硬體 比如存儲 顯卡 這程序實在沒法寫
實際上剛好相反...
在量子計算機的注視下,普通計算機在編譯時倍感壓力,cpp編譯時間反而變長了...量子計算機在計算並行任務時非常快,在計算串列任務時沒什麼進步~
我想要是有編譯器支持量子計算機的話,編譯開好多好多線程也能提升不少速度吧
量子計算機是降低了計算極其複雜東西時所用的時間,在很細微的計算上意義不大。比如說,0.1秒和0.05秒的差距你能感覺出來嗎?
量子計算機能不能加快編譯速度,恐怕是個偽命題。不同的硬體計算性能,不同的編譯器,不同的編譯配置,在編譯速度上的表現差異極大,量子計算機也會面臨這樣的問題,不能一概論之。
編譯時間對於開發人員只是個細枝末節,甚至在很多情況下運行時間也沒那麼重要,制約cpp應用的問題在於開發工作量的問題。在阿里搶月餅的同學要是用cpp就不會被開除了,因為代碼沒寫好月餅早沒了。
並不是所有的程序都需要cpp來做。論速度,彙編和C都不輸CPP,甚至在一些運算上fortran還會更快。演算法實驗中,idl、matlab絕對更受歡迎(一般來說。matlab矩陣過大是非常egg-ache,這時還得用cpp)。項目開發中,c#和java可以讓代碼量大幅下降,短的代碼意味著更少的出錯可能。腳本類語言大行其道自是有其高明之處,居家旅行殺人越貨怎麼不靠python。忘記了,還有易語言,哈哈哈哈。故曰,等待編譯去噓噓,成功何必CPP。不能
現在的量子計算機不是通用計算機吧,只能解決特定任務的。或者說需要為特定任務設計硬體的。所以完全兩碼事啊
言辭比較激烈,匿了。
--------分割線--------
請問這個問題有什麼意義?知乎又變成百度知道了?首先,說cpp的runtime是"地球最快"證明題主完全不理解編譯原理和計算機運行程序的原理。runtime的速度僅僅取決於一個程序是以什麼方式運行以及編譯器的優化程度。比如python是解釋執行的,那它的運行效率肯定沒有編譯執行的語言效率高。而我完全可以寫一個python的編譯器(雖然py是解釋語言,但不代表不能寫編譯器),編譯出來的runtime和cpp一樣快,只是跨平台性扣個分而已。所謂編譯(狹義),就是指把高級語言翻譯成彙編語言然後彙編成機器語言,和那個高級語言是哪一個完全沒有關係。其次,cpp的瓶頸根本不是編譯速度。編譯速度根本不是其用的人少的原因。cpp的瓶頸應該是它的自由性和複雜性。cpp過於自由,以至於編譯器檢查很寬鬆,編譯出來的東西會出現其他語言所不會出的一些錯誤(舉一個最常見的例子,比如內存泄漏),很多人就望而卻步了。然後cpp的標準過於複雜以至於無人能夠"完全掌握",新特性讓人眼花繚亂。不過事實上某些新特性只是一些語法糖,實際根本用不到。(恕我直言,面向對象其實就是一種語法糖,不過它能使編程方便許多。)而且,編譯速度也不是語言決定的,是由編譯器決定的。比如g++的編譯速度遠沒有clang和cl.exe快。題主吐槽的應該主要是g++編譯速度吧,而事實上,編譯的大部分時間都花在了模板展開上。再次,我們為什麼要讓更多人用上cpp呢?cpp是一個很底層的語言(僅次於C和彙編),不適合開發很多類型的程序。使用cpp的人也就看中它的庫多、速度快、能直接操作硬體罷了。用它手碼大項目很累很累的。最後,為什麼題主會想到用量子演算法去優化cpp編譯速度?cpp的編譯過程包括預編譯、編譯、彙編、連接這些過程。我並不知道其中哪一個過程需要量子演算法的介入。即使量子演算法可以節省時間,花那麼大成本去操作一個量子計算機編譯cpp程序,值得嗎?而且,如果量子計算機普及了,程序員們應該都去研究量子演算法了,沒人會再去弄cpp了吧。量子計算機能否把輪子哥的點贊腳本從篩選關鍵詞變成語義檢測?
這要看你能不能把編譯問題歸約到某個NP-complete問題嘍
推薦閱讀:
※為什麼給Mac編寫的軟體不能在Windows上運行?
※Haskell 執行速度怎樣?
※通用中間語言 (CIL) 怎麼學習?