我一直在考虑像HipHop和Haxe这样的源变换器。从他们各自的网站,我看到这些工具将源语言转换为目标语言,然后使用目标语言的编译器生成最终的可执行文件。我觉得令人困惑的部分是这些工具如何处理源语言是内存管理语言(PHP,Haxe lang)和目标语言是非内存管理语言(C / C ++)的情况。我知道Mono在编译时添加了一个VM来处理这个问题。 HipHop和Haxe等工具有什么作用?我在哪里可以找到与此主题相关的编程语言/编译器文献中的文章?
感谢。
答案 0 :(得分:3)
Haxe需要垃圾收集,它不仅仅是一个变换器,它还添加了目标语言所需的一切。 C ++目标f.e.将Reflection,Garbage Collection和其他类型的兼容性类添加到C ++ Runtime。这允许您在所有平台上使用许多功能。
您可以查看运行时文件here。
最好试一试并查看生成的c ++代码。