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.
Zastanawiam się, czy są jakieś eksperymenty, które pokazują istnienie lub brak korelacji między użyciem dynamicznego języka (takiego jak Python, Ruby, a nawet języków, które działają na platformie Java, takiej jak Groovy, Clojure) w język statyczny (taki jak C / C ++) i różnica w wydajności.
W niedawnym artykule CACM [1] autorzy przedstawiają implementację funkcji etapowych . Używają tego terminu, jakby był dobrze znany, i żadne z odniesień nie wygląda jak oczywiste wprowadzenie. Podają krótkie wyjaśnienie (zmieniono moje wyróżnienie i numer referencyjny; w oryginale jest 22) W kontekście generowania programu, programowanie wieloetapowe (MSP, w skrócie inscenizacja), …
W tym samym myśleniu, co wypowiedź Andreja Bauera w tej odpowiedzi Społeczność Haskell opracowała szereg technik inspirowanych teorią kategorii, z których najlepiej znane są monady, ale nie należy ich mylić z monadami . Jaki jest związek między funktorami w SML a funktorami w teorii kategorii? Ponieważ nie znam szczegółów funktorów …
To naiwne i dlatego prawdopodobnie źle sformułowane pytanie, więc z góry przepraszamy! Moim zdaniem maszynę Turinga można postrzegać jako podstawę obliczeniową dla proceduralnych / imperatywnych języków programowania. Podobnie, rachunek lambda jest podstawą funkcjonalnych języków programowania. Niedawno dowiedziałem się, że teza Churcha-Turinga wykazuje również wzajemną równoważność z trzecim modelem obliczeń: ogólnymi …
Zgodnie z zaleceniem przesyłam ponownie z Przepełnienia stosu . Ostatnio zastanawiałem się nad następującym problemem. Rozważ kod standardowego „Hello world!” program: main() { printf("Hello World"); } Teraz prawie każda zmiana w tym kodzie sprawi, że będzie on całkowicie bezużyteczny, w rzeczywistości prawie każda zmiana uniemożliwi kompilację kodu. Na przykład: main(5 …
Zastanawiałem się więc, jak działają śmieciarki, i pomyślałem o interesującym problemie. Przypuszczalnie śmieciarze muszą przemierzać wszystkie struktury w ten sam sposób. Nie znają pogody, przemierzają połączoną listę, zrównoważone drzewo czy cokolwiek innego. Nie mogą też zużywać zbyt dużo pamięci podczas wyszukiwania. Jednym z możliwych sposobów i jedynym sposobem, w jaki …
Chciałbym zadać kilka pytań na temat języka asemblera. Rozumiem, że jest bardzo zbliżony do języka maszynowego, dzięki czemu jest szybszy i bardziej wydajny. Skoro mamy różne architektury komputerów, czy to oznacza, że muszę pisać inny kod w asemblerze dla różnych architektur? Jeśli tak, to dlaczego nie jest Zgromadzenie, napisz raz …
W skrócie: w jaki sposób kategoryzowane są systemy typów w kontekście akademickim; w szczególności, gdzie mogę znaleźć renomowane źródła, które wyraźnie rozróżniają różne systemy typów? W pewnym sensie trudność związana z tym pytaniem nie polega na tym, że nie mogę znaleźć odpowiedzi, ale raczej na tym, że mogę znaleźć zbyt …
Wiem, że w imperatywnych językach programowania pętla while-do jest wystarczająca jako konstrukcja przepływu sterowania, aby uzupełnić język Turinga (jeśli chodzi o przepływ sterowania - oczywiście potrzebujemy również nieograniczonej pamięci i niektórych operatorów ...) . Istota mojego pytania brzmi: czy pętla „do-while” ma taką samą moc obliczeniową jak pętla „do-do”? Innymi …
Być może moje ograniczone rozumienie tematu jest nieprawidłowe, ale rozumiem do tej pory: Programowanie funkcjonalne oparte jest na rachunku Lambda Calculus opracowanym przez Alonzo Church. Programowanie imperatywne oparte jest na modelu maszyny Turinga, stworzonym przez Alana Turinga, ucznia Churcha. Rachunek Lambda jest tak potężny i zdolny jak Maszyna Turinga, co …
Jaka jest różnica między językiem programowania a językiem skryptowym? Rozważmy na przykład C kontra Perl. Czy jedyną różnicą jest to, że języki skryptowe wymagają tylko interpretera i nie wymagają kompilacji ani łączenia?
W słynnym eseju Richarda Gabriela The Rise of Worse is Better kontrastuje karykaturalne wersje filozofii projektowych MIT / Stanford (Lisp) i New Jersey (C / Unix) wzdłuż osi prostoty, poprawności, spójności i kompletności. Podaje przykład „problemu utraty komputera” ( omówionego gdzie indziej przez Josha Habermana ), aby argumentować, że Unix …
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ę stanu.S Λ → ⊆ …
Nasz profesor poprosił nas o przemyślenie funkcji w OCaml, która ma ten typ 'a -> 'b tj. funkcja jednego argumentu, który może być czymkolwiek, i który może zwrócić coś innego. Myślałem o użyciu raisefunkcji, która ignoruje jej argument: let f x = raise Exit Ale profesor powiedział, że istnieje rozwiązanie, …
Zaczynam osobiste badanie bibliograficzne algorytmów sprawdzania typu i chcę uzyskać wskazówki. Jakie są najczęściej stosowane algorytmy sprawdzania typu, strategie i techniki ogólne? Szczególnie interesują mnie złożone algorytmy sprawdzania typu, które zostały zaimplementowane w powszechnie znanych, silnie statycznych językach, takich jak na przykład C ++, Java 5+, Scala lub inne. IE, …
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.