Pytania otagowane jako language-design

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


2
Jak łatwe powinno być korzystanie z ram rozwoju języka?
Jest to część serii pytań, które koncentrują się na projekcie o nazwie Projekt abstrakcji, którego celem jest wyodrębnienie pojęć używanych w projektowaniu języka w formie frameworka. Kolejną związaną z tym stronę związaną z typowaniem strukturalnym można obejrzeć tutaj . Meta-temat związany z zapytaniem dotyczącym frameworka i odpowiedniego miejsca do opublikowania …

5
Funkcje pierwszej klasy
Zacząłem poważnie przyglądać się Lispowi w ten weekend (tzn. Uczyłem się tylko Lisp i nie wracam do projektów w C #) i muszę powiedzieć, że to uwielbiam. Zajmowałem się innymi językami funkcjonalnymi (F #, Haskell, Erlang), ale nie czułem remisu, który dał mi Lisp. Teraz, gdy kontynuuję naukę Lisp, zacząłem …

1
statyczne globale i anonimowe przestrzenie nazw w C ++
Dlaczego C ++ wprowadził jakiekolwiek rozróżnienie między statycznymi globałami (powiązanie wewnętrzne) a symbolami w nienazwanej przestrzeni nazw (powiązanie zewnętrzne, ale w żaden sposób nie można odwoływać się do niego z zewnątrz), wprowadzając to drugie? Czy któryś z tych powodów jest nadal aktualny, czy też są nowe? Czy są jeszcze miejsca, …


1
Dlaczego Swift potrzebuje tabel świadków?
Próbuję przeczytać o szczegółach implementacji Swift, a jedną rzeczą, której nie mogę dopracować, są „tabele świadków”. Wygląda na to, że są one osobnym wskaźnikiem vtable używanym dla struktur. Ale dlaczego miałbyś tego potrzebować? Struktury są kopiowane według wartości, więc wiesz już w czasie kompilacji, jakiego typu są. Czy nie po …

1
Czy kontynuacje pierwszej klasy są przydatne w nowoczesnych obiektowych językach programowania?
Kontynuacje są niezwykle przydatne w funkcjonalnych językach programowania (np. ContMonada w Haskell), ponieważ pozwalają na prosty i regularny zapis kodu w stylu rozkazującym. Są one również przydatne w niektórych starszych językach imperatywnych, ponieważ można ich użyć do implementacji brakujących funkcji językowych (np. Wyjątków, coroutines, zielonych wątków). Ale dla współczesnego języka …

12
Dlaczego więcej języków nie ma możliwości porównania wartości z więcej niż jedną inną wartością? [Zamknięte]
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 6 lat temu . Rozważ następujące: if(a == b or c) W większości języków należy to zapisać …

3
Jak wdrożyć leniwą ocenę if ()
Obecnie implementuję ewaluator wyrażeń (wyrażenia jednowierszowe, takie jak formuły) w oparciu o: wprowadzone wyrażenie jest tokenizowane w celu oddzielenia literalnych boolanów, liczb całkowitych, dziesiętnych, ciągów, funkcji, identyfikatorów (zmiennych) Zaimplementowałem algorytm Shunting-yard (lekko zmodyfikowany do obsługi funkcji o zmiennej liczbie argumentów), aby pozbyć się nawiasów i uporządkować operatorów z przyzwoitym pierwszeństwem …



5
Budowanie DSL: Skrypty na języku ogólnego przeznaczenia czy samodzielne?
Zastanawiam się nad stworzeniem języka specyficznego dla domeny, aby uprościć dany, niejasny model programowania. Część debaty dotyczy tego, czy zbudować go (jako skrypt) na istniejącym języku / środowisku wykonawczym (np. Java), czy też uczynić go samodzielnym (własny kompilator, & c). Ci z was, którzy mają doświadczenie w projektowaniu DSL, czy …


1
Nazwa techniki wnioskowania argumentów typu parametru typu?
Konfiguracja: Załóżmy, że mamy typ o nazwie, Iteratorktóry ma parametr typu Element: interface Iterator<Element> {} Następnie mamy interfejs, Iterablektóry ma jedną metodę, która zwróci Iterator. // T has an upper bound of Iterator interface Iterable<T: Iterator> { getIterator(): T } Problem z Iteratorbyciem ogólnym jest taki, że musimy dostarczyć mu …

4
Czy posiadanie funkcji języka generatora, takiego jak „fed”, to dobry pomysł?
PHP, C #, Python i prawdopodobnie kilka innych języków ma yieldsłowo kluczowe, które służy do tworzenia funkcji generatora. W PHP: http://php.net/manual/en/language.generators.syntax.php W języku Python: https://www.pythoncentral.io/python-generators-and-yield-keyword/ W języku C #: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/ke words / yield Obawiam się, że jako funkcja / funkcja językowa yieldłamie niektóre konwencje. Jednym z nich jest „pewność”. Jest …

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.