的去跟2009年PDF有評論,說明爲什麼他們想出了Go語言:「系統語言」是什麼意思?
No new major systems language in a decade.
什麼是系統語言的含義是什麼?
- 是否應該通過生成本地二進制文件在目標系統上運行的語言?
- 它是一種可以自行構建操作系統的語言嗎?
我可以看到C#/ Java不是系統語言,而是C/C++。
的去跟2009年PDF有評論,說明爲什麼他們想出了Go語言:「系統語言」是什麼意思?
No new major systems language in a decade.
什麼是系統語言的含義是什麼?
我可以看到C#/ Java不是系統語言,而是C/C++。
這是一個粗略的,非正式的區別,但其思想是有針對於開發收縮包裝業務應用程序的程序員的「應用程序編程語言」,以及針對編程其他程序員工具的程序員的「系統程序設計語言」編譯器等)以及低級別軟件(如操作系統內核,設備驅動程序等)。
簡而言之,大多數(最近發明的,無論如何)語言都是爲了更容易開發面向用戶的軟件來處理與一些非計算領域---金融,工程等。系統編程語言是那些,如C,FORTH,Go等,其打算或至少適合於計算領域中的編程。
這些經常(但並非總是)的特性編譯爲本機代碼,寬鬆類型系統允許通過指針或等效構造進行廣泛的「雙向」和非託管內存訪問。
Look here?對不起,如果這是一個扔掉的鏈接,但真的這應該是你需要的一切。除非你要求更具體的東西。
C#絕對不是一個系統語言的原因是它對.NET的依賴。
如果[.NET的一個「系統編程」子集是內核的一部分(只是另一個引導步驟)? ;-)另外,在技術上,C#不需要.NET(C#只是一種語言規範:VS/.NET是一種實現 - 包括有用的庫 - 而Mono是一種競爭的編譯器/運行時)。 – 2010-11-05 19:44:59
是的兩個好點 – 2010-11-05 19:53:22
我當然不明白爲什麼非託管內存應該是這裏的一個功能。你可以管理內存和指針。 – 2010-11-09 13:50:38
@ Matthieu M .:對,但這裏的關鍵特性是非託管內存訪問,而不是指針。認爲設備驅動程序,操作系統內核等 - 在某些時候,您需要讀寫任意內存位置的能力。此外,任何允許使用指針的內存管理語言(即代表內存位置的算術類型)都會執行一些主要的運行時檢查,這與大多數人在考慮「指針」時不一樣。 – 2010-11-09 14:04:05