$30 off During Our Annual Pro Sale. View Details »

PerlでJVMをつくろう

 PerlでJVMをつくろう

2021 Japan.pm LT発表資料

HiroshiToriyabe

February 19, 2021
Tweet

More Decks by HiroshiToriyabe

Other Decks in Programming

Transcript

  1. PerlでJVMをつくろう 株式会社モバイルファクトリー 鳥谷部 啓 (とりやべ ひろし) @toricor

  2. 自己紹介 - とりやべ (@toricor)です - 娘2人 - 株式会社モバイルファクトリー 新卒4年目エンジニア -

    駅メモ!でいろいろ機能開発をしています - パフォーマンスチューニングが好きです
  3. JVM (Java Virtual Machine)をつくるとは - そもそもJVMとは - javacでコンパイルしたクラスファイル (.class)を読み取り実行する君 -

    JVMを実装するとは - To implement the Java Virtual Machine correctly, you need only be able to read the class file format and correctly perform the operations specified therein. (The Java Virtual Machine Specification 第2章冒頭より引用) - 「クラスファイルを読み取り、記述された操作を正しく実行できれば ok」 - 作りました => https://github.com/toricor/p5-jvmtiny
  4. なぜJVMを作るか - 「堅い仕様書」を元に実装してみる経験がしたかった - https://docs.oracle.com/javase/specs/index.html - いわゆる「スタックマシン」を動かしてみたかった - バイナリファイルを読んでみたかった -

    twitterでJVMを実装するのが流行っていた - https://speakerdeck.com/memory1994/phperkaigi-2019?slide=144 - とても丁寧な解説でわかりやすいです
  5. クラスファイルの読み取り javac -encoding UTF-8 JustAddInt.java

  6. クラスファイルの読み取り Chapter 4. The class File Format に合わせて読み取るだけ!

  7. 読み取ったオペコードを実行する Chapter 6. The Java Virtual Machine Instruction Set に沿って計算するだけ!

  8. DEMO Tech Blogに同じデモアニメーションがあります

  9. まとめ PerlでもJVMを作れました! - もう少し詳しい解説は モバイルファクトリーTech Blogでどうぞ!