Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 29 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Anzeige

Aktuellste (20)

Anzeige

型推論

  1. 1. 型推論付き言語 の実装 @__int
  2. 2. 型推論とは •型再構築とも •ex. 型なし項の型を推論する
  3. 3. 例 True True : Bool
  4. 4. 例 λx. λy. x (λ(x: τ1). λ(y: τ2). (x: τ1)) : (τ1→ τ2→τ1)
  5. 5. 型推論の流れ 型なし項 型付き項 型付け 方程式 型制約 単一化 型付き項
  6. 6. 方程式の生成 型なし項 型付き項 型付け 方程式 型制約 単一化 型付き項
  7. 7. 必要な関数 C(Γ, t) = (c, T)
  8. 8. 必要な関数 C(Γ, t) = (c, T) 型環境
  9. 9. 必要な関数 C(Γ, t) = (c, T) 型なし項型環境
  10. 10. 必要な関数 C(Γ, t) = (c, T) 型なし項型環境 制約
  11. 11. 必要な関数 C(Γ, t) = (c, T) 型なし項型環境 制約 型付き項
  12. 12. 単一化 型なし項 型付き項 型付け 方程式 型制約 単一化 型付き項
  13. 13. 必要な関数 U(c) = (S)
  14. 14. 必要な関数 U(c) = (S) 制約
  15. 15. 必要な関数 U(c) = (S) 制約 型変数の対応
  16. 16. 実行までの流れ 型付き項 型なし項
  17. 17. 評価 型付き項 型なし項 実行結果
  18. 18. 評価の流れ 型付き項 型付き de Bruijn項 結果 de Bruijn index化 eval
  19. 19. 評価の流れ 型付き項 型付き de Bruijn項 結果 de Bruijn index化 eval
  20. 20. de Bruijn index λx. λy. x λ. λ. 1
  21. 21. de Bruijn index λx. λy. x λ. λ. 1
  22. 22. de Bruijn index λx. x (λy. x) (λz. x) λ. 0 (λ. 1) (λ. 1)
  23. 23. 評価の流れ 型付き項 型付き de Bruijn項 結果 de Bruijn index化 eval
  24. 24. β-簡約 •(λ.t) v →β [0 ↦ v] t •(実際はシフトなどが必要)
  25. 25. 実装 •型: 関数 + Bool •値: λ項 + 真偽値, if 文
  26. 26. 実装 •自然数 •帰納的関数 •その他拡張
  27. 27. 実装 •自然数 •帰納的関数 •その他拡張
  28. 28. まとめ •型システムたのしい •Haskell かわいい
  29. 29. ご清聴ありがとうございました

×