/ / Кои съществуващи езикови функции са най-трудни за изпълнение и защо? - езиково-агностичен, езикови характеристики, изпълнение

Кои съществуващи езикови функции са най-трудно приложими и защо? - език-агностик, езикови характеристики, внедряване

Гледайки някои езикови функции, понякога се чудя как на земята някой би внедрил подобна функционалност. Така че въпросът ми е кой от многобройните съществуващ езикови характеристики са най-трудното за изпълнение? Обяснение защо е така е най-добре дошло (може би дори се изисква?).

За да поддържате реда, моля само една функция на публикация.

Отговори:

4 за отговор № 1

MHMH - не е ли попитано преди това?

Ефективно боравене със затваряне. Тъй като затварянията се използват в Lisp и Smalltalk (наричани там "Block") МНОГО по-често, отколкото в почти всяко друго програмиранеезик, внедряването трябва да бъде много бързо. Така че разпределението на стека е това, което искаме за скорост. Тъй като "истинските" затваряния могат да надживеят своята определяща рамка за стека на метод, трябва да се внимава да ги извадите от стека, ако е необходимо. Затварянията са полезни навсякъде: обратни обаждания, протоколи за изброяване / събиране, longjumps, опашки за екшън работници, протоколи за наблюдение, забавена оценка (фючърси и мързеливи) и много други. BTW: JavaScript също поддържа затваряния!


2 за отговор № 2

Дори най-странните и сложни езикови функции, като C ++ шаблони, всъщност са сравнително лесни за изпълнение. Това, което наистина е трудно, е да се приложат ефективно тези функции.

За мен най-трудната функция беше къриML-подобни езици. Тривиално за ad hoc внедряване, е доста сложно, ако искате то да бъде ефективно на склад хардуер. Вижте всяко прилично изпълнение на ML за подробности.