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.
Załóżmy, że program został napisany w dwóch różnych językach, niech to będą język X i język Y, jeśli ich kompilatory generują ten sam kod bajtowy, dlaczego powinienem używać języka X zamiast języka Y? Co określa, że jeden język jest szybszy od drugiego? Pytam o to, ponieważ często zdarza się, że …
Wiem, że Idris ma typy zależne, ale nie jest kompletny. Czego nie może zrobić, rezygnując z kompletności Turinga i czy wiąże się to z posiadaniem typów zależnych? Wydaje mi się, że jest to dość specyficzne pytanie, ale nie wiem zbyt wiele o typach zależnych i pokrewnych systemach typów.
Większość z nas uczyła się programowania przy użyciu „tekstowych” języków programowania, takich jak Basic, C / C ++ i Java. Uważam, że myślenie wizualne jest bardziej naturalne i wydajne dla ludzi. Programowanie wizualne pozwala programistom pisać programy, manipulując elementami graficznymi. Myślę, że użycie programowania wizualnego powinno poprawić jakość kodu i …
Jako edukator CS na poziomie uniwersyteckim często pojawia się kwestia, którego języka programowania uczyć w pierwszym kursie programowania. Do wyboru są tysiące języków i wiele gorączek religijnych (lub gorączek) wspierających jeden obóz językowy nad drugim. Wszystkie te subiektywne uprzedzenia dotyczące każdego języka programowania bardzo utrudniają nauczycielowi wybór jednego z nich. …
Dijkstra w swoim eseju O okrucieństwie prawdziwego nauczania informatyki przedstawia następującą propozycję wprowadzenia kursu programowania: Z jednej strony uczymy czegoś, co wygląda na rachunek predykatu, ale robimy to zupełnie inaczej niż filozofowie. Aby wyszkolić początkującego programistę w zakresie manipulowania nieinterpretowanymi formułami, uczymy go bardziej jako algebry boolowskiej, zapoznając studenta ze …
Czytałem o Jocie i Jocie i uznałem tę sekcję za mylącą: W przeciwieństwie do Iota, gdzie drzewo syntaktyczne łańcucha może rozgałęzić się po lewej lub po prawej stronie, składnia Jot jest równomiernie rozgałęziona w lewo. W rezultacie Iota jest całkowicie pozbawiona kontekstu, ale Jot jest zwykłym językiem. Rozumiem, że zarówno …
Zasadniczo mam świadomość trzech podstaw matematyki Ustaw teorię Teoria typów Teoria kategorii Więc w jaki sposób języki programowania i podstawy matematyki są powiązane? EDYTOWAĆ Pierwotne pytanie brzmiało: „Języki programowania oparte na podstawach matematyki” z dodanym paragrafem I implementacje teorii 1. Teoria typów w Coq 2. Teoria zbiorów w SETL 3. …
Czy istnieją programy, które potrafią „tłumaczyć” kod źródłowy między dowolnymi dwoma językami (zakładając, że tłumacz ma dostęp do wymaganych bibliotek)? Jeśli tak, to w jaki sposób działają (zastosowane techniki, wymagana wiedza itp.)? Jak można by je wykonalnie skonstruować? Jeśli nie są, jakie są ograniczenia uniemożliwiające ich rozwój? Czy jest to …
Kombinator stałoprzecinkowy FIX (znany również jako kombinator Y) w (niepoprawnym) rachunku lambda ( ) jest zdefiniowany jako:λλ\lambda FIX≜λf.(λx.f (λy.x x y)) (λx.f (λy.x x y))≜λf.(λx.f (λy.x x y)) (λx.f (λy.x x y))\triangleq \lambda f.(\lambda x. f~(\lambda y. x~x~y))~(\lambda x. f~(\lambda y. x~x~y)) Rozumiem jego cel i doskonale mogę śledzić wykonanie …
To pytanie zostało przeniesione z Software Stack Stack Exchange, ponieważ można na nie odpowiedzieć na Computer Science Stack Exchange. Migrował 6 lat temu . Czy możemy uczyć się języków programowania w kontekście językoznawstwa? Czy języki programowania ewoluują naturalnie w podobny sposób jak języki naturalne? Chociaż pełna racjonalność i spójność matematyczna …
Przeważnie piszemy program w języku wysokiego poziomu. Podczas nauki natknąłem się na język asemblera. Asembler konwertuje język asemblera na język maszynowy, a kompilator robi to samo z językiem wysokiego poziomu. Odkryłem, że język asemblera zawiera instrukcje takie jak move r1 r3, move 5 itp. I raczej trudno się go uczyć. …
Poszukuję wglądu w decyzje dotyczące projektowania języka w zbieraniu śmieci. Może ekspert językowy mógłby mnie oświecić? Pochodzę z języka C ++, więc ten obszar jest dla mnie zaskakujący. Wydaje się, że prawie wszystkie współczesne języki odśmiecania z obsługą obiektów OOPy, takie jak Ruby, JavaScript / ES6 / ES7, Actionscript, Lua …
Uwaga: chociaż umiem programować, jestem całkiem początkującym w teorii CS. Zgodnie z tą odpowiedzią Kompletność Turinga jest abstrakcyjną koncepcją obliczalności. Jeśli język jest kompletny Turinga, jest on w stanie wykonać dowolne obliczenia, które może wykonać każdy inny kompletny język Turinga. I każdy program napisany w dowolnym języku kompletne Turinga mogą …
Znalazłem kilka narzędzi do programowania wizualnego typu open source, takich jak Blockly i przyjaciele oraz inne projekty hostowane w Github, ale nie mogłem znaleźć żadnego, który działałby bezpośrednio z abstrakcyjnym drzewem składni. Dlaczego? Pytam, ponieważ kiedy odkryłem, że każdy kompilator ma fazę w procesie kompilacji, w której analizuje kod źródłowy …
Rozejrzałem się w sieci, szukając odpowiedzi na to pytanie i wydaje się, że wszyscy domyślnie znają odpowiedź oprócz mnie. Przypuszczalnie dzieje się tak, ponieważ jedynymi osobami, które się opiekują, są osoby z wyższym wykształceniem na ten temat. Z drugiej strony zostałem wrzucony w głęboki koniec za zadanie do szkoły średniej. …
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.