Программирование на функциональном уровне

редактировать
"функциональный уровень" перенаправляется сюда. Чтобы узнать о термине в оценках психического здоровья, см. Глобальная оценка функционирования. Не путать с функциональным программированием.
Парадигмы программирования

В информатике программирование на функциональном уровне относится к одной из двух противоположных парадигм программирования, определенных Джоном Бэкусом в его работе над программами как математическими объектами, а другая - программированием на уровне значений.

В своей лекции 1977 года по Премии Тьюринга Бэкус изложил то, что он считал необходимостью перехода к другой философии в дизайне языков программирования:

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

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

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

СОДЕРЖАНИЕ
  • 1 Введение
  • 2 В отличие от функционального программирования
  • 3 Примеры языков
  • 4 См. Также
  • 5 ссылки
  • 6 Внешние ссылки
Вступление

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

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

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

В отличие от функционального программирования

Когда Бэкус изучил и опубликовал свой стиль программирования на функциональном уровне, его сообщение было в основном неправильно понято как поддержка традиционных языков стиля функционального программирования вместо его собственного FP и его преемника FL.

Бэкус называет функциональное программирование прикладным программированием ; его программирование на уровне функций - это особый, ограниченный тип.

Ключевым отличием от функциональных языков является то, что язык Бэкуса имеет следующую иерархию типов:

  • атомы
  • функции, которые переводят атомы в атомы
  • Функции высшего порядка (которые он называет "функциональными формами"), которые превращают одну или две функции в функции.

... и единственный способ генерировать новые функции - использовать одну из фиксированных функциональных форм: вы не можете создать свою собственную функциональную форму (по крайней мере, не в FP; вы можете в FFP ( Formal FP )).

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

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

Свободный от значений стиль ФП тесно связан с эквациональной логикой декартовой замкнутой категории.

Примеры языков
Основная категория: языки функционального уровня

Каноническим языком программирования функционального уровня является FP. Другие включают FL и J.

Смотрите также
использованная литература
внешние ссылки
Последняя правка сделана 2023-04-12 10:25:47
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте