Программирование ARM Что означает "leaf" и "non-leaf" для функций? Sat, December 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Что означает "leaf" и "non-leaf" для функций? Печать
Добавил(а) microsin   

Процедура (или функция) считается leaf, если она не вызывает никакие другие процедуры или функции. И наборот, non-leaf функцией будет считаться та функция, которая вызывает другую подпрограмму/функцию. Таким образом, все рекурсивные функции будут non-leaf функциями.

Появление такой терминологии leaf/non-leaf связано с некоторым небольшим усложнением вызова для non-leaf функции для определенных архитектур (например MIPS). Это связано с тем, что non-leaf функция должна сохранить свой адрес возврата перед вызовом другой процедуры/функции. Для leaf-функции сохранять свой адрес возврата не требуется.

[Ссылки]

1. Leaf and Non-Leaf procedure in MIPS site:imvoid.wordpress.com.

 

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


Защитный код
Обновить

Top of Page