2

Javaの構文と機能に基づいて利用できる低水準プログラミング言語はありますか?

基本的に、メモリ管理はなく、ユーザーはメモリに直接アクセスできる必要があります。

ただし、Javaの次の機能を維持する必要があります
。1)プラットフォームの独立性(バイトコードにコンパイルするのではなく、プラットフォームの独立性を維持するために、マシンアーキテクチャに従ってネイティブコードに直接コンパイルする必要があります)
2)メモリとリソースを管理するJVMはありません。
3)例外のスローとキャッチのメカニズムが必要です。
4)マルチスレッドと同時実行のサポートが組み込まれている必要があります。
5)Java-APIを利用します。
6)Cのようなポインタサポートが必要です。

基本的に、私はCとJavaの混合物を探しています。構文と、Javaのようなコーディング規則は、オブジェクト指向(厳密にはオブジェクト指向ではない場合があります)ですが、Cと同じくらい高速である必要があります。

すでに構築または開発されているそのような言語はありますか?上記の1つ以上の機能を使用しますか?

4

6 に答える 6

7

C ++は最も近い賭けのように聞こえますが、必要なものすべてを手に入れることはできません。具体的には、プラットフォームに依存しない、ネイティブマルチスレッド、およびJava-APIを取得できません。ただし、Boostライブラリを使用してこれらのことを支援することができます。

モチベーションが純粋にパフォーマンスに基づいている場合は、Javaが今日では非常に高速であることを知っておく必要があります。あなたがやろうとしていることには遅すぎると絶対に確信していますか?

于 2012-05-16T14:46:39.573 に答える
2

あなたが説明する機能を備えた言語はありません。

Cのような言語:

  • オブジェクトコードにコンパイルされます
  • 手動のメモリ管理が必要
  • 仮想マシンを使用しないでください
  • 例外のサポートが制限されています
  • ポインタを持っている

彼らは持っていない:

  • 組み込みのマルチスレッド(ただし、pthreadを参照)
  • 「JavaAPIを利用」しないでください

GoとDはCに似ていますが、ガベージコレクターを使用しますが、マルチスレッドと同時実行性をサポートしています。ATS、Java、Haskellなどの他のシステム指向言語も同様です。生のマシンを入手するか、いくつかの優れた機能とガベージコレクションを入手します。すべてシステムプログラミングに使用されています。

したがって、CまたはC ++を使用するか、それに伴う苦痛を伴うか、メモリ管理を受け入れます。

于 2012-05-16T14:51:30.460 に答える
1

Valaプログラミング言語はおそらくあなたが言っていることに近いでしょう。

プラットフォームに依存しません(低レベルのシステムプログラミング言語では非常に困難です)。半自動のメモリ管理がありますが、ガベージコレクションはありません。これは、プレーンCにコンパイルされ、オブジェクト指向機能にGNOMEGObjectシステムを使用するオブジェクト指向プログラミング言語です。

Javaとは何の関係もないため、標準のJavaAPIは提供されません。

于 2012-05-16T14:49:37.173 に答える
1

関連する言語はObjectiveCだけだと思います。これは、CとSmallTalkのアイデアおよびインスピレーションを得たJavaを組み合わせたものだからです。

プラットフォームとは独立してCとして使用できますが、最近のエコシステムのほとんどはAppleプラットフォーム用ですが、それは言語の特性ではありません。

Java APIは使用できませんが、JVM以外の言語は使用できません。

于 2013-10-26T00:08:57.170 に答える
0

Javaの構文と機能に基づいて利用できる低水準プログラミング言語はありますか?

私はこれにJavaを使用していました。;)

基本的にメモリ管理はありません

ごみを出すことを強制するものは何もありません。すべて(またはほとんどすべて)を自分でリサイクルできます。エデンサイズが大きい場合は、GCを1日または1週間使用しないでください。(または、アプリケーションを再起動して使用しないでください)

ユーザーはメモリに直接アクセスできる必要があります。

このために、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とJava BTWなどの高級言語にも当てはまります)

于 2012-05-16T17:25:42.793 に答える
0

別の選択肢は「D」です。

http://dlang.org/index.html

于 2012-05-16T14:59:06.320 に答える