РЕФАЛ

РЕФАЛ
Семантика: функциональный
Тип исполнения: зависит от реализации
Появился в: 1966 г.
Автор(ы): Валентин Турчин
Типизация данных: бестиповый
Основные реализации:
Диалекты: РЕФАЛ-2, РЕФАЛ-5, РЕФАЛ+
Создан под влиянием: не известно
Оказал влияние на: нет или не известно

РЕФАЛ (РЕкурсивных Функций АЛгоритмический) — один из старейших функциональных языков программирования. ориентированный на так называемые «символьные преобразования»: обработку символьных строк (например, алгебраические выкладки); перевод с одного языка (искусственного или естественного) на другой; решение проблем, связанных с искусственным интеллектом. Соединяет в себе математическую простоту с практической ориентацией на написание больших и сложных программ.

Отличительной чертой языка является использование сопоставления с образцом как основного способа определения функций.

История

Первая версия РЕФАЛа была создана в 1966 году Валентином Турчиным в качестве метаязыка для описания семантики других языков. Впоследствии, в результате появления достаточно эффективных реализаций на ЭВМ, он стал находить практическое использование в качестве языка программирования.

В настоящее время основными диалектами языка являются РЕФАЛ-2 (1970-е), РЕФАЛ-5 (1985) и РЕФАЛ+ (1990), отличающиеся друг от друга деталями синтаксиса и набором «дополнительных средств», расширяющих первоначальный вариант.

Примеры программ

Следующая программа на диалекте РЕФАЛ-5 обращает и печатает подаваемую на вход строку данных:

$ENTRY Go
{
     = <Prout <Pal <Card>>>;
}

Pal
{
     (e.1) = e.1;
     (e.1) s.2 e.3 = <Pal (s.2 e.1) e.3>;
     e.1 = <Pal () e.1>;
}

Следующая программа на диалекте РЕФАЛ-5 получает на входе строку данных, представляющую собой десятичное представление некоторого натурального числа N, после чего вычисляет и печатает число Фибоначчи с номером N:

$ENTRY Go
{
     = <Prout <Symb <FN <Numb <Card>>>>;
}

FN
{
     0 (s.1 s.2) = s.1;
     s.1 (s.2 s.3) = <FN <Sub s.1 1> (s.3 <Add s.2 s.3>)>;
     s.1 = <FN s.1 (0 1)>;
}

Ссылки


 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home