java - 是否有一种类似 C 的迷你语法/语言可以同时翻译为 native C/C++ 和 Java?

标签 java c scala code-translation

我想允许我的应用程序“脚本化”。脚本语言应该是类型化的并且类似于 C。它应该具有 C 和 Java 中常见的控制语句、基本类型、数组和运算符。脚本应该能够定义函数,并调用预定义的 API 函数,例如我选择提供的 sin() ...。如果脚本通过语法检查,则应用程序会将其转换为 Java,然后动态编译,但也应该可以将其转换为 C/C++,并进行 native 编译。语法检查和 Java/C 转换应在 JVM 中运行。我不需要它的解释器,因为它总是会被翻译为 Java/C。只有语法检查器和翻译器。

有这样的语言吗?如果没有,考虑到我不了解编译器/解释器编程,在 JVM 中执行此操作的最简单方法是什么? (如果是的话,我就不需要问这个问题了……)

如果有“Scala”解决方案,那也很好,因为我实际上正在将 Java 代码移至 Scala。

[编辑] 我想要 C/C++ 翻译的唯一原因是性能。我期望对数组进行大量“位操作”,而 Java 并不真正适合这种情况,特别是由于每个数组索引操作都需要进行范围检查。我还期望有很多对象,这会间接消耗 GC 周期。

[EDIT#2] 好的,我知道我必须说得具体一点。我正在考虑编写一个 Minecraft 克隆版,作为练习,让我的注意力从“商业计算”上移开。我说的是引擎,不是游戏。我对服务器端比 3D 更感兴趣,因为我是一个“服务器人”。我们正在讨论使用飞行量模式来表示数百万个对象( block /体素),并每秒多次访问它们。这不是 JVM 的用途。请参阅这篇文章,了解我的意思的示例:Why we chose CPP over Java

我不想用 C/C++ 编写所有内容,但我怀疑这是获得良好性能的唯一方法。我的意思的另一个例子是 VoltDB ,这可以说是目前最快的 SQL 数据库。他们用 Java 和 C/C++ 编写,使用 Java 进行 I/O 和网络,使用 C 进行繁重的内存操作和位摸索。用户编写的存储过程是用Java编写的,但我认为没有必要。我认为应该可以在客户端和测试版本中编译为 Java,并在服务器上编译为 C,在服务器上可以配置完整的开发环境。

最佳答案

也许Haxe会满足您的需求。它是一种中高级语言,可以编译成C++源代码。 Java 目标位于 development .

关于java - 是否有一种类似 C 的迷你语法/语言可以同时翻译为 native C/C++ 和 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6609565/

相关文章:

Java - 按类型/接口(interface)获取集合的 'View'

java - Android:java.lang.IllegalMonitorStateException:对象在 wait() 之前未被线程锁定

c - 如何动态分配包含多个数组的结构体?

eclipse - 编辑器不包含主类型

java - LWJGL - 按照教程,但我遇到了有关 native 代码的错误

java - 为什么我无法使用realpath访问JSP文件中的图像?

c - 打印结构对象时出现段错误

c - dentry_path_raw 不工作 C

java - Scala 宏找不到 java.util.List、java.lang.Object

scala - 如何从任务中打印累加器变量(似乎为 "work"而没有调用 value 方法)?