タグ

技術とインタープリタに関するmohnoのブックマーク (2)

  • C言語でWASMインタプリタを実装した話

    概要 公式のcore testが全て(UTF8, WAT, SIMD関連のものは除く)通るWASMインタプリタをC言語でフルスクラッチで実装した。自作WASMランタイムで省略されがちなValidation Stageも実装した。この記事はWebAssembly Advent Calendar 2023の三日目の記事である。 目的 このWASMランタイムを実装するにあたり、「できるだけ仕様に従って実装する」ことを心掛けた。WASMの仕様書は以下のissueが立つほど読みにくいものとなっているが、ランタイムをどのように実装すべきかが詳しく書いてあり、一応仕様書を頑張って読めばランタイムが作れるようになっている。 この自作WASMランタイムの目的は、できるだけ仕様に従った実装を与えることで、仕様の理解を助けることである。早さや効率性よりも分かりやすさを優先しているため、実用には向かない。仕様書を

    C言語でWASMインタプリタを実装した話
    mohno
    mohno 2023/12/03
    WASMのバイトコードを実行するんじゃなくて文法を解釈するのか。なんかスゲェ。「WASMランタイムを実装する中で、仕様書にバグや不明瞭な点を見つけて報告した」「WASMの命令は抽象度がかなり高い」←そりゃ理解も進む。
  • Pythonは遅い遅い言われてJITとか中途半端なことせずにフルネイティブコンパイラを作ったらどうですか?

    回答 (13件中の1件目) JIT方式は中途半端なものではありません。もちろん万能でなんでも優れているわけでもありませんが以下の利点があります。 * プログラムは単一の機械独立、OS独立の形式で配布できる(実行時に実行環境の機械語に変換できる) * 配布形式が小さくなる。マシン中立なバイナリ表現にした場合は特に。 * 全体をネイティブコンパイルするのではなく、速度にシビアに関わる最内周ループや何度も実行される場所に限ってネイティブコンパイルすることで実行に必要なメモリフットプリントを減らすことができる。 * 実行時だけわかる情報を元にした最適化やコード生成が可能。例えば、 *...

    Pythonは遅い遅い言われてJITとか中途半端なことせずにフルネイティブコンパイラを作ったらどうですか?
    mohno
    mohno 2023/05/07
    インタープリタだから遅いというより、実行時に型が決定されると判別処理に時間がかかる、という話だもんねぇ。話題のMojoだって、速い仕組みを“追加”してるだけみたいだし。おとなしくC言語を使え(←ヤメナサイ)
  • 1