2012-02-13 14 views
5

私はコンパイラの設計に新しいです。私はコンパイラの設計の基礎を知っています。私はpythonプログラムを入力として使用し、LLVMライブラリとLLVM JITコンパイラを使用して出力を生成するフロントエンドを開発したいと考えています。ある人が正しい方向に私を指摘したり、読書のためのリンクを提供してくれますか?これを行うためにコード化しなければならない基本ブロックは何ですか?LLVMアーキテクチャに基づいてPythonのフロントエンドを作成するために必要なものは何ですか?

編集:このプロジェクトを私のプロジェクトとして選択しました。私はこれを実装するためにほぼ2ヶ月半を持っています。私はPythonの小さなサブセットのためにこれを実装したいと思います。

+0

@katriealex(今削除されました)*の答えは、Unlimen Swallowプロジェクトを正しく指しています。これは、LLVMを介してPythonコードを実行できるようにするPythonフロントエンドでLLVMバックエンドをボルトで止めました。見てみな –

答えて

1

あなたはPythonのバイトコードを再コンパイルすることができます。そして、あなたはPython構文を維持することができます。つまり言語フロントエンドとしてそのまま使用できます。大きな改善が必要な場合は、libpythonを変更する必要があります。

pyastraとpymiteプロジェクトを見ると、彼らはPythonとネイティブ実行のサブセットを行います。

Cythonは、Pythonとコンパイルの中間の方法として役立ちます。

大規模では、PyPy、Psyco、Unladen Swallowを見てください。

関連する問題