Yazım kuralları nasıl okunur?


18

Giderek daha fazla dil araştırma makalesi okumaya başladım. Genel olarak programlama hakkında daha fazla bilgi edinmek için çok ilginç ve iyi bir yol buluyorum. Ancak, genellikle hep (örnek parçanın üç için almak ile mücadele bir bölüm bulunmaktadır geliyor bu Tipi Kuralları: Ben bilgisayar bilimi teorik arka plan eksikliği beri).

Bu alanda başlamak için iyi kitaplar veya çevrimiçi kaynaklar var mı? Wikipedia inanılmaz derecede belirsiz ve yeni başlayanlara gerçekten yardım etmiyor.


1
Çıkarım kuralları ile ilgili bağlantılı makaleyi okudunuz mu?
Raphael

2
Benjamin Pierce'ın TAPL'si gerçekten iyi.
Gilles 'SO- kötü olmayı bırak'

Yanıtlar:


25

Çoğu yazım sisteminde, yazım kuralları formun kararlarını tanımlamak için birlikte çalışır:

Γe:τ

Bu, bağlamında e ifadesinin τ türüne sahip olduğunu belirtir . Γ , e'nin serbest değişkenlerinin türleriyle eşleştirilmesidir .Γeτ
Γe

Bir tür sistem bir dizi aksiyom ve kuraldan ( Raphael'in işaret ettiği gibi resmi bir çıkarım kuralları sistemi) oluşacaktır .

Bir aksiyom formdadır

Γe:τ

Bu, kararının (daima) geçerli olduğunu belirtir .Γe:τ

Bir örnek

x:τx:τ

Değişken bir varsayımı altında olan bildiren olan τ , daha sonra ifade X türü vardır t alınmak .xτxτ

Çıkarım kuralları önceden belirlenmiş gerçekleri alır ve onlardan daha büyük gerçekler oluşturur. Örneğin çıkarım kuralı

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

diyor ben aslında bir türevinin varsa ve aslında bir türetme y'nın e 2 : τ , o zaman aslında bir türevinin elde edebilirsiniz y'nın e 1 e 2 : τ ' . Bu durumda, işlev uygulaması yazma kuralı budur.Γe1:ττΓe2:τΓe1 e2:τ

Bu kuralı okumanın iki yolu vardır:

  • yukarıdan aşağıya - iki ifade (bir işlev ve başka bir ifade) ve türlerine ilişkin bazı kısıtlamalar verildiğinde, verilen türle başka bir ifade (işlevin ifadeye uygulanması) oluşturabiliriz.
  • aşağıdan yukarıya - bu durumda, bir işlevin bir ifadeye uygulanması olarak ifade edildiğinde, bunun yazılma şekli ilk olarak iki ifadeyi yazarak, türlerinin bazı kısıtlamaları karşılamasını, yani ilkinin bir işlev türü ve ikincisinin işlevin bağımsız değişken türüne sahip olması.

Bazı çıkarım kuralları, içine yeni bileşenler ekleyerek manipüle eder (aşağıdan yukarıya bakıldığında). Λ- soyutlama kuralı :Γλ

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

Çıkarım kuralları, bir türetme ağacı oluşturduğu düşünülen ifadenin sözdizimine dayalı olarak endüktif olarak uygulanır. Ağacın yapraklarında (üstte) aksiyomlar olacak ve çıkarım kuralları uygulanarak dallar oluşturulacaktır. Ağacın en altında yazmakla ilgilendiğiniz ifade bulunur.

Örneğin, ifadesinin tipinin bir türevi . λ x . f x isimliλf.λx.f x

tipi sistemleri hakkında bilgi edinmek için İki çok iyi kitaplar şunlardır:

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

Her iki kitap da çok kapsamlıdır, ancak yavaş bir şekilde başlarlar ve sağlam bir temel oluştururlar.



5

Bu Wikipedia sayfasında , bir kuralın nasıl okunacağını anlamanıza yardımcı olabilecek 2 sayfalık bir anket olan " Type Systems, Luca Cardelli, ACM Bilgi İşlem Anketleri " önerilir . Her neyse, bir kuralın nasıl okunacağı Wikipedia sayfasında mükemmel bir şekilde açıklanmaktadır (veya 2 sayfalık ankette daha da iyi). Bununla birlikte, her şeyi anlamak için, " Tip sistemi " Wikipedia makalesinin iyi bir başlangıç ​​olduğu (ve bunun " Referanslar " bölümünde birkaç kitabın bulunduğu bir yazım sisteminin ne olduğunu (birkaç kuraldan oluşur) anlamanız gerekir. daha ileri gitmek istiyorsanız).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.