私は言語研究論文をどんどん読み始めました。私はそれが非常に興味深く、プログラミング全般についてもっと学ぶ良い方法だと思います。しかし、コンピューターサイエンスの理論的背景に欠けているため、通常は常に苦労するセクションがあります(たとえば、このパート3を取り上げます):タイプルール。
この分野で始めるのに役立つ良い本やオンラインリソースはありますか?ウィキペディアは信じられないほど曖昧であり、初心者を本当に助けません。
私は言語研究論文をどんどん読み始めました。私はそれが非常に興味深く、プログラミング全般についてもっと学ぶ良い方法だと思います。しかし、コンピューターサイエンスの理論的背景に欠けているため、通常は常に苦労するセクションがあります(たとえば、このパート3を取り上げます):タイプルール。
この分野で始めるのに役立つ良い本やオンラインリソースはありますか?ウィキペディアは信じられないほど曖昧であり、初心者を本当に助けません。
回答:
ほとんどのタイプシステムでは、タイプルールが連携して、フォームの判定を定義します。
これは、コンテキストで式eのタイプがτであることを示しています。Γは、eの自由変数の型へのマッピングです。
型システムは、公理とルールのセットで構成されます(Raphaelが指摘するように、推論ルールの正式なシステム)。
公理の形式は
判決ことをこの状態成立する(常に)。
例は
推論ルールは、すでに決定されているファクトを取得し、それらからより大きなファクトを構築します。たとえば、推論ルール
このルールを読むには2つの方法があります。
推論ルールは、派生ツリーを形成すると見なされる式の構文に基づいて帰納的に適用されます。ツリーの葉(最上部)には公理があり、推論規則を適用することで分岐が形成されます。ツリーの一番下には、入力することに興味のある式があります。
どちらの本も非常に包括的ですが、ゆっくりと始まり、強固な基盤を構築します。
シーケント計算に関するキュートなインタラクティブなオンラインチュートリアルがあります。これは、いくつかの直観を構築し、推論がどのように機能するかを感じるのに役立ちます。シーケント計算 のインタラクティブチュートリアル
そのウィキペディアのページでは、「Type Systems、Luca Cardelli、ACM Computing Surveys」をお勧めします。これは、ルールの読み方を理解するのに役立つ2ページの調査です。とにかく、ルールの読み方はそのウィキペディアのページで完全に説明されています(2ページの調査ではさらに良い)。「そのためしかし、全体のことを理解するために、あなたは、(いくつかのルールで構成される)タイピングシステムであるかを理解する必要があるタイプシステム」Wikipediaの記事は良いスタートである(そして、あなたがセクション「で、いくつかの本を持っている参考文献いるの」さらに進みたい場合はページをご覧ください)。