Pytania otagowane jako language-design

Pytania dotyczące projektowania i struktury języków programowania.

4
Czy zbieranie śmieci jest potrzebne do wdrożenia bezpiecznych zamknięć?
Niedawno uczestniczyłem w kursie internetowym na temat języków programowania, w którym zaprezentowano między innymi zamknięcia. Zapisuję dwa przykłady zainspirowane tym kursem, aby podać kontekst, zanim zadam pytanie. Pierwszym przykładem jest funkcja SML, która tworzy listę liczb od 1 do x, gdzie x jest parametrem funkcji: fun countup_from1 (x: int) = …

7
Czy operatorzy są bardziej czytelni niż słowa kluczowe lub funkcje? [Zamknięte]
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą fachową, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …


6
Czy można zaprojektować język, w którym nie występują błędy składniowe? [Zamknięte]
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą fachową, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …

11
Zasada KISS zastosowana do projektowania języka programowania?
KISS („zachowaj to proste, głupie” lub „utrzymaj to proste głupie”, patrz np. Tutaj ) jest ważną zasadą w tworzeniu oprogramowania, nawet jeśli najwyraźniej wywodzi się z inżynierii. Cytowanie z artykułu w Wikipedii: Najlepszym przykładem tej zasady jest historia, w której Johnson przekazał zespołowi inżynierów garść narzędzi, z wyzwaniem, że projektowany …

1
Dlaczego dołączanie do listy w Scali ma złożoność czasową O (n)?
Właśnie przeczytałem, że czas wykonania operacji dołączania dla List(: +) rośnie liniowo wraz z rozmiarem pliku List. Dołączanie do Listwydaje się dość powszechną operacją. Dlaczego idiomatycznym sposobem na to jest przygotowanie komponentów, a następnie odwrócenie listy? Nie może to być również błąd projektu, ponieważ implementacja może zostać zmieniona w dowolnym …



2
Zalety i wady strukturyzacji całego kodu za pomocą klas i kompilacji do klas (np. Java)
Edycja: mój język pozwala na wielokrotne dziedziczenie, w przeciwieństwie do Java. Zacząłem projektować i rozwijać własny język programowania do celów edukacyjnych, rekreacyjnych i potencjalnie użytecznych. Na początku postanowiłem oprzeć ją na Javie. Sugerowało to, że cały kod zostałby napisany w postaci klas, a kod kompiluje się w klasy, które są …

5
Zalety klasycznego OOP w porównaniu z językiem Go-like
Dużo myślałem o projektowaniu języka i o tym, jakie elementy byłyby konieczne dla „idealnego” języka programowania, a studiowanie Google Go skłoniło mnie do zakwestionowania wielu powszechnie znanej wiedzy. W szczególności Go wydaje się mieć wszystkie interesujące korzyści z programowania obiektowego bez faktycznej struktury języka zorientowanego obiektowo. Nie ma klas, tylko …



3
Dlaczego potrzebujesz „siebie”. w Pythonie, aby odwoływać się do zmiennych instancji?
Programuję w wielu językach, takich jak Java, Ruby, Haskell i Python. Muszę przełączać się między wieloma językami dziennie z powodu różnych projektów, nad którymi pracuję. Problem polega na tym, że często zapominam pisać selfjako pierwszy parametr w definicjach funkcji w Pythonie tak samo, jak w przypadku wywoływania metod na tym …

1
Czy jakieś znaczące rozszerzenia C obejmują typy liczb całkowitych, których zachowanie jest niezależne od wielkości słowa maszynowego
Interesującą cechą języka C w porównaniu z innymi językami jest to, że wiele jego typów danych opiera się na wielkości słowa architektury docelowej, a nie jest określanych w kategoriach bezwzględnych. Chociaż pozwala to na użycie języka do pisania kodu na maszynach, które mogą mieć trudności z niektórymi typami, bardzo utrudnia …


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.