スクリプト言語のインタープリタ/コンパイラのソースコードを読んで、そこから学びたいと思っています。どのようなスクリプト言語のインタプリタ/コンパイラが最もシンプルでクリーンでソースコードを読むのが簡単ですか?私はC言語でコンパイラを書くことを計画しているので、C/C++で書かれたものが好きです(それ以外には何が書かれていますか?)。スクリプト言語インタープリタのソースコードを教えてください
答えて
luaを見ると、プログラミング言語の最初のバージョンから進化した方法を見ることができます。それはC言語で書かれており、きれいで素敵なコードを持っています。ほぼすべてのプログラミング言語でコンパイラを書くことができますが、Cはほとんどのプログラマが選択したものです。
CPythonインタラプタは、それがあなたにとって非常に有用であると想像してください。
質問者は、彼/彼女が何を望んでいるかについて明確ではありませんでした。彼/彼女は明らかにしたので、私は私の答えを編集しました。 –
有名な言語ですが、単純ではありません(PHPソースコード)。 ソースコードを利用することができます。
PHPのソースがシンプルでない場合、OPの_primary_基準が「単純」であるとすれば、これはどのように答えになりますか? – ildjarn
@ildjarn:PHPソースコードは単純ではありませんが、ソースコードの恩恵を受けることもあります –
JavaScriptのためのV8に見てみましょう。すべてのinterpeterには、tokenizerというコンポーネントがあります。 GNUの名前はbisonです。それについても見てみましょう。それは役に立つかもしれません。 ChromiumはWebkitでもhtmlを解釈するためにトークナイザを使用していますが、V8はjavascriptインタープリタです。
クラウディオ・M.・ソウザジュニア
AngelScriptは、コンパイラについての学習のための非常に良いオプションです。これは、C/C++に慣れ親しんだ構文、ガベージコレクションを持つ言語であり、継承と多相を持つオブジェクト指向であり、クロスプラットフォームであり、バイトコードにコンパイルされます。
私の2番目の選択肢はLuaです。
穏やかな紹介として、LLVM Tutorialをご覧になることをお勧めします。
彼は、その後どのようにadd JIT capabilities実証(:
クリス・ラットナーは、コンパイルの様々な段階を示すために、簡単なおもちゃの言語に万華鏡を作成します通訳には不可欠です)。
おもちゃの言語は非常にシンプルなので、結果として得られるコードもシンプルであり、実装の詳細を溺れさせずにアーキテクチャをうまく示しています。
私はこのチュートリアルが完全に最新であり、最近のLLVMバージョンと同様に使用できるとは確信していませんが、少なくとも読んでおくことをお勧めします。
(もちろん、Dragon Bookを読むこと)。
- 1. ロケールで言語名を取得する方法を教えてください。
- 2. 翻訳する言語を明示的に教えてください
- 3. スクリプトの実行方法を教えてください。
- 4. Google Appsスクリプトのテスト方法を教えてください。
- 5. NHibernate Validatorで英語以外の言語を使用する方法を教えてください。
- 6. 質問の言語のインタープリタ
- 7. Wikipediaはインフォボックスを英語とは異なる言語でレンダリングする方法を教えてください。
- 8. 道順を教えてください。
- 9. Googleの設定スクリプトを取り除く方法を教えてください。
- 10. PHP APC、教えてください
- 11. ボタンをクリックしてアンドロイドスタジオの言語設定を変更する方法を教えてください。
- 12. NuGetパッケージをインストールする際の言語とアーキテクチャの指定方法を教えてください。
- 13. グローバルオフセットテーブル(GOT)を自分の言語でx86に渡すのに最適な方法を教えてください。
- 14. 辞書の最大要素のキーをPython言語で見つける方法を教えてください。
- 15. TCLとTKに、デフォルトの `.tcl`言語ファイルをローカルで検索する方法を教えてください。
- 16. 多言語データとツリー構造の両方をバージョン管理する方法を教えてください。
- 17. drupal 8で異なる言語のメニューとメニューの翻訳方法を教えてください
- 18. スクリプトの所有者を知る方法を教えてください。
- 19. Grinderスクリプトでのテスト記録の停止方法を教えてください。
- 20. 私は国番号と言語コードのリストを持っています。国コードから言語コードへのマッピング方法を教えてください。
- 21. ワトソン自然言語分類器を増分する方法を教えてください。
- 22. ユーザーにC言語で数学関数を入力する方法を教えてください。
- 23. C++:std :: functionsを宣言する方法を教えてください。
- 24. gulpからPowerShellスクリプトを実行する方法を教えてください。
- 25. グローバルリソース言語を追加したら、クライアントにどの言語を選択させるかを教えてください。
- 26. ポイントから消える方法を教えてください。
- 27. Backbone.jsの使い方について教えてください。
- 28. wordpressでフォームを書く動作を教えてください
- 29. プライベートクラスのパブリックプロパティのアクセシビリティについて教えてください。
- 30. このコードブロックについて教えてください。 (コンタクトリスト)
あなたが一番好きなものをお試しください。 – hari
かなりの人がこの質問を誤解しているようです。もう一度お読みください: – slartibartfast