2016-04-04 18 views
1

私は自分自身のタイプ推論エンジンをHaskellに書く必要があるプロジェクトに取り組んでいます。タイプ推論エンジンhaskell

  1. 統一アルゴリズムは、推論エンジンを構築するための重要な理由
  2. は、私はC#のような言語を持つこの型推論エンジンを作成できます 感謝

答えて

3

は、対象に大きな参照がで」タイピングのHaskellのだろうハスケル "マークジョーンズ。 Chris Doneのmarkdown versionも、the originalと同様に転載されています。さらに、Types and Programming Languagesには、古典的なアルゴリズムW(基礎となるHaskellとMLスタイルの型推論)の説明とその正しさの証明があります。

型推論は、入力するソース言語に非常に大きく左右され、言語レベルでの小さな変更は言語に大きな影響を与えることに注意してください。例:

  • 一般化はできましたか?
  • 種類のクラスは?
  • 値または単相性の制限?
  • どのような種類のモジュールですか?

これらの質問のいずれかにyesまたはnoを入力すると、型推論アルゴリズムが大きく変更されます。より詳細な情報を得るためには、より多くの情報が必要です。 HaskellではタイピングのHaskellで

も、ASTの注釈付きバージョンを生成するように、将来のコンパイルは通ること何かがタイプされたか を知っているので、本当のコンパイラが持つかもしれない問題に対処する試みがない、それだけではなくだったことタイプされた。あなたがコンパイラを構築しているなら、ほぼ確実にこれをしたいと思うでしょう。