~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ F488952621A74955E47CA4DC70248224__1706815140 ✰
Заголовок документа оригинал.:
✰ Function-level programming - Wikipedia ✰
Заголовок документа перевод.:
✰ Программирование на функциональном уровне — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Function-level_programming ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/f4/24/f488952621a74955e47ca4dc70248224.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/f4/24/f488952621a74955e47ca4dc70248224__translat.html ✰
Дата и время сохранения документа:
✰ 16.06.2024 09:21:52 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 1 February 2024, at 22:19 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Программирование на функциональном уровне — Википедия Jump to content

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

Из Википедии, бесплатной энциклопедии

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

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

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

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

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

Введение [ править ]

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

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

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

функциональному программированию Контраст

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

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

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

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

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

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

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

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

Примеры языков [ править ]

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

См. также [ править ]

Ссылки [ править ]

  1. ^ Бэкус, Джон (1978). «Можно ли программирование освободить от стиля фон Неймана?: Функциональный стиль и его алгебра программ» (PDF) . Коммуникации АКМ . 21 (8): 613–641. дои : 10.1145/359576.359579 .
  2. ^ Худак, Пол (1989). «Концепция, эволюция и применение языков функционального программирования». Обзоры вычислительной техники ACM . 21 (3): 359–411. дои : 10.1145/72551.72554 . S2CID   207637854 .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: F488952621A74955E47CA4DC70248224__1706815140
URL1:https://en.wikipedia.org/wiki/Function-level_programming
Заголовок, (Title) документа по адресу, URL1:
Function-level programming - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)