@ikanaide
студент-математик

Задан файл с функциями определить какие из них рекурсивные?

Всем привет. Столкнулся со следующей проблемой : нужно написать парсер, который будет искать рекурсивные функции в файле. В частности, нужен алгоритм проверки того, что функция является рекурсивной.
  • Вопрос задан
  • 127 просмотров
Решения вопроса 3
ApeCoder
@ApeCoder
Найти или написать парсер
Пройтись по AST
Найти те определения функций, которые включают вызовы себя
Ответ написан
Комментировать
GavriKos
@GavriKos
Начать строить дерево вызовов для каждой функции. Как только при добавлении очередного вызова где то выше по дереву уже есть вызов этой же функции - вот вам и рекурсия.
Ответ написан
Комментировать
irishmann
@irishmann
Научись пользоваться дебаггером
Читаем все функции в массив, где ключом будет название функции, а значением - тело функции.
Перебираем этот массив, проверяя следующим образом:
Если название функции содержится в теле - то это рекурсия, пишем этот элемент в другой массив
Иначе - рекурсии нет, проверяем следующий элемент.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы