История изменений
Исправление
MOPKOBKA,
(текущая версия)
:
Как только кто-нибудь напишет оптимизатор, который AST с рекурсией преобразует в AST с хвостовой, так сразу.
А почему не написали? А где то написали? Выглядит не слишком сложно, относительно сложности некоторых других оптимизаций, но в ФП коде полезно.
Интересно еще, применима ли где то оптимизация нерекурсивных вызовов, она производится совсем просто, выносом постдействий из А в вызываемую функцию Б, но тогда ее можно вызывать только из функции А, хотя можно вставить аргумент и таблицу переходов, что бы постдействия выбирались на основе теневого аргумента. Но учитывая скорость стека, и вложенность типичной программы это не выглядит полезным.
Исправление
MOPKOBKA,
:
Как только кто-нибудь напишет оптимизатор, который AST с рекурсией преобразует в AST с хвостовой, так сразу.
А почему не написали? А где то написали? Выглядит не слишком сложно, относительно сложности некоторых других оптимизаций.
Интересно еще, применима ли где то оптимизация нерекурсивных вызовов, она производится совсем просто, выносом постдействий из А в вызываемую функцию Б, но тогда ее можно вызывать только из функции А, хотя можно вставить аргумент и таблицу переходов, что бы постдействия выбирались на основе теневого аргумента. Но учитывая скорость стека, и вложенность типичной программы это не выглядит полезным.
Исправление
MOPKOBKA,
:
Как только кто-нибудь напишет оптимизатор, который AST с рекурсией преобразует в AST с хвостовой, так сразу.
А почему не написали? А где то написали? Выглядит не слишком сложно.
Интересно еще, применима ли где то оптимизация нерекурсивных вызовов, она производится совсем просто, выносом постдействий из А в вызываемую функцию Б, но тогда ее можно вызывать только из функции А, хотя можно вставить аргумент и таблицу переходов, что бы постдействия выбирались на основе теневого аргумента. Но учитывая скорость стека, и вложенность типичной программы это не выглядит полезным.
Исходная версия
MOPKOBKA,
:
Как только кто-нибудь напишет оптимизатор, который AST с рекурсией преобразует в AST с хвостовой, так сразу.
А почему не написали? А где то написали? Выглядит не слишком сложно.