Jaka jest podstawowa różnica między semantyką operacyjną małego i dużego kroku? Trudno mi zrozumieć, co to jest i motywację do posiadania tych
Semantyka formalnie opisuje znaczenie jakiejś składni.
Jaka jest podstawowa różnica między semantyką operacyjną małego i dużego kroku? Trudno mi zrozumieć, co to jest i motywację do posiadania tych
Szukam prostego rachunku, który obsługuje rozumowanie na temat refleksji , a mianowicie introspekcji i manipulacji uruchomionymi programami. Czy istnieje nietypowe rozszerzenie -calculus, które umożliwia konwersję -terms do postaci, którą można manipulować składniowo, a następnie...
Biorąc pod uwagę oznaczony system przejścia , gdzie jest zbiorem stanów, jest zbiorem etykiet, a jest relacją trójskładnikową. Jak zwykle napisz dla . Oznaczone przejście oznacza, że system w stanie zmienia stan na z etykietą , co oznacza, że to pewne obserwowalne działanie, które powoduje zmianę...
W językach programowania zamknięcia są popularną i często pożądaną funkcją. Wikipedia mówi (moje podkreślenie): W informatyce zamknięcie (...) jest funkcją wraz ze środowiskiem odniesienia dla zmiennych nielokalnych tej funkcji. Zamknięcie umożliwia funkcji dostęp do zmiennych poza jej...
W artykule „Bezkonfliktowy zreplikowany typ danych JSON” napotkałem ten zapis do formalnego definiowania „reguł”: Jak nazywa się ten zapis? Jak to czytać? Na przykład: DOCreguła nie ma nic w „liczniku” - dlaczego nie? te EXECi GETzasady wydają się mieć dwa oddzielne terminy powyżej linii, co...
Naprawdę walczę z tą właściwością: Niech będą spacjami koherencyjnymi, a będzie funkcją monotoniczną. jest ciągłe wtedy i tylko wtedy, gdy , dla wszystkich takich, że jest zbiorem ukierunkowanym.f : C l ( X ) → C l ( Y ) f f ( ⋃ x ∈ D x ) = ⋃ x ∈ D f ( x ) D ⊆ C l ( X )...
W odniesieniu do funkcji w językach takich jak ruby (i javascript), które pozwalają programiście rozszerzyć / przesłonić klasy w dowolnym momencie po ich zdefiniowaniu (w tym klasy takie jak String), czy teoretycznie wykonalne jest zaprojektowanie języka, który może pozwolić programom na...
Załóżmy, że mamy prosty język, który składa się z terminów: truetrue\mathtt{true} falsefalse\mathtt{false} jeśli są warunkami, to podobnie jest zi ft1,t2,t3t1,t2,t3t_1,t_2,t_3ift1thent2elset3ift1thent2elset3\mathtt{if}\: t_1 \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 Załóżmy teraz następujące...
Znam semantykę operacyjną (zarówno małą, jak i dużą) do definiowania języków programowania. Interesuje mnie również nauka semantyki denotacyjnej, ale nie jestem pewien, czy będzie to warte wysiłku. Czy po prostu będę uczyć się tego samego materiału z innego punktu widzenia, czy też są...
Myślę, że jestem dość zdezorientowany tym, co nazywa się rachunkiem różniczkowym i językiem programowania. Zwykle myślę, i można było powiedzieć, że rachunek różniczkowy jest formalnym systemem rozumowania na temat równoważności programów. Programy mają semantykę operacyjną określoną przez...
Istnieje wiele popularnych języków. Ale informatycy mówią nam, że aby zrozumieć zachowanie programów w tych językach, zdecydowanie i jednoznacznie spieramy się na zachowanie programu (np. Udowodnić ich tożsamość), musimy przetłumaczyć je na inny, dobrze zrozumiały język. Nazywają taki język...
Wiem, że różni autorzy używają różnych notacji do reprezentacji semantyki języka programowania. W rzeczywistości Guy Steele rozwiązuje ten problem w ciekawym filmie . Chciałbym wiedzieć, czy ktoś wie, czy wiodący operator bramki obrotowej ma dobrze rozpoznane znaczenie. Na przykład nie rozumiem...
Czy jest jakieś narzędzie do prototypowania semantyki języka programowania i systemu typów, a także umożliwia pewnego rodzaju sprawdzanie modelu standardowych właściwości, takich jak poprawność typu? Pytam o to, ponieważ czytam książkę o stopie i zapewnia on dokładnie taką funkcjonalność, jakiej...
W pracy miałem za zadanie wnioskować o pewnych typach informacji o dynamicznym języku. Przepisuję sekwencje instrukcji na letwyrażenia zagnieżdżone , tak jak poniżej: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T;...
W dyskusji wokół tego pytania Gilles poprawnie wspomina, że każdy dowód poprawności algorytmu wykorzystującego tablice musi udowodnić, że nie ma dostępu do tablicy poza granicami; w zależności od modelu środowiska wykonawczego spowoduje to błąd środowiska wykonawczego lub dostęp do elementów...
Szukam zasobów na początek analizy programu . Jedyną książką, jaką znalazłem na ten temat, jest książka Nielson i Nielson . Poza tym wydaje się, że istnieją tylko książki „kompilatorowe”, w których „analiza programu” byłaby rozdziałem lub czymś podobnym. Czy ludzie znają inne...
Czasami słyszymy: „Swift nie robi klasycznego (śledzącego) GC, używa ARC”. Ale nie jestem pewien, czy w semantyce Swift jest coś, co wymaga zliczania referencji. Wygląda na to, że można zbudować własny kompilator i środowisko wykonawcze Swift, aby korzystać ze śledzenia GC. Czym dokładnie jest...
W rozdziale 1 Praktycznych podstaw języków programowania autor wspomina, że abstrakcyjne drzewa składniowe są powiązane z sortowaniem . Intuicyjnie, rodzaje są jak typy, ale chciałbym wiedzieć, czy mają precyzyjną definicję. Byłbym zadowolony, gdyby podano również niektóre...
Zwykle widzę, że w strukturalnej reprezentacji operacyjnej semantyki dla pętli while stan programu nie zmienia się: (whileBdoS,σ)→(ifBthenS;(whileBdoS)elseSKIP,σ)(whileBdoS,σ)→(ifBthenS;(whileBdoS)elseSKIP,σ)(while \> B \> do \>S, \sigma) \rightarrow (if \>B \> then \>S; (while \> B \> do \>S) \>...