後入りですみませんが、WebAssemblyアドベントカレンダー未投稿のところ埋めさせて頂きます。 本記事では、WebAssemblyをターゲットとするコンパイラ処理系を実装します。 方針 WebAssemblyへのコンパイル言語処理系を最も簡単に 1実装するための方針は以下のとおり。 言語は「コンパイラがなるべく小さくなる言語として考案」されたBrainf*ckを採用 文法はPEG(Parsing Expression Grammar)で記述し、生成系PEG.jsでパーサを実行時に生成する WebAssemblyコード生成では文字列でWAST形式を生成し、wast2wasm2で変換する(直接WASMを生成しない)。またEmscriptenやbinaryenは使用しない WASTの表現ではflat形式ではなくs-expression形式を使用する ブラウザ上ではなくNode上で実行する。な
![WebAssemblyへのコンパイラ言語を簡単に実装 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/daee16c42dfee12ba8dfe71a68fc4e54c549fd68/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent-calendar-ogp-background-7940cd1c8db80a7ec40711d90f43539e.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9V2ViQXNzZW1ibHklRTMlODElQjglRTMlODElQUUlRTMlODIlQjMlRTMlODMlQjMlRTMlODMlOTElRTMlODIlQTQlRTMlODMlQTklRTglQTglODAlRTglQUElOUUlRTMlODIlOTIlRTclQjAlQTElRTUlOEQlOTglRTMlODElQUIlRTUlQUUlOUYlRTglQTMlODUmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTM0MDIyMGJlYWExMjc3YzZiNzVlZjMzOGY1YTcxM2Fi%26mark-x%3D120%26mark-y%3D96%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9OTcyJnR4dD0lNDB1ZWhhaiZ0eHQtY29sb3I9JTIzM0EzQzNDJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9OTdmZmRhN2JkNTc1MjBhZjcwZWI1ZjI1ZWU2YjMzOGQ%26blend-x%3D120%26blend-y%3D500%26blend-mode%3Dnormal%26s%3Da988d574334f66f25c59e5c03bad6639)