2011-10-18 8 views
9

スクリプト言語のインタープリタ/コンパイラのソースコードを読んで、そこから学びたいと思っています。どのようなスクリプト言語のインタプリタ/コンパイラが最もシンプルでクリーンでソースコードを読むのが簡単ですか?私はC言語でコンパイラを書くことを計画しているので、C/C++で書かれたものが好きです(それ以外には何が書かれていますか?)。スクリプト言語インタープリタのソースコードを教えてください

+0

あなたが一番好きなものをお試しください。 – hari

+0

かなりの人がこの質問を誤解しているようです。もう一度お読みください: – slartibartfast

答えて

11

luaを見ると、プログラミング言語の最初のバージョンから進化した方法を見ることができます。それはC言語で書かれており、きれいで素敵なコードを持っています。ほぼすべてのプログラミング言語でコンパイラを書くことができますが、Cはほとんどのプログラマが選択したものです。

+1

すべてのバージョンのソースコードは、http://www.lua.org/ftp/lua-all.tar.gzで入手できます。それらはすべてうまくコンパイルされます。 – lhf

+0

いくつかの最近のバージョンのLuaのソースコードは、http://www.lua.org/source/のリンクで参照できます。 http://lua-users.org/wiki/LuaSourceも参照してください。 – lhf

6

CPythonインタラプタは、それがあなたにとって非常に有用であると想像してください。

+0

質問者は、彼/彼女が何を望んでいるかについて明確ではありませんでした。彼/彼女は明らかにしたので、私は私の答えを編集しました。 –

0

有名な言語ですが、単純ではありません(PHPソースコード)。 ソースコードを利用することができます。

PHP Source Code

+1

PHPのソースがシンプルでない場合、OPの_primary_基準が「単純」であるとすれば、これはどのように答えになりますか? – ildjarn

+0

@ildjarn:PHPソースコードは単純ではありませんが、ソースコードの恩恵を受けることもあります –

2

JavaScriptのためのV8に見てみましょう。すべてのinterpeterには、tokenizerというコンポーネントがあります。 GNUの名前はbisonです。それについても見てみましょう。それは役に立つかもしれません。 ChromiumはWebkitでもhtmlを解釈するためにトークナイザを使用していますが、V8はjavascriptインタープリタです。

クラウディオ・M.・ソウザジュニア

4

AngelScriptは、コンパイラについての学習のための非常に良いオプションです。これは、C/C++に慣れ親しんだ構文、ガベージコレクションを持つ言語であり、継承と多相を持つオブジェクト指向であり、クロスプラットフォームであり、バイトコードにコンパイルされます。

私の2番目の選択肢はLuaです。

4

穏やかな紹介として、LLVM Tutorialをご覧になることをお勧めします。

彼は、その後どのようにadd JIT capabilities実証(:

クリス・ラットナーは、コンパイルの様々な段階を示すために、簡単なおもちゃの言語に万華鏡を作成します通訳には不可欠です)。

おもちゃの言語は非常にシンプルなので、結果として得られるコードもシンプルであり、実装の詳細を溺れさせずにアーキテクチャをうまく示しています。

私はこのチュートリアルが完全に最新であり、最近のLLVMバージョンと同様に使用できるとは確信していませんが、少なくとも読んでおくことをお勧めします。

(もちろん、Dragon Bookを読むこと)。

関連する問題