質問

こちらの りがありますので負荷の言語のほからJavaとのJVM.いてはちょっとした混乱の全体コンセプトその他の言語のJVM.い:

何かを他の言語のJVM?

何を必要とする高レベル)を記述言語コンパイラのJVM?

どのような書き/コンパイル/実行コードの言語(Java)のJVM?


編集: があった3フォローいたコメントした答えを受け入れの答えです。その転載はこちら視認性:

どのようなアプリの記述と、JPythonは、変化に常に対応することが、Javaアプリ?

また、できるJPythonは利用申請のJDK機能/ブ??

かった場合にJaskellコードは、この機能言語なので不適合と、JDK?

役に立ちましたか?

解決

所ご関する質問項目に対する回答を別途:

何かを他の言語のJVM?

が要因です。(1)こういった言語以外のJavaのJVM、(2)なぜその他の言語のJVMではなく、異なるランタイム?

  1. その他の言語で満足できるその他のニーズに対応するたとえば、Javaを内蔵しないサービスをご利用いただけ 閉鎖, 特長こそがしばしば非常に便利です。
  2. 言語ることは、JVMはbytecode対応のその他の言語ることは、JVMることを意味コードを記述言語と交流できる図書を他の言語です。

何を必要とする高レベル)を記述言語コンパイラのJVM?

のJVMを読み込みbytecode(.クラス)ファイルの取得を指示が必要です。このように他の言語へのJVMのニーズにきめbytecodeに付着し 日仕様.このプロセスと類似の作成のためネイティブコードを除き、その代わりに作成指示を理解することを目指してCPUのコードが作成される指示と解釈されるのJVM.

どのような書き/コンパイル/実行コードの言語(Java)のJVM?

も同じように書き/コンパイル/実行コードをJava.お足が濡れています。を見る Scala, は、完璧には、JVM.

への回答をフォローの質問:

どのようなアプリの記述と、JPythonは、変化に常に対応することが、Javaアプリ?

この実装の選択をつなぐ言語のギャップ。おば Jythonプロジェクト は簡単なこ(こちらをご参照):

from java.net import URL
u = URL('http://jython.org')

また、できるJPythonは利用申請のJDK機能物?

あり、上記を参照してください。

かった場合にJaskellコードは、この機能言語なので不適合と、JDK?

No.Scala(上記リンク)の実施の機能互換性を維持しながらもJava.例えば:

object Timer {
  def oncePerSecond(callback: () => unit) {
    while (true) { callback(); Thread sleep 1000 }
  }
  def timeFlies() {
    println("time flies like an arrow...")
  }
  def main(args: Array[String]) {
    oncePerSecond(timeFlies)
  }
}

他のヒント

必要なものその他の言語のJVMと同様の理由により必要な複数のプログラミング言語では一般異なる言語と異なる問題を解決...静的入力に対す動的入力、厳格な対lazy...コ不可欠であり、オブジェクト指向...など。

一般に、書く"をコンパイラー"を他の言語のJVMはます。純CLR)が本質的に問題の作成と言語のjavaバイトコードの場合。純、IL)の代わりに組み立て-機械言語です。

とはいえ、多くの言語とについて書かれているわけJVMなめく解釈されるスクリプト言語に...

この頭に考えたいデザインの新しい言語び出すためのものではありませんのでバスの運行管理実行時、JITびます。しておいてください:

(a)を書きまでは払える気があります。管理ランタイム(VM)と取り組むあらゆる技術的に難しい問題の交渉が多くのバグ、性能、不正のスレッド海外アウトソーシング、サービスの携帯性努力

または

(b)コンパイルの言語のbytecodeできるのJava VMには既にかなり成熟し、サポートされて多くのプラットフォーム(ことがあるのでは複数のベンダー impementation).

このJavaVM bytecodeませんが、"Java言語として不当に制限する種類の言語の実践できる、人気の目標環境のための言語と走らせたいという、ェースを使用してアクセスします

Javaはかなり詳細なプログラミング言語ることは古くて新しい空想の言語の枠組みに出てくるの過去5年になります。すべてをサポートしている仮説とした言語と保全の下位互換性があまりに追加言語のサポートします。

もう一つの利点ができ行ホームページの枠組みで記述Ruby ala JRuby(通称レール)、Grails(GroovyにRailys的)など。に実績のあるスープが既に生産で多くの企業よりも有用なくて、シコシコとした試験Ruby開催。

をコンパイルを他の言語はどうするか変換するJavaバイトコードです。

