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