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.
Czy teoretycznie jest możliwe określenie języka programowania, dla którego nie byłoby możliwe wdrożenie? Język programowania to sposób definiowania funkcji. Implementacja oznacza metodę wykonania danego programu w tym języku na danym wejściu na wyjściu funkcji odpowiadającej programowi na tym wejściu. Jakie są minimalne wymagania takiego języka?
Pochodząc z języka C ++ nie rozumiem, dlaczego jako obywatel pierwszej klasy potrzebne są typy / wyrażenia typu? Jedynym znanym mi językiem obsługującym tę funkcję jest Aldor. Czy ktoś ma literaturę na temat typów jako obywatel pierwszej klasy lub wie, dlaczego jest to przydatne?
W przypadku funkcji lub obliczeń mamy terminy takie jak: Deterministyczny - Determinizm Czysta - czystość Jaki jest teraz odpowiedni rzeczownik dla bez skutków ubocznych ? „Wolność efektów ubocznych”? „Swoboda efektów ubocznych”? „Nieskuteczne”?
Jesienią rozpoczynam licencjat z informatyki, ale tak naprawdę nie rozumiem rachunku λ w kontekście programowania funkcjonalnego. Być może całkowicie błędnie to interpretuję, ale w oparciu o tę definicję z Encyklopedii Filozoficznej Stanforda jest to kolejna notacja funkcji. Jeśli to jest właśnie to, dlaczego jest korzystne stosowanie λ nazębnego nad regularnych …
Co to są funkcje anonimowe (lambda)? Jaka jest formalna definicja anonimowej funkcji w funkcjonalnym języku programowania? Mówiąc najprościej, kiedy programuję w schemacie / lisp, powiedziałbym, że funkcja anonimowa (lambda) jest funkcją niezwiązaną z identyfikatorem. Czy to wszystko, co możesz formalnie powiedzieć o funkcji lambda? Myślę, że do tej prostej definicji …
Czy istnieją języki programowania (lub logika), które mogą implementować (lub wyrażać) funkcję tylko i tylko wtedy, gdy jest obliczalną funkcją bijectywną? ff:N→Nf:N→Nf:\mathbb{N}\to \mathbb{N}fff
Jestem ciekawy. Pracowałem nad tym typem danych w OCaml : type 'a exptree = | Epsilon | Delta of 'a exptree * 'a exptree | Omicron of 'a | Iota of 'a exptree exptree Z którymi można manipulować za pomocą jawnie wpisanych funkcji rekurencyjnych (funkcja dodana całkiem niedawno). Przykład: let …
Podczas lektury artykułu opisującego różnice w OO i programowaniu funkcjonalnym natknąłem się na wskaźniki funkcji. Minęło trochę czasu, odkąd ukończyłem studia informatyczne (2003), więc szukałem wskazówek, aby odświeżyć moją pamięć. Wskaźniki to zmienne, które zawierają odniesienie do adresu pamięci. Można je uznać za wskazujące na dane zawarte w tym adresie …
Jestem studentem informatyki. Chcę stworzyć własny język programowania (podstawowy język z kilkoma instrukcjami). Wiem, jak zrobić analizator składniowy, już to zrobiłem w Perlu. W artykule przeczytałem coś o kompilatorze, kompilator jest zrobiony sam w sobie. Na przykład kompilator C jest napisany w C. Jak to możliwe? Mogę stworzyć własny język, …
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) \> else \> SKIP, \sigma) Dla mnie nie jest to intuicyjne, jeśli stan się nie …
Patrzę na techniki implementacji języków programowania, a ostatnio natknąłem się na stosy spaghetti, które podobno dobrze pasują do modelu stylu kontynuacji przechodzenia (biorąc pod uwagę ich zastosowanie np. W Scheme i SML / NJ ). Dla uproszczenia rozważmy tylko jedno-wątkowe procesy dla tego pytania. Jestem jednak nieco zdezorientowany schematem na …
W Concepts in Programming Languages John Mitchell pisze, że statyczne sprawdzanie typów jest z konieczności konserwatywne (zbyt surowe) z powodu problemu zatrzymania. Podaje jako przykład: if (complicated-expression-that-could-run-forever) then (expression-with-type-error) else (expression-with-type-error) Czy ktoś może udzielić nieskomplikowanej odpowiedzi, która naprawdę byłaby kwestią praktyczną? Rozumiem, że Java zezwala na dynamicznie sprawdzane rzutowania …
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 referencje.
Myślę, że w algorytmie Petersona dla wzajemnego wykluczenia , jeśli proces, który pierwszy wejdzie do sekcji krytycznej, umrze lub zostanie anulowany, drugi proces zapętli się na zawsze, czekając na wejście do sekcji krytycznej. Na zdjęciu, jeśli proces 1 zostanie zatrzymany, pozostałe procesy za procesem 1 zostaną wykonane do miejsca, w …
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.