2

P. NorvigによるPythonを使用したSchemeインタープリターのコードを読んでいますが、Pythonを使用してインタープリターを作成してみたいと思います。これは適切に投稿の主題です:ジュニアプログラマーはそれのためにどの言語でインタープリターを実装できますか?。しかし、私は長い間OCamlを学ぶことに強い関心を持っており、OCamlを決心すればそれは適切な機会かもしれません。

OCaml言語のPythonインタープリターを実装するために多くの努力を期待する必要がありますか?これは単なる個人的なプロジェクトであり、私の目的は(OCamlの学習以外に)、主にコンパイラーとインタープリターで読んだことを実践することです。

OCamlが適していない場合、あなたは個人的に何をアドバイスしますか?

OCamlの良い参考文献をほのめかしていただけませんか(または、OCamplパーサー/インタープリターを作成することもできます)。

## 編集

Lua / Ruby / BASICはどうですか?(私もそれらを学びたいので)

ありがとう、よろしく

4

4 に答える 4

7

あなたはPythonでOCamlインタープリターを作成したいと言っているようです(OCamlのPythonインタープリターではありませんよね?)。私の意見では、OCaml自体は教育プロジェクトに選択するには大きすぎる言語です。私はもっ​​と小さな言語を選びます。そのため、Schemeが適切な選択です。コア言語は非常に小さいです。

OCamlを使用すると、型推論も可能になります。これは学ぶのに最適ですが、やはりかなり大きなトピックです。

小さくてややMLっぽいものについては、型なしのラムダ計算から始めることができます。これは非常に一般的なテストケースです。

于 2012-07-15T18:41:56.540 に答える
5

OCamlの基礎となるセマンティクス(理論の一部)をよく紹介したい場合は、DidierRémyによる「OCaml言語の使用、理解、および解明」という本を参照してください。

完全なOCaml言語の実装を書くことはかなりの作業ですが、それの合理的なサブセットの実装を書くことは、例えば、学期のプロジェクトとして実行可能です。

ML言語がシンボリック操作(インタープリター、コンパイラー、アナライザー、プルーフチェッカーなど)に非常に優れていることを考えると、PythonでのOCaml実装よりもOCamlでPython実装を書く方がおそらく楽しいでしょう-これは周りの混乱を説明するかもしれませんあなたの質問。

于 2012-07-15T23:55:47.113 に答える
3

MITのGeraldSussmanのSICPを読み始めることができます。第4章では、さまざまな目的のためにいくつかの通訳者を作成します。第5章では、コンパイラーをビルドします。

また、elispの優れたインタプリタを備えたGNU/Emacsのソースコードを読んでみてください。

また、coursera.orgのコンパイラコースに登録して、非常に複雑なインタプリタを作成することもできます。

構文解析に対処する必要がなく、Pythonはこれらとまったく同じように機能するため、scheme/lispのインタープリターを作成することをお勧めします。

于 2012-07-15T19:14:37.820 に答える
0

インタプリタの書き方(Pythonで)

これは、地元のPythonミートアップで同様の講演をした後、私がしばらく前に作成したビデオです。ビデオでは、Pythonで1時間以内に小さな関数型言語を実装しています。これは、開始するのに適した場所かもしれません。

于 2013-07-10T20:50:13.157 に答える