開源的系統級編程利器:D語言

fmms 13年前發布 | 16K 次閱讀 編程語言

Digital Mars 公司的D語言首頁上,放置著這樣一段話“計算機編程語言門類眾多,其來源大致可分為兩種途徑。一類新語言來自于極具創新精神的學術界;而一類則源于關注研發結合和互聯網的新技術公司。目前正是在實現編譯器的實踐經驗中誕生一門新語言了。”在九月份的 TIOBE 語言流行度排行榜中,正是這門支持內嵌匯編的D語言,以其系統級編程的特性而被越來越多的開發者選用而重新入圍了排行榜前二十位。

D 語言是由 Digital Mars 公司開發的面向對象、指令式、多范型的系統級編程語言。誕生于1999年的D語言,在其設計開發十年后的2009年開放了D編譯器 DMD 的源代碼,包括D 1.0和D 2.0的編譯器前端和后端源代碼,分為 Windows,Mac 和 Linux 三個版本。編譯器前端以 GUN GPL 和 Artistic 開源協議授權。

可以說,D語言是由數十年來實現多種語言編譯器的經驗積累而形成,源自C++,并為改進和超越 C++ 而生。D語言對 C++ 的部分特性進行了重新設計,其模板在 C++ 的基礎上做了擴充,并在語法設計上借鑒了 Java、C#等多種流行語言的優點。D語言在提供 C++ 這樣強大能力的同時,又具備與動態語言相媲美的開發效率。

C++應用廣泛的一個重要原因是 C++ 進行操作系統底層編程的能力。D語言同樣也提供了底層編程的特性,并加入了完善的內嵌匯編支持。內嵌匯編的特性讓系統級開發者能夠在標準D語言代碼中嵌入目標平臺的匯編指令,來完成高級語言難以實現的工作。這些處理任務包括底層驅動程序開發、獲取任務堆棧信息、獲取 SP 或 RA 等寄存器的狀態、視頻解碼等各個層面。除此之外,在某些特定的數值運算中,如帶進位加法運算,開發者常嵌入匯編指令來增強程序代碼執行的效率。

D 語言的系統級編程特性,成為D語言區別于 Java、C#等其他高級語言的主要特性。如 Java 語言在語法級別上不提供內嵌匯編的支持,如需在代碼中嵌入匯編指令,只能借助于 JNI 的 Java 本地調用,通過引用C/C++代碼來間接嵌入匯編指令。而D語言則可以直接與只接受匯編指令的處理器進行交互,直接執行匯編指令集來保證操作的精確性和原子性。

盡管現代的高級語言編譯器已在編譯優化上做了足夠大的功夫,但高級語言編譯器為了保證通用性,往往只編譯生成通用指令集,沒有針對特定處理器的專用指令集進行優化,且無法生成新型處理器增加的高性能操作指令集。無疑,D語言將是內嵌匯編的最佳語言,它帶來的便利讓開發者撰寫最高性能代碼來充分發揮硬件潛力變得觸手可及。

本文曾發表于《程序員》雜志-2011年10期“程序天下事”欄目。
    來自: http://www.gaoang.com/archives/230

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!