い"と答えるので Java吸"そ、それでいいのかもしれ も明らかな … ;-)

の利点を有するその他の言語のJVMでは、まったく同じとしての利点を他の言語用コンピュータ一般がすべてのチューリング-完全な言語で技術的に達成で同じ作業は、一部の言語でも作りながら、他の言語でその他の業務ります。以降、JVMにある人の力におけるベストセラーである、ほぼすべてのコンピュータでは、多くのコンピュータとなっていましたがきの"write once,run anywhere"の利益が不要なの一つであるJava.

作成言語コンパイラのJVMいなだけじゃない傷を付けても違うかを書のために実機です。の差でありますのでコンパイルのJVMのbytecodeの代わりに機械の実行可能コードがほとんどは軽微差となる。

コンピュータのための言語以外のJavaのJVMんなやり方と違いはありませんから書面でのJavaを除きることはもちろん、使用する異なる言語です。まコンパイル用にコンパイラの誰かが書き込んでもない異なるからCコンパイラ、基本的には、ほとんどないの異なる全くからJavaコンパイラ)だけで終わって走ることができるようにすめのJavaコードから一度でbytecode、JVMできない言語である。

異なる言語に合わせた異なる事ができます。がある問題領域のJava言語の完全一部や現代の言語である。また、ユーザーに慣れてRuby、Python、などのJavaバイトコードを活用し、JDKの授業は、JITコンパイラがあります。

答えだけで第二の質問:

