タイピングルールの読み方


18

私は言語研究論文をどんどん読み始めました。私はそれが非常に興味深く、プログラミング全般についてもっと学ぶ良い方法だと思います。しかし、コンピューターサイエンスの理論的背景に欠けているため、通常は常に苦労するセクションがあります(たとえば、このパート3を取り上げます):タイプルール。

この分野で始めるのに役立つ良い本やオンラインリソースはありますか?ウィキペディアは信じられないほど曖昧であり、初心者を本当に助けません。


1
推論規則についてのリンクされた記事を読みましたか?
ラファエル

2
ベンジャミン・ピアスのTAPLは本当に良いです。
ジル「SO-悪であるのをやめる」

回答:


25

ほとんどのタイプシステムでは、タイプルールが連携して、フォームの判定を定義します。

Γe:τ

これは、コンテキストで式eのタイプがτであることを示しています。Γは、eの自由変数の型へのマッピングです。Γeτ
Γe

型システムは、公理とルールのセットで構成されます(Raphaelが指摘するように、推論ルールの正式なシステム)。

公理の形式は

Γe:τ

判決ことをこの状態成立する(常に)。Γe:τ

例は

x:τx:τ

xτxτ

推論ルールは、すでに決定されているファクトを取得し、それらからより大きなファクトを構築します。たとえば、推論ルール

Γe1:ττΓe2:τΓe1 e2:τ

Γe1:ττΓe2:τΓe1 e2:τ

このルールを読むには2つの方法があります。

  • トップダウン-2つの式(関数と別の式)およびそれらの型に対する制約を考えると、特定の型で別の式(式への関数の適用)を構築できます。
  • ボトムアップ-この場合、ある式への関数の適用である式が与えられた場合、最初に2つの式を入力し、それらの型がいくつかの制約を満たすこと、つまり最初の式が関数の種類と2番目の関数の引数の種類があります。

Γλ

Γx:τe:τΓλx.e:ττ

推論ルールは、派生ツリーを形成すると見なされる式の構文に基づいて帰納的に適用されます。ツリーの葉(最上部)には公理があり、推論規則を適用することで分岐が形成されます。ツリーの一番下には、入力することに興味のある式があります。

λf.λx.f x

f:ττ,x:τf:ττf:ττ,x:τx:τf:ττ,x:τf x:τf:ττλx.f x:τλf.λx.f x:τ

どちらの本も非常に包括的ですが、ゆっくりと始まり、強固な基盤を構築します。


8

シーケント計算に関するキュートなインタラクティブなオンラインチュートリアルがあります。これは、いくつかの直観を構築し、推論がどのように機能するかを感じるのに役立ちます。シーケント計算 のインタラクティブチュートリアル


3
かっこいい。
デイブクラーク

1
驚くばかり。これを入れるには、いくつかのタグwikiを見つける必要があります。
ラファエル

5

そのウィキペディアのページではType Systems、Luca Cardelli、ACM Computing Surveys」をお勧めします。これは、ルールの読み方を理解するのに役立つ2ページの調査です。とにかく、ルールの読み方はそのウィキペディアのページで完全に説明されています(2ページの調査ではさらに良い)。「そのためしかし、全体のことを理解するために、あなたは、(いくつかのルールで構成される)タイピングシステムであるかを理解する必要があるタイプシステム」Wikipediaの記事は良いスタートである(そして、あなたがセクション「で、いくつかの本を持っている参考文献いるの」さらに進みたい場合はページをご覧ください)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.