C# 用戶似乎都希望 C# 可以和 C++ 一樣編譯為本地的機器碼。如果 C# 可以編譯為機器碼,將可以做到: 1. 效率提高,可以取代 C++ 。 2. 反編譯。 當然微軟在商業利益的考慮下是不允許這麼做的。 不過仍然有很多人在嘗試這個艱巨的任務。完成 C# 轉原生代碼,可以認為是 C# 轉 C++ 代碼。C# 本身就是學習 C++ 的,因此大部分語法都可以直接轉為 C++ 代碼。主要問題為 C# 的運行庫很難移植到 C++。 1. C++ 沒有 GC 庫。這個可以使用開源的 GC 庫代替。 2. C++ 沒有動態類型加載器。這個可以自動生成一些靜態方法來調用。 3. C++ 沒有 .net 其它工具庫。這個理論上可以先將微軟開源的 C# 開源庫編譯為 C++,然後直接調用。 因此理論上,C# 編譯為原生機器碼是完全可行的,不過這是一個很大的項目。 這是一個開源的 C# 轉 C++ 的項目。 http://makesharppwn.codeplex.com/ 經過測試,它現在可以轉換部分代碼,還屬於玩具級別。 我相信一個開發效率高又能在性能上和 C++ 媲美的語言還是很有需求的。與其開發 C# 的編譯器還可能有版權問題。還不如自己創造一個和 C# 接近的新語言。
以下是我要做的新語言的目標,如果有意合作的請點擊:
https://github.com/xuld/Tea/wiki/Tea-%E8%AF%AD%E8%A8%80%E5%BC%80%E5%8F%91%E5%AF%BB%E5%90%88%E4%BD%9C