Pytania związane z projektowaniem, wdrażaniem i analizą języków programowania. NIE w przypadku pytań dotyczących programowania, które są nie na temat w tej witrynie.
Często pracuję z lexer / parserami , w przeciwieństwie do kombinatora parserów i widzę osoby, które nigdy nie brały udziału w analizie składniowej, pytają o przetwarzanie danych binarnych. Zazwyczaj dane są nie tylko binarne, ale także kontekstowe. Zasadniczo prowadzi to do posiadania tylko jednego rodzaju tokena, tokena bajtu. Czy ktoś …
Na wiki haskell znajduje się następujący przykład warunkowego użycia monady IO (patrz tutaj) . when :: Bool -> IO () -> IO () when condition action world = if condition then action world else ((), world) Zauważ, że w tym przykładzie IO aprzyjęto definicję, RealWorld -> (a, RealWorld)aby wszystko było …
Zamknięte. To pytanie jest nie na temat . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby było tematem dotyczącym wymiany stosów w informatyce. Zamknięte 11 miesięcy temu . Python dość dobrze wykorzystuje wcięcia do syntaktycznego definiowania bloków kodu. (Zobacz Instrukcje złożone w Skorowidzu języka Python). Po latach …
Uwielbiam wszystko, co jest czasem kompilacji i uwielbiam pomysł, że po skompilowaniu programu powstaje wiele gwarancji dotyczących jego wykonania. Mówiąc ogólnie, system typu statycznego (Haskell, C ++, ...) wydaje się dawać silniejsze gwarancje czasu kompilacji niż jakikolwiek system typu dynamicznego. Z tego, co rozumiem, Ada idzie jeszcze dalej w zakresie …
Po pierwsze, chciałbym powiedzieć, że mój tekst poniżej może zawierać błędy, więc możesz wskazać wszelkie błędy w moim sformułowaniu pytania. Rozważ niepoprawny rachunek lambda z wartościami logicznymi i instrukcjami if, których warunki są podane przez tę składnię: t ::= v | t t | if t t t | x …
Niedawno zdałem sobie sprawę, że istnieje jakaś zależność między teorią typów Russelliana a układami typów, jak np. W Haskell. W rzeczywistości niektóre zapisy typów w Haskell wydają się mieć prekursory w teorii typów. Ale, IMHO, motywacją Russella w 1908 roku było uniknięcie paradoksu Russella i nie jestem pewien, w jaki …
Próbuję zrozumieć gramatyki kontekstowe. Rozumiem, dlaczego języki lubią { w w ∣ w ∈ A∗}{ww∣w∈ZA∗}\{ww \mid w \in A^*\} { anbndon∣ n ∈ N }{zanbndon∣n∈N.}\{a^n b^n c^n \mid n\in\mathbb{N}\} nie są wolne od kontekstu, ale co chciałbym wiedzieć, jeśli język podobny do niepisanego rachunku lambda jest wrażliwy na kontekst. Chciałbym …
Podczas tworzenia klienta interfejsu API sieci Web w języku C # napotkałem problem dotyczący nullwartości, która reprezentowałaby dwie różne rzeczy: nic , np. foomoże mieć lub może nie miećbar nieznany : domyślnie odpowiedź API zawiera tylko podzbiór właściwości, musisz wskazać, które dodatkowe właściwości chcesz. Tak nieznany oznacza, że właściwość nie …
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 chcę, ale dla modeli wyrażonych za pomocą logiki relacyjnej. Zdaję …
Dlaczego języki wysokiego poziomu najwyraźniej nigdy nie osiągają języków niższego poziomu pod względem szybkości? Przykładami języków wysokiego poziomu są Python, Haskell i Java. Języki niskiego poziomu byłyby trudniejsze do zdefiniowania, ale powiedzmy C. Porównania można znaleźć w całym Internecie i wszyscy zgadzają się, że C jest znacznie szybszy, czasami nawet …
Odpowiedź na Programmers.SE charakteryzuje esej Cook ( Przedmioty nie są ADTS ) wypowiedź Obiekty zachowują się jak funkcja charakterystyczna względem wartości typu, a nie jak algebra. Obiekty używają abstrakcji proceduralnej zamiast abstrakcji typu ADT zwykle mają unikalną implementację w programie. Gdy w danym języku są moduły, możliwe jest posiadanie wielu …
Próbuję uzyskać ogólny obraz znaczenia najmniej ustalonego punktu (LFP) w analizie programu. Na przykład abstrakcyjna interpretacja wydaje się wykorzystywać istnienie LFP. Wiele prac badawczych na temat analizy programów również koncentruje się w dużej mierze na znalezieniu najmniej ustalonego punktu. Mówiąc dokładniej, ten artykuł w wikipedii: Twierdzenie Knaster-Tarski wspomina, że LFP …
Potrzebuję zwięzłej definicji „stanu obiektu” w programowaniu obiektowym (na papierze). Przez około pół dnia szukałem artykułu, który mogę zacytować na ten temat, ale nie mogłem go znaleźć. Wszystkie artykuły, które znalazłem, były w większości ogólnymi artykułami na temat programowania obiektowego i nie definiowały stanu obiektu. Nie jestem pewien, ale najlepiej …
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 …
Pracuję nad językiem genealogicznym ML opartym na wyrażeniach, więc oczywiście wymaga wnioskowania typu> :) Teraz próbuję rozszerzyć oparte na ograniczeniach rozwiązanie problemu wnioskowania typów, oparte na prostej implementacji w EOPL (Friedman i Wand), ale są to eleganckie algebraiczne typy danych. To, co mam do tej pory, działa płynnie; Jeśli wyrażenie …
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.