はじめに この記事は「ほんのちょっとだけRubyが動くVMをRubyで実装してみて、Rubyが実行される仕組みを理解しよう」という趣旨のゆるふわな記事です。 こんなコードを実行できるVMを実装します。 この記事ではRuby 2.3.3を使います。 注意点 本記事にでてくる用語は厳密な定義とかは気にせずゆるくふんわりと使ってます VMの実装はRubyを使うので結構ずるい感じです 構文解析、コンパイルはしません クラス定義、メソッド探索、コントロールフレームなどの概念はでてきません なのでRubyを題材にしてますが、Rubyの特徴的な機能にはあまり触れていません 対象読者 Rubyが好き 普段Webプログラミングとかしてる プログラミング言語の処理系としてのVMが気になる まえおき VMとは RubyはJavaやErlangなどと同じようにRuby用のVM(仮想マシン)上で実行されます。 C言
![RubyでRubyVMを実装してRubyVMの気持ちになってみる - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/b8077361eb90a3095c1ae9c2876ff93b366ee424/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-f625e957b80c4bd8dd47b724be996090.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9UnVieSVFMyU4MSVBN1J1YnlWTSVFMyU4MiU5MiVFNSVBRSU5RiVFOCVBMyU4NSVFMyU4MSU5NyVFMyU4MSVBNlJ1YnlWTSVFMyU4MSVBRSVFNiVCMCU5NyVFNiU4QyU4MSVFMyU4MSVBMSVFMyU4MSVBQiVFMyU4MSVBQSVFMyU4MSVBMyVFMyU4MSVBNiVFMyU4MSVCRiVFMyU4MiU4QiZ0eHQtY29sb3I9JTIzM0EzQzNDJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDbWlkZGxlJnM9MzM3MzA5N2U0MGVhZDg1OGExYWMwYTJhZDI1MmQwODk%26mark-x%3D142%26mark-y%3D151%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwbm93bmFiZSZ0eHQtY29sb3I9JTIzM0EzQzNDJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9Y2M1MGY0MTE2NTdjYzIzMzUxMmQ2OGVhNzU1OWUwZjc%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D5c7cb57c8ea03707747db72dd170e2ba)