Гледайки някои езикови функции, понякога се чудя как на земята някой би внедрил подобна функционалност. Така че въпросът ми е кой от многобройните съществуващ езикови характеристики са най-трудното за изпълнение? Обяснение защо е така е най-добре дошло (може би дори се изисква?).
За да поддържате реда, моля само една функция на публикация.
Отговори:
4 за отговор № 1MHMH - не е ли попитано преди това?
Ефективно боравене със затваряне. Тъй като затварянията се използват в Lisp и Smalltalk (наричани там "Block") МНОГО по-често, отколкото в почти всяко друго програмиранеезик, внедряването трябва да бъде много бързо. Така че разпределението на стека е това, което искаме за скорост. Тъй като "истинските" затваряния могат да надживеят своята определяща рамка за стека на метод, трябва да се внимава да ги извадите от стека, ако е необходимо. Затварянията са полезни навсякъде: обратни обаждания, протоколи за изброяване / събиране, longjumps, опашки за екшън работници, протоколи за наблюдение, забавена оценка (фючърси и мързеливи) и много други. BTW: JavaScript също поддържа затваряния!
2 за отговор № 2
Дори най-странните и сложни езикови функции, като C ++ шаблони, всъщност са сравнително лесни за изпълнение. Това, което наистина е трудно, е да се приложат ефективно тези функции.
За мен най-трудната функция беше къриML-подобни езици. Тривиално за ad hoc внедряване, е доста сложно, ако искате то да бъде ефективно на склад хардуер. Вижте всяко прилично изпълнение на ML за подробности.