Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет qwerty ([info]qwerty)
@ 2020-05-29 14:31:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Компутерно-археологическое: 50 лет динамической компиляции
Динамическая компиляция оказалась даже древнее, чем я думал. За прошедшие 50 лет к этому добавились только конверсия активных контекстов вызовов и множественность одновременно существующих специализаций.


(Добавить комментарий)


[info]nashgold
2020-05-30 19:24 (ссылка)
Dynamic compilation originated with the Lisp.
Original Lisp implementation had dynamic macros (fexprs).
These allowed generating optimizing code on fly.
https://en.wikipedia.org/wiki/Fexpr

(Ответить) (Ветвь дискуссии)


[info]nashgold
2020-05-30 19:26 (ссылка)
Original Algol, BTW, had similar call-by-name semantics, allowing for some unusual optimizations.

Haskell also has semantics similar to call by name, but somewhat different.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]qwerty
2020-05-30 23:04 (ссылка)
Для передачи параметра "по имени" динамической компиляции не нужно. Такая передача реализовалась при помощи заппроцедуривания вычисления параметра, см. thunk.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]nashgold
2020-05-30 23:29 (ссылка)
That depends on the implementation. FEXPR macros demanded "thunks" to be in SEXP format.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]qwerty
2020-05-31 00:16 (ссылка)
О чем речь? В обсуждаемом Алголе-60 макросов не было.

(Ответить) (Уровень выше)