タグ

bytecodeに関するnabinnoのブックマーク (4)

  • What efficient pattern matching looks like at the bytecode level - DockYard

    The labels that are jumped to from the select_val match then are checking that the rest of the string matches. The select_val is being generated in label(28)’s block because there is a group of clauses for render_template generated in Phoenix.Template.__before_compile__ My theory is that this is how BEAM makes pattern matching efficient in general: it finds prefixes that can be matched against wit

    What efficient pattern matching looks like at the bytecode level - DockYard
  • バイトコード - Wikipedia

    バイトコード(英: bytecode / byte code)は、バイト指向の、中間表現のコードすなわち中間コードの総称である。バイトコードという名前は命令の構成がバイト指向であること、すなわち命令長がバイト可変長であったり、命令中のフィールドの区切りがビット単位でなくバイト単位になっていたり、といったことから来ている。特にJavaの場合オペコードが1バイトである(Javaバイトコードの記事を参照)。しかし、Java仮想マシンの命令体系をバイトコードと呼ぶことがJavaで広く一般的になったことから、前述のようなバイト指向でなくとも仮想マシン向けの命令体系全般をバイトコードと呼んでいることも多い[1]。バイト単位でなくビット単位の場合は、ビットコードとも呼ばれる。ワード指向のためにワードコードという語を使っている例も見られる。 ソースコードを直接解釈するインタプリタと同等の移植性を確保した上

  • mrubyのバイトコードの命令の解説 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? mrubyでコンパイラを作ってみたり、Rubyを書く以外の方法でmrubyのバイトコード列を書く場合、バイトコードの命令を知る必要があります。 バイトコード命令は単純そうで意外と奥が深いようです。ここではmrubyのJITを作成する経験で得たバイトコードの裏仕様を解説したいと思います。 命令の解説 OP_NOP 何もしない命令 これって実はcodegen.cで定義されている正規のコードジェネレータでは出てこないんですよね。でもバイトコードのパッチとかやりたいときはないと困る重要な命令です。 命令の仕様ではオペランドはないのですが、実際に

    mrubyのバイトコードの命令の解説 - Qiita
  • Javaバイトコード - Wikipedia

    Javaバイトコードは、Java仮想マシン(Java VM, JVM)が実行する命令形式である。各バイトコードのオペコードは長さが1バイトであるが、引数を持つものもあるため、結果として複数バイトの命令となる。256個のオペコードの全てが使われているのではなく、51個が将来のために予約されている。Javaプラットフォームの開発元であるサン・マイクロシステムズは、205個のオペコードのうち、3つのコードをJVM実装による内部使用のために予約するものとした。もしJVMの命令セットが将来的に拡張されたとしても、これらの予約されたオペコードは使われないことが保証されている(有効なJavaクラスファイルの中には出現しない)[1]。 Javaプログラマは、Javaバイトコードについて知ったり理解したりする必要は全くない。しかしながら、IBMのdeveloperWorksに投稿された記事では、「バイトコー

    Javaバイトコード - Wikipedia
  • 1