Pull to refresh

Comments 4

Я эксперементировал с TCO (хвостовые вызовы, а не просто рекурсия) в чистом gcc.
Мне удалось заставить его оптимизировать вызов функции по указателю с передачей параметров через стек и непосредственный вызов с передачей через регистры. Но вызов по указателю с передачей в регистрах не получилось. Почему так и не разобрался.
Писал небольшой интерпретатор байт-кода, в котором каждая команда была функцией на C, а состояние жило в аргументах.
1. «выделение адреса функции (и связанных с ней переменных, например, структур) на стеке при каждом вызове» — корявый перевод. Не выделение, а размещение. Или выделение места для. Пока не прочитал оригинал, не мог понять, о чем речь.
Оригинал: www.viva64.com/en/b/0332

2. «не всегда возможна реализация хвостовых вызовов» — не всегда возможно иметь хвостовые вызовы. Слово «реализация» только запутывает и отсылает куда--то к особенностям компилятора.
Согласен. Спасибо. Прошу отписывать про неточности личными сообщениями.
Привет, а кто же тогда мне плюсики ставить будет? ;)
Sign up to leave a comment.