Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Реализация рекурсии






, причем и

1)

Описание функции в общем случае " пассивно". Для начала вычислений в программе должно быть обращение к процедуре или функции, в котором обязательно указываются условия решения этой задачи с помощью вызываемой функции. Условия определяются значением фактических параметров при вызове процедуры или функции.

При реализации процедур или функций код этих процедур (функций) размещается в оперативной памяти, т.е к моменту обращения к нему, он загружен в память.

При компиляции процедуры необходимо решить один важный вопрос: как быть с ее локальными переменными и параметрами, передаваемыми по значению? Есть два варианта:

1. Локальные данные, используемые в подпрограмме, размещаются в памяти статически, это означает, что и объем памяти, необходимый для их размещения, и адреса всех констант и переменных определяются еще на этапе трансляции. Преимущество такого способа в том, что не тратится время на выделение памяти. Однако, при таком распределении памяти, возникают проблемы с реализацией рекурсии, т.к при каждом вызове мы должны хранить свои копии локальных данных.

2. Динамическое распределение памяти, при таком распределении, память для локальных данных выделяется при вызове процедуры или функции. Такая процедура называется реинтерабельной. Код такой процедуры называют чистым кодом.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.