華為十年磨一劍鑄就的編譯器是否屬于底層計算機技術?
只是吐槽一下,華為這段時間的宣傳太惡心了點。
程序編譯大概有兩種方式:
1,源碼 -> 編譯(匯編指令)->鏈接(機器碼),這是許多高級語言的標準編譯方式,如 c、c++,編譯最終輸出就是機器碼,性能最佳,但依賴于編譯時和運行時環境,如linux下編譯的程序不能在windows上運行,cpu架構不兼容的不能運行。
2,源碼 -> 中間代碼,這是一些跨平臺語言的編譯方式,如java、c#等,運行時需要相應平臺的運行時,如java虛擬機。優點是編譯時和運行時和平臺無關。缺點是運行時存在中間代碼到機器碼的翻譯,會損失一些性能。
例如用java開發程序,原本編譯結果是字節碼,華為搞的編譯器可以直接輸出機器碼。
但是從另一個角度考慮,如果程序對性能敏感,使用c或c++來開發是最直接的,而使用跨平臺語言開發優先考慮的是業務邏輯和各種框架和開源組件的支持,如果因為更換編譯器導致原來的部件不支持或者需要重復造輪子,那就有點得不償失了。