Pytania otagowane jako programming-languages

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.


1
Typy jako obywatel pierwszej klasy
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?


2
Co sprawia, że ​​rachunek lambda jest istotny w badaniu?
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 …

3
anonimowe funkcje lambda (programowanie funkcjonalne)
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 …



2
Jaka jest różnica między zmiennymi a wskaźnikami?
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 …

2
Skompiluj sam język programowania
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, …

3
Dlaczego stan pozostaje niezmieniony w niewielkiej semantyce operacyjnej pętli while?
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 …

1
Czy stosowane jako stos wywołań wolne od śmieci stosy spaghetti tworzą DAG?
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 …

1
Jaki jest nieskomplikowany przykład statycznego sprawdzania typu, który jest zbyt konserwatywny?
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 …


2
Czy dwuprocesowy algorytm wzajemnego wykluczania Petersona uwzględnia procesy umierania?
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 …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.