1

我一直在想源代碼變換器,如HipHopHaxe。從他們各自的網站,我看到這些工具將源語言轉換爲目標語言,然後使用目標語言的編譯器生成最終的可執行文件。我感到困惑的是,這些工具如何處理源語言是否是內存管理的語言(PHP,Haxe lang),目標語言是否是非內存管理語言(C/C++)。我知道Mono在編譯時添加了一個VM來處理這個問題。像HipHop和Haxe這樣的工具有什麼作用?我在哪裏可以找到與本主題相關的編程語言/編譯器文獻中的文章?源變壓器如何工作?

謝謝。

回答

3

Haxe需要垃圾收集,它不僅僅是一個變換器,它還增加了目標語言所需的一切。 C++目標f.e.將反射,垃圾收集和其他類型的兼容性類添加到C++運行時。這使您可以在所有平臺上使用許多功能。

你可以看看運行時文件here

最好試試看看生成的C++代碼。