コンパイラ基盤であるLLVMについて、全く知識がない私が、 javascriptソースコードをパースしLLVMでコンパイルできるようになりました。 LLVMの記事は数多くありますが、初心者向けの記事が少なく感じたため、 本記事では、できる限り分かりやすくLLVMについて紹介できる記事を書こうと思います。 ソースコードは、こちらに置いています。 自己紹介 ふだん、javascriptやpythonなどインタプリタ言語を使うエンジニアです。 LLVMについて、全く知識がなかった人間です。 背景 過去に、おもちゃのブラウザ自作をやってみました。 HTMLとCSSを解析し、レンダリングするところを書き、基本的な動作を知ることができました。 HTMLとCSSとくれば、次はJSだと思い、JSを実行するエンジンを書いてみたくなりました。 ただし、WebブラウザのAPIとJS実行エンジンをバインディングす
![LLVM入門 - javascript使いがLLVM(Rust:inkwell)でjavascriptをJITコンパイルするまで](https://cdn-ak-scissors.b.st-hatena.com/image/square/ba8f46674c9da6b9e85d929997110acdccf6fe6e/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--VtnyxxVa--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3ALLVM%2525E5%252585%2525A5%2525E9%252596%252580%252520-%252520javascript%2525E4%2525BD%2525BF%2525E3%252581%252584%2525E3%252581%25258CLLVM%252528Rust%25253Ainkwell%252529%2525E3%252581%2525A7javascript%2525E3%252582%252592JIT%2525E3%252582%2525B3%2525E3%252583%2525B3...%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Asilverbirder%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzAyM2ViMWNiYjIuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png)