のJVMで抽象的な機械および実行モデルです。なに的を絞ったでコンパイラと同様にその他の機械を実行モデルのコンパイラが対象で実施したハードウェア(x86、細胞など)またはソフトウェア(オウム,.して順調なものではなかった。のJVMはとてもシンプルなものになく、実際にかなりやすい対象のためのコンパイラでコンパイル.また、実装が良JITコンパイラ(にゃjavacコードを作る必要はありません。高性能な多くの最適化.

カップルの注意適用されます。第一に、JVMは直接現在のjavaのモジュール継承システムのため、どのようなものから複数の遺産を、複数の派遣する可能性が高いとみられ難が肥大化します。第二に、JVMs最適化への対応のようなbytecodeるjavacを構築しています。製造bytecodeることは非常に異なることが考慮奇側にある、JITコンパイラ/JVMされるのは非効率でで最悪いクラッシュのJVMは、スプリアスVirtualMachineErrorを除く).

そのJVMなければならないことで定義されたJVMのbytecodeお住まいのお客様はお問い合わせを探す。クラスファイルではなく、ソース言語です。ように変更する高レベルのソースコードの言語がなくなるわけではありませんへ大きな影響を与える利用可能です。

しかしながらコンパイラのJVMございますのでご注意下さい本当に必要なのは、生成し修正bytecode/.クラスファイルです。かき/コンパイルコードと差し替えコンパイラのようにコンパイラに質問ですが、一度にコンパイラします。<br></p><クラスファイルを走行しているのは、より走ります。クラスが生成したファイルはjavac.

にこれらの他の言語でも比較的簡単にアクセスが盛りだくさんのjavaが書けます。

のためのJavaの人々によって異なるそれぞれの物語を伝えJavaコーダーをつけてやまない理由のひとつです。あるいはストレスのどのように使用できる高度な画像処理を追加スクリプティングへのJVMのアプリ、その他のものにだけお話しでどのように語るなど、より使いやすい、より良い書式はこのようなものです。

何が必要なのと同じものを書その他の言語コンパイラ:解析では、AST、変化することを指示対象の建築(バイトコード)や保管して下さいフォーマット(.クラスファイル).

からのユーザーの視点だけを書くコードをコンパイラのバイナリは、付属。●クラスファイルでミックスとjavaコンパイラを構築しています。

きます。純言語と言のためのより実際の有用性.各言語がそのようbutchered、それらはすべてC#と。

さまざまな理由を代替言語のJava VM:

  • のJVMではマルチプラットフォーム.他言語への移植のJVMを取得するとしています。
  • はかなりのビットレガシーコードがあります。老朽化したエンジンにおいてColdFusionどのように絡んでいるのかを顧客に提示する機能をゆっくりと相応からの溶液の溶液とする。
  • 一定の形のスクリプティングにより適した、また急速な発展JavaFX、例えば、急速なグラフィカルに開発。このような競合エンジンにおいてDarkBasic.(処理が他のプレイヤれることにしたんです")
  • スクリプティング環境を提供できます。たとえば、アプリケーションを希望なVBAような環境のことなく、ユーザcdを元のJava Apiを用意しています。用エンジンのようにサイズを提供できる環境を支援する迅速や汚れた符号化に慎重に管理が出来上がります。
  • 解釈されるスクリプトを意味する必要はありません再コンパイルです。必要な再コンパイルを変換し、より動的環境です。例えばもOpenOfficeの利用のJavaとして、"スクリプト言語"、Java吸い込みのために利用いたします。により、ユーザーがすべての種類の再コンパイル/リロードgyrations不要なダイナミックなスクリプティング環境です。
  • るのもポイント。スクリプティングエンジンでより簡単に停止し、再ロードを停止せず、再読み込み、全体のJVM.これにより、スクリプト言語としての環境をリセットできます。

かいやすコンパイラの作成JVMはCLRバイトしたり検出できるようにします。いかにクリーンで高いレベルの抽象化よりも機械の言語です。このため、いかに実現可能な実験を語っていただけるよう目標をこのVMのアーキテクチャまでの設定ツールおよびライブラリでご利用可能です。のような言語でデザイナーを中心に言語以外のすべての必要な支援インフラです。

が、JSRの過程ではレンダリングJavaが溜まりやすくなり: http://www.infoq.com/news/2009/01/java7-updated

ないともったいないことも不可欠と長く知られる追加のように閉鎖されただけではできません。について合意の実装です。

Java蓄積して大規模なユーザーカントリーリスク、インセンティブについてなるバージョン1.0から1.6になる。その能力の進化、保全の下位互換性のためのuncountable百万ラインのJavaコードを走る。

この問題がJavaのニーズへと進化:

  • 競う新しいプログラミング言語を学んだのだからJavaの成功と失敗.
  • 新進プログラミング言語のデザイン。
  • ユーザーのハードウェアの進化などマルチコアプロセッサです。
  • 一部修正最先端のアイデアを導入した予想外の問題など次の例外を除き、ジェネリック).

の要件の下位互換性を維持するための障壁にお泊まりです。

た場合の比較でJavaスレッドセーフで、C#、Javaの優位性成熟、生産準備の図書館とフレームワーク、そして不利な言語機能や増加率れています。ここからの比較の成功に語るとともに、電離れています。

新しい言語と同じ利点と不利になることC#では比Javaを極めます。一つの方法を最大限に活用言語の特徴を最小限に抑えるなど不利な点で成熟した図書館の枠組み構築の言語のための既存の仮想マシンで相互運用可能なコードを書います。この背景に緩やかな成功のGroovyとClojure;と、感動の周Scala.なJVMこれらの言語が来を占めている小さなニッチに特化した市場セグメントは、JVMものを占める重要なニッチのものが主流でした。

いでいます。います。.純できるスレッドセーフで、C#、VB、J#(旧)、F#,Python,Ruby(coming soon)、c++.いう欠である。その一つであるPythonのスクリプティング。

ある程度であろう軍拡競争に対します。純CLR.

私も純正の理由のための新しい言語のJVM、特にその走りの"並行"で利用できます適切な言語の仕事では、スクリプト言語のようにGroovyするには何のために必要なページが表示は、通常の旧Javaはより良いビジネスロジック

んでいた人格という言葉で何をしながら新しい言語コンパイラです。

なかでどのように書きコードまでメモ帳/viとして!(ご利用開発支援ツールの言語の場合をしたいです。) 作成する必要があるコンパイラのための言語と解釈およびコンパイルでbytecode.

以来、javaの生産も行っていますbytecode技術的に必要なシーンのような特別なバッチファイルを実行します。

その理由は、JVMのプラットフォームの多くの利点があります。

  • 巨大な図書館数
  • 幅広い学位プラットフォーム 実装
  • 成熟した枠組み
  • レガシーコードと 既存のインフラ

の言語日は対応できるようになるとそのスクリプティング仕様例Python、Ruby)は、じきによる生産性の向上.走行Jythonできるものであり、理論上は、生産性が向上し、レバレッジの機能 Python 問題を解決するにはPythonができるものを統合し、ランタイムレベルで、既存のコードベース.クラシックの実装 PythonRuby 効果は同じ能力 C 図書館です。

また、それは多くの場合や表現もダイナミックな言語によJava.この場合に行くことができるその他のあり方について、消費 Python/Ruby 図書館から Java.

あるパフォーマンスが、多くの人に受け入れることの交流のための以下のデフォルト値が設定され,より明確にするumodel、

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top