任何基于java语法和功能的低级编程语言?

时间:2012-05-16 14:44:54

标签: java c programming-languages

是否有基于java语法和功能的低级编程语言?

基本上应该没有内存管理,用户应该能够直接访问内存。

但是应该保持java的以下特性:
1)平台独立性(应根据机器架构直接编译为本机代码,以保持平台独立性,而不是编译为字节代码)
2)应该没有JVM来管理内存和资源 3)应具有例外投掷和捕捉机制 4)应具有内置的多线程和并发支持 5)利用Java-API。
6)应该像C一样有指针支持。

基本上我正在寻找C和Java的混合体,语法和编码约定如Java,面向对象(可能不是严格面向对象的),但应该和C一样快。

是否已经建立或正在开发此类语言?上面列出了一个或多个功能?

6 个答案:

答案 0 :(得分:7)

C ++听起来像是你最接近的赌注,但你不会得到你想要的所有东西。具体而言,您不会获得平台独立性,本机多线程和Java-API。但是,您可以使用boost库来帮助解决这些问题。

如果你的动机完全基于性能,你应该知道Java现在真的很快。你绝对相信无论你想做什么都会太慢吗?

答案 1 :(得分:2)

没有您描述的功能的语言。

类C语言:

  • 编译为目标代码
  • 需要手动内存管理
  • 不使用虚拟机
  • 对例外情况的支持有限
  • 有指针

他们没有:

  • 内置多线程(虽然参见pthreads)
  • 不要“利用Java API”
Go和D是类似C的,但支持多线程和并发,但有垃圾收集器。其他面向系统的语言,如ATS,Java和Haskell是相似的 - 你要么得到原始机器,要么得到一些不错的功能和垃圾收集。所有这些都已用于系统编程。

所以,要么你使用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”:

http://dlang.org/index.html

答案 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)

相关问题