是否有基于java语法和功能的低级编程语言?
基本上应该没有内存管理,用户应该能够直接访问内存。
但是应该保持java的以下特性:
1)平台独立性(应根据机器架构直接编译为本机代码,以保持平台独立性,而不是编译为字节代码)
2)应该没有JVM来管理内存和资源
3)应具有例外投掷和捕捉机制
4)应具有内置的多线程和并发支持
5)利用Java-API。
6)应该像C一样有指针支持。
基本上我正在寻找C和Java的混合体,语法和编码约定如Java,面向对象(可能不是严格面向对象的),但应该和C一样快。
是否已经建立或正在开发此类语言?上面列出了一个或多个功能?
答案 0 :(得分:7)
C ++听起来像是你最接近的赌注,但你不会得到你想要的所有东西。具体而言,您不会获得平台独立性,本机多线程和Java-API。但是,您可以使用boost库来帮助解决这些问题。
如果你的动机完全基于性能,你应该知道Java现在真的很快。你绝对相信无论你想做什么都会太慢吗?
答案 1 :(得分:2)
没有您描述的功能的语言。
类C语言:
他们没有:
所以,要么你使用C或C ++,要么带来痛苦,要么接受内存管理。
答案 2 :(得分:1)
Vala编程语言可能接近您的意思。
它不是独立于平台的(对于任何低级系统编程语言来说都是非常困难的)。它确实有半自动内存管理,但不是通过垃圾收集。它是一种面向对象的编程语言,它编译为plain C,并使用GNOME GObject系统实现其面向对象的特性。
它与Java没有任何关系,因此它不为您提供标准的Java API。
答案 3 :(得分:1)
我认为唯一相关的语言是Objective C,因为它将C与来自SmallTalk和Java的思想结合起来。
虽然您可以将它作为C独立于平台使用,但现在大多数生态系统都适用于Apple平台 - 但这不是该语言的属性。
它不能使用Java API,但是没有非JVM语言可以。
答案 4 :(得分:0)
另一种选择是“D”:
答案 5 :(得分:0)
是否有基于java语法和功能的低级编程语言?
我会为此而使用Java。 ;)
基本上应该没有内存管理
没有任何东西迫使你创造垃圾,你可以自己回收所有东西(或几乎所有东西)并且具有大的伊甸园大小,避免使用GC一天甚至一周。 (或者重新启动应用程序,永远不要使用它)
用户应该能够直接访问内存。
为此,我使用ByteBuffers(支持)或Unsafe(不支持)
但是应该保持java的以下功能: 1)平台独立性(应根据机器架构直接编译为本机代码,以维护平台独立性,而不是编译为字节代码)
JVM就是这样做的。
2)应该没有JVM来管理内存和资源。
您不必直接使用JVM。
3)应该有异常投掷和捕获机制。
JVM就是这样做的。
4)应具有内置的多线程和并发支持。
JVM就是这样做的。
5)利用Java-API。
JVM就是这样做的。
6)应该有像C这样的指针支持。
您可以使用不安全的JVM来执行此操作。但是,您可能会发现直接的ByteBuffers将会安全地执行您想要的操作。
但应该和C一样快。
在没有任何时间和资源的情况下,Java的速度不如C快。但是,如果您的时间和资源有限,Java可以帮助您在比较低级语言更短的时间内获得足够快,可工作和可维护的程序。 (相同的论点适用于更高级别的语言,例如Scala vs Java BTW)