IPB
ЛогинПароль:

> Оптимизация концевой рекурсии, Есть такой компилер для паскаля?
hardcase
сообщение 16.05.2007 23:15
Сообщение #1


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Недавно увлекся функциональным программированием, конкретный язык - Nemerle. Язык интересен тем, что все синтаксические конструкции (в терминах Nemerle - макросы) выражены через рекурсию и сопоставление с образцом.

Существует такое понятие, как "концевая рекурсия":
Код

procedure Proc();
begin
...// некий код
   Proc();
end;
Т.е. это рекуррентый вызов, после которого происходит возврат управления. Многие компиляторы с функциональных языков (для Nemerle - это вообще стандарт) оптимизируют этот вызов, устанавливая новые значения локалньым параметрам и передавая управление на begin, тем самым не создавая новой активации подпрограммы на стеке.

Вот задался вопросом - существует ли компилер с подобной фишкой для Паскаля?


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 17.05.2007 1:35
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Забавно, действительно в этом случае локальные параметры не нужны больше.
Я думаю, этот вопрос следует задать непосредственно писателям FPC и всем остальным производителям.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 27.07.2025 4:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"