我正在使用CoffeeScript来简化 JavaScript 开发。它是一种语法简洁的语言,可以编译成 JavaScript。
那么,有哪些既定的编程语言可以编译成 C/C++ 源代码,以简化语法和/或增强功能?
我正在使用CoffeeScript来简化 JavaScript 开发。它是一种语法简洁的语言,可以编译成 JavaScript。
那么,有哪些既定的编程语言可以编译成 C/C++ 源代码,以简化语法和/或增强功能?
Haxe语言可以输出到 C++、C#、Java、JavaScript、Python(实验性)、PHP、Flash 和 NekoVM。
OOC很新但是很不错。
GHC(Glasgow Haskell 编译器)曾经有一个选项 ( -fvia-c
) 可以编译为 C。
我相信从 v7 开始,LLVM 用于生成本机代码,而不是通过外部 C 编译器。
有HipHop,它将 PHP 程序转换为 C++。
引用Qt文档:
元对象编译器 moc 是处理 Qt 的 C++ 扩展的程序。moc 工具读取 C++ 头文件。如果它找到一个或多个包含 Q_OBJECT 宏的类声明,它会生成一个 C++ 源文件,其中包含这些类的元对象代码。除此之外,信号和槽机制、运行时类型信息和动态属性系统都需要元对象代码。moc 生成的 C++ 源文件必须与类的实现进行编译和链接。
所以它是一种 C++ 变成 C++,我不确定它是否适合你正在寻找的东西。
Embeddable Common Lisp (ECL)可以将 Common Lisp 编译为 C。
IBM Informix 4GL 编程语言经过多步转换为 C 代码,然后编译并与它自己的运行时库、ESQL/C(C 中的嵌入式 SQL)运行时库和系统的 C 库链接。
program.4gl
- 原始源代码program.4ec
- 带有嵌入式 ESQL/C 和扩展输入操作的 C 代码program.ec
- 带有嵌入式 ESQL/C 的 C 代码program.c
- 纯C代码program.o
- 目标代码program
- 可执行.4ec
阶段是一种历史事故;最初,ESQL/C 编译器处理扩展输入操作和 ESQL/C,但是当从 ESQL/C 编译器中删除扩展操作时(当 ESQL/C 库和编译器被显着重写时),扩展输入操作是通过从原始 ESQL/C 编译器中提取处理该代码的代码来处理的。
相当多的人编写了代码生成器,它们从另一种语言编写 I4GL 源代码,或者在将密切相关的源代码提交给 I4GL 编译器之前将其预处理为 I4GL。
我想你可以为 LLVM 编写一个 C 后端,然后你可以将几乎任何东西翻译成 C,但更深层次的问题是“为什么?” 今天没有任何工具可以做到这一点的原因是,如果你要编译成 C,为什么不一直以某种中间机器代码语言为目标呢?(例如,LLVM 或 JVM)
现在在过去,编译成 C 的想法更有说服力,因为缺乏像样的 vm 语言,但今天没有太多好的理由去做。也就是说,您仍然可以找到大量使用某些解释语言并尝试将它们编译为 C/C++ 的项目。例如,这是一个 python 到 C++ 的编译器:
Oracle 的 PRO*C/C++ 是一种嵌入式 SQL 语言。它允许在 C/C++ 中包含 SQL 语句,该语句由预编译器处理,该预编译器将嵌入式 SQL 语句替换为对所需 C/C++ SQL 库的函数调用。预编译器的输出是标准 C/C++,然后可以编译为可执行文件。
http://en.wikipedia.org/wiki/Pro*C
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14407/toc.htm
Matlab的一个子集(Embedded Matlab)可以编译成C。你需要嵌入式编码器工具箱。
我听说clang可以将C++编译成C。不过,我怀疑这会“简化”任何事情。
大多数语言都可以用来生成 C 代码,但这真的取决于你想要做什么。您真的希望能够阅读代码吗?您只是想创建 Windows 应用程序吗?
如果您正在寻找一种易于学习的通用语言,Python 始终是一个不错的选择,它可以完成 C/C++ 可以做的所有事情。