Zacząłem czytać coraz więcej prac naukowych dotyczących języków. Uważam to za bardzo interesujące i dobry sposób, aby dowiedzieć się więcej o programowaniu w ogóle. Zazwyczaj jednak pojawia się sekcja, z którą zawsze się zmagam (na przykład część trzecia tego ), ponieważ brakuje mi teoretycznego zaplecza informatycznego: Typ reguł.
Czy są dostępne jakieś dobre książki lub zasoby online, aby zacząć w tej dziedzinie? Wikipedia jest niesamowicie niejasna i tak naprawdę nie pomaga początkującym.
Odpowiedzi:
W większości systemów typów reguły typów współpracują ze sobą w celu zdefiniowania ocen formy:
Oznacza to, że w kontekście wyrażenie e ma typ τ . Γ jest odwzorowaniem wolnych zmiennych e na ich typy.Γ mi τ
Γ mi
System typów będzie się składał z zestawu aksjomatów i reguł (formalny system reguł wnioskowania , jak podkreśla Raphael).
Aksjomat ma postać
Stwierdza on, że wyrok Uznaje (zawsze).Γ ⊢ e : τ
Przykładem jest
który stwierdza, że przy założeniu, że typem zmiennej jest τ , wówczas wyrażenie x ma typ τ .x τ x τ
Reguły wnioskowania pobierają ustalone wcześniej fakty i budują z nich większe fakty. Na przykład reguła wnioskowania
mówi, że jeśli mam wyprowadzenie faktu i wyprowadzenie z faktu Tt ⊢ e 2 : τ , to mogę otrzymać wyprowadzenie faktu Tt ⊢ e 1 e 2 : τ ' . W takim przypadku jest to reguła dla aplikacji funkcji pisania na klawiaturze.. ⊢ e1: τ→ τ′ . ⊢ e2): τ . ⊢ e1 mi2): τ′
Istnieją dwa sposoby czytania tej zasady:
Reguły wnioskowania są stosowane indukcyjnie w oparciu o składnię wyrażenia uznawanego za drzewo genealogiczne. Na liściach drzewa (u góry) będą znajdować się aksjomaty, a gałęzie zostaną utworzone przez zastosowanie reguł wnioskowania. Na samym dole drzewa znajduje się wyrażenie, które chcesz wpisać.
Obie książki są bardzo obszerne, ale zaczynają się powoli, tworząc solidny fundament.
źródło
Jest uroczy interaktywny samouczek online na rachunku sekwencyjnym, który może pomóc w budowaniu intuicji i poczuć, jak działa wnioskowanie: Interaktywny samouczek o rachunku sekwencyjnym
źródło
Na tej stronie w Wikipedii zaleca się „ Type Systems, Luca Cardelli, ACM Computing Surveys ”, która jest 2-stronicową ankietą, która pomoże ci zrozumieć, jak czytać regułę. W każdym razie sposób czytania reguły jest doskonale wyjaśniony na tej stronie Wikipedii (lub jeszcze lepiej w ankiecie na 2 stronach). Jednak, aby zrozumieć całość, musisz zrozumieć, co to jest system pisania (złożony z kilku reguł), dla którego artykuł w Wikipedii „ System typów ” jest dobrym początkiem (i masz kilka książek w dziale „Materiały referencyjne ” tego stronę, jeśli chcesz iść dalej).
źródło