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

Реализация рекурсивного вызова, функция трассировки в Лиспе

Основные задачи для функционального и логического программирования. | Основные примитивы Лиспа для обработки списка. | Рекурсия по аргументу, пример | Генератор в программировании, понятие вычислительного контекста | Теория Тьюринга, значение для логического программирования. | Сопоставление в логическом программировании | Переменная, конкретизация переменных | Процедура вывода решения, как процедура доказательства теоремы | Определение оператора и его свойства. | Запись списка в виде структуры |


Читайте также:
  1. Lt;variant>функция
  2. Абсолютное здоровье — функция оптимизма
  3. Автокорреляционная функция
  4. Автокорреляционная функция.
  5. Адаптивному физическому воспитанию присуща основная функция
  6. Анализ альтернатив, выбор, реализация и оценка стратегии
  7. Б.2 В.19 Функция Грина. Функция Грина для внутренней задачи Дирихле.

В ходе выполнения рекурсия функций вызывает независимую активацию этой функции. Фреймом активации называется совокупность всех данных, необходимых для одной а активации функции. Фрейм активации содержит независимые копии всех локальных переменных и всех формальных параметров функции. В ходе выполнения рекурсивного процесса образуется несколько одновременно существующих активаций: каждая имеет свой фрейм. В выполнении рекурсивного процесса выделяют следующие стадии:

1. Стадия порождения рекурсивных вызовов: характеризуется тем, что процесс выполнения доходит до рекурсивной ветви, запоминает существующий на данный момент фрейм активации и запускает процесс выполнения этой же функции с новым фреймом активации;

2. Стадия возврата: начинается, когда в какой-либо i-й ветви будут выполнены какие-то начальные условия. Функция возвращает значение в предшествующий процесс и так до тех пор, пока не будут выполнены все отложенные процессы. Значение 1-го процесса – значение 1-ой функции. За ходом выполнения рекурсивных функций можно следить с помощью трассировки.

За выполнением рекурсивного процесса можно проследить введением трассировки рекурсивной функции. Для управления трассировкой в Лиспе введены функции TRACE и UNTRACE.

>(TRACE function)

FUNCTION

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

>(UNTRACE function); отключение трассировки

 


Дата добавления: 2015-07-19; просмотров: 110 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Косвенная рекурсия, пример| Применяющий функционал Лиспа

mybiblioteka.su - 2015-2024 год. (0.005 сек.)