To jest kolejne pytanie do Jaka jest różnica między dowodami a programami (lub między propozycjami i typami)? Jaki program odpowiadałby niekonstruktywnemu (klasycznemu) dowodowi formy ? (Załóżmy, że jest interesującą zależnością rozstrzygalną, np. ta TM nie zatrzymuje się w krokach ).∀k T(e,k)∨¬∀k T(e,k)∀k T.(mi,k)∨¬∀k T.(mi,k)\forall k \ T(e,k) \lor \lnot \forall …
Interesuje mnie, dlaczego autorzy książek na temat teorii języków programowania i teorii typów tak uwielbiają liczby naturalne (np. J. Mitchell, Podstawy języków programowania i B. Pierce, Typy i języki programowania). Opis prostego rachunku różniczkowego lambda, a zwłaszcza języka programowania PCF, jest zwykle oparty na języku Nat i Bool. Dla osób …
Jako poboczny projekt piszę język przy użyciu Pythona. Zacząłem od użycia klonu Flex / Bison o nazwie Ply, ale zbliżam się do krawędzi tego, co mogę wyrazić za pomocą tego stylu gramatyki, i nie jestem zainteresowany zhakowaniem mojego języka z powodu niedopasowania impedancji z narzędzie. Dlatego nie jestem przeciwny pisaniu …
Jeśli przejdziemy do tej książki (lub innej wersji specyfikacji języka, jeśli wolisz), ile mocy obliczeniowej może mieć implementacja języka C? Należy zauważyć, że „implementacja C” ma znaczenie techniczne: jest to szczególna instancja specyfikacji języka programowania C, w której udokumentowano zachowanie zdefiniowane w implementacji. Implementacja AC nie musi być w stanie …
Jestem zdezorientowany subtelną różnicą między twierdzeniami a osądami, gdy jestem narażony na intuicyjną teorię typów. Czy ktoś może mi wyjaśnić, po co je rozróżniać, a co je wyróżnia? Zwłaszcza w świetle curry-Howarda Isomorphsima.
Niedawno czytałem Dwie dualności obliczeń: typy ujemne i ułamkowe . Artykuł rozwija typy sum i typy produktów, nadając semantykę typom a - bi a/b. W przeciwieństwie do dodawania i mnożenia, nie ma jednego, lecz dwa odwrotności potęgowania, logarytmów i rootowania. Jeśli typy funkcji (a → b) są potęgowaniem teoretycznym, biorąc …
To pytanie zostało przeniesione z przepełnienia stosu, ponieważ można na nie odpowiedzieć na teoretycznej wymianie stosu komputerów. Migrował 8 lat temu . Biorąc pod uwagę, że Korespondencja Curry-Howarda jest tak szeroko rozpowszechniona / rozszerzona, czy istnieje jakaś różnica między dowodami a programami (lub między propozycjami i typami)? Czy naprawdę możemy …
ACSL (Ansi C Specification Language), to specyfikacja kodu C, opatrzona specjalnymi komentarzami, która pozwala na formalną weryfikację kodu C. Nie przyjrzałem się temu, ale wyobrażam sobie, że metody formalne stosowane w weryfikatorach ACSL byłyby podobne do Hoare Logic. Jednak w przypadku czysto funkcjonalnych języków, takich jak Haskell, nie mogę sobie …
Ponieważ w Lambda Ultimate nie było odpowiedzi , próbuję tutaj jeszcze raz: systemy przepisywania terminów są używane na przykład w automatycznym twierdzeniu potwierdzającym obliczenia symboliczne i oczywiście do zdefiniowania gramatyki formalnej. Istnieje kilka języków programowania opartych na przepisywaniu terminów, ale o ile rozumiem, pojęcie to jest bardziej znane jako dopasowanie …
1) Jaki, jeśli w ogóle, jest związek między pisaniem statycznym a gramatyką formalną? 2) Czy w szczególności byłoby możliwe, aby automat z ograniczeniem liniowym sprawdził, czy, powiedzmy, program C ++ lub SML był dobrze napisany? Automat zagnieżdżonego stosu? 3) Czy istnieje naturalny sposób na wyrażenie zasad pisania statycznego w formalnych …
W swojej odpowiedzi na to pytanie , Stephane Gimenez wskazał mi algorytm normalizacji wielomian czasu do dowodów w logice liniowej. Dowód w artykule Girarda wykorzystuje siatki próbne, które są aspektem logiki liniowej, o której tak naprawdę niewiele wiem. Teraz próbowałem już czytać artykuły na temat siatek próbnych (takie jak notatki …
Typy i języki programowania skupiają się dość mocno na subtypowaniu, ale o ile wiem, subtyping nie wydaje się szczególnie fundamentalny. Czy podtypowanie daje coś więcej niż typy zależne? Praca z typami zależnymi z pewnością będzie wymagała więcej pracy, więc rozumiem, dlaczego podtypy mogą być przydatne w praktyce. Jednak bardziej interesuje …
Z tego, co rozumiem (co jest bardzo mało, więc proszę popraw mnie tam, gdzie się mylę!), Teoria języków programowania często dotyczy dowodów „intuicyjnych”. W mojej własnej interpretacji podejście to wymaga od nas poważnego potraktowania konsekwencji obliczeń dla logiki i sprawdzalności. Dowód nie może istnieć, chyba że istnieje algorytm konstruujący konsekwencje …
Zainspirowany rozległymi hierarchiami obecnymi w teorii złożoności, zastanawiałem się, czy takie hierarchie występują również w przypadku systemów typów. Jednak dwa przykłady, które do tej pory znalazłem, bardziej przypominają listy kontrolne (z funkcjami ortogonalnymi) niż hierarchie (z coraz bardziej ekspresyjnymi systemami typów). Te dwa przykłady znalazłem to kostka Lambda i pojęcie …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.