問題タブ [bytecode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHPコードを「コンパイル」して、バイトコードインタープリターによって実行されるバイナリ風のファイルをアップロードできますか?
PHPは、サーバーで実行される前にバイトコードにコンパイルされ、そのバイトコードをキャッシュできるため、すべてのWebアクセスでスクリプト全体を再解釈する必要がありません。
しかし、PHPコードを「コンパイル」して、バイトコードインタープリターによって実行されるバイナリ風のファイルをアップロードできますか?
string - 文字列はどのようにバイナリファイルに埋め込まれますか?
私は自分のバイトコードと仮想マシン(.NET上)を書いていますが、理解できないことの1つは、バイトコードに文字列を埋め込む方法です。今、私はそれをどのようにすべきかというアイデアはありますか?
java - JVM バイトコードをテキスト表現に往復させるフェイルセーフな方法
JVM クラス ファイルとテキスト表現の間を往復するフェイル セーフな方法を探しています。
厳密な要件の 1 つは、テキスト表現が変更されていない限り、結果として得られるラウンドトリップ JVM クラス ファイルが元の JVM クラス ファイルと機能的に完全に同等であることです。
さらに、テキスト表現は人間が判読可能で編集可能でなければなりません。テキスト表現に小さな変更 (テキスト文字列やクラス名の変更など) を加えて、結果のクラス ファイル表現に反映できるようにする必要があります。
最も簡単な解決策は、JAD などの Java デコンパイラを使用してテキスト表現を生成することです。この場合、テキスト表現は単純に再作成された Java ソース コードになります。次に、javac を使用してバイトコードを生成します。ただし、無料の Java 逆コンパイラの現状を考えると、このアプローチはすべての状況で機能するとは限りません。クラスファイル/Java ソース/クラスファイルの完全なラウンドトリップに耐えられない難読化されたバイトコードを作成するのはかなり簡単です (一部には、JVM バイトコードとJava ソースコード)。
上記の要件を考慮して、JVM クラスファイル/テキスト表現/クラスファイルのラウンドトリップを実現するフェイルセーフな方法はありますか?
更新:回答する前に - 上記のすべての要件を読んで時間と労力を節約し、具体的には次の点に注意してください。
- 「JVM バイトコードのテキスト表現」は、必ずしも「Java ソースコード」を意味するわけではありません。
java - Java バイトコードは、同じバージョンの Java の異なる更新内で互換性がありますか?
この質問は、ここで説明されている他のトピックに関連しています:
Java バイトコードは Java の異なるバージョンと互換性がありますか?
ただし、この場合、互換性が同じバージョン内で異なる更新で保持されているかどうかを知りたいです。
たとえば、バージョン 1.6.0_14 のコンパイラによって生成されるバイトコードは、1.6.0 の JVM と互換性がありますか? コードは問題なく実行されますが、予期しない問題が発生する可能性があるかどうかはわかりません。
よろしく。
documentation - Luaのバイトコード仕様
Lua のバイトコード仕様の場所を教えてもらえますか? 15分間探しましたが、何も見つかりません。
python - プログラムでPythonバイトコードを生成する方法はありますか?
Pythonインタープリターをハックして、小さなDSLを作成してみたいと思います。この理論的なコード(LINQ式ツリーと同様)のようなことを実行できるモジュールはありますか?
それとも、Pythonソースコードを生成する方が簡単でしょうか?これは、C、SWIG、またはCythonを使用することで簡単にできますか?
syntax - Java コードの Scala : $colon
Scalaソースコードを含むいくつかのJavaソースコードを読みました。
見つけたNil.$colon$colon(Object arg)
キーワード とは$colon
どういう意味ですか? そして、この行はどういう意味ですか?
java - Java クラス ファイルのバイトコード バージョンの切り替え
バイトコード バージョン X の Java クラス ファイル (ClassName.class) が与えられた場合、このクラス ファイルをバイトコード バージョン X で表されるものからバイトコード バージョン Y で表されるものに変換する一般的な方法はありますか?
仮定:
- ソースコードは利用できません。クラス ファイルは、クラスの唯一の利用可能な表現です。
- クラス ファイルは非常に難読化されているため、jad などのプログラムでクラスを逆コンパイルし、"-target ..." で再コンパイルしても機能しません。
最初の投稿後の更新:
- 更新 #1: さらに、バイトコード バージョン X とバイトコード バージョン Y が十分に近いため、クラス (現在はバイトコード バージョン X) で使用されるすべての命令もバージョン Y に存在すると仮定します。
java - Javaクラスをコンパイルするときにコンパイル時の依存関係チェックを無効にする
次の2つのJavaクラスについて考えてみます。
pkg.not.in.classpath.FooBar
さらに、それがクラスパスに見つからないと仮定します。
最初のクラスは、標準のjavacを使用して正常にコンパイルされます。
ただし、2番目のクラスはコンパイルされず、javacはエラーメッセージを表示します"package pkg.not.in.classpath does not exist"
。
依存関係をチェックすると、メソッドの引数が間違っているかどうかなどをコンパイラが通知できるため、エラーメッセージは一般的な場合に適しています。
コンパイル時の依存関係のこのチェックは便利で便利ですが、上記の例でJavaクラスファイルを生成するために厳密に必要なわけではありません。
コンパイル時の依存関係チェックを実行せずに有効なJavaクラスファイルを生成することが技術的に不可能な例を挙げてください。
javacまたは他のJavaコンパイラにコンパイル時の依存関係チェックをスキップするように指示する方法を知っていますか?
あなたの答えが両方の質問に対応していることを確認してください。
java - Java バイトコードについて
多くの場合、ソースのない Java クラス ファイルで立ち往生しており、手元にある問題を理解しようとしています。
逆コンパイラは便利ですが、すべての状況で十分ではないことに注意してください...
2つ質問があります
- Javaバイトコードを表示するために利用できるツールは何ですか(できればLinuxコマンドラインから利用できます)
- Java バイトコード構文に慣れるための参考資料は何ですか