Jump to content

Формализм Бёрда – Меертенса

(Перенаправлено со Сквиггола )

Формализм Бёрда -Меертенса ( BMF ) представляет собой расчет для получения программ на основе спецификаций программ условиях функционального программирования ) посредством процесса эквациональных рассуждений. Он был разработан Ричардом Бёрдом и Ламбертом Меертенсом в рамках их работы в рамках Рабочей группы 2.1 ИФИП .

В публикациях его иногда называют BMF, как отсылку к форме Бэкуса-Наура . В шутку его также называют Squiggol , как дань уважения ALGOL , который также входил в компетенцию WG 2.1, а также из-за используемых в нем «волнистых» символов. Менее используемый вариант имени, но фактически предложенный первым — SQUIGOL .Мартин и Нипкоу предоставили автоматизированную поддержку для проверки разработки Squiggol, используя Larch Prover . [1]

Основные примеры и обозначения

[ редактировать ]

Map — это хорошо известная функция второго порядка, которая применяет заданную функцию к каждому элементу списка; в БМФ написано :

Аналогично, сокращение — это функция, которая сворачивает список в одно значение путем многократного применения бинарного оператора . Написано/в BMF.принимая в качестве подходящего бинарного оператора с нейтральным элементом e мы имеем

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

Вывод алгоритма Кадане [2]

Аналогично, написав функционального состава и для конъюнкции легко написать функцию, проверяющую, что все элементы списка удовлетворяют предикату p , просто как :

Берд (1989) преобразует неэффективные, простые для понимания выражения («спецификации») в эффективные сложные выражения («программы») посредством алгебраических манипуляций. Например, спецификация " «является почти дословным переводом задачи о максимальной сумме сегментов , [6] но запуск этой функциональной программы в списке размера потребуется время в общем. Исходя из этого, Берд вычисляет эквивалентную функциональную программу, работающую во времени. , и по сути является функциональной версией алгоритма Кадане .

Вывод показан на рисунке, с вычислительными сложностями [7] выделены синим цветом, а юридические применения обозначены красным.Примеры законов можно открыть, нажав на [показать] ; они используют списки целых чисел, сложение, минус и умножение. Обозначения в статье Берда отличаются от использованных выше: , , и соответствуют , и обобщенная версия выше, соответственно, в то время как и вычислить список всех префиксов и суффиксов своих аргументов соответственно. Как и выше, композиция функций обозначается « ", который имеет наименьший приоритет привязки . В примерах списки раскрашиваются в зависимости от глубины вложенности; в некоторых случаях новые операции определяются ad hoc (серые прямоугольники).

Лемма о гомоморфизме и ее приложения к параллельным реализациям.

[ редактировать ]

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

Лемма о гомоморфизме утверждает, что h является гомоморфизмом тогда и только тогда, когда существует оператор и функция f такая, что .

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

См. также

[ редактировать ]
  1. ^ Урсула Мартин ; Тобиас Нипков (апрель 1990 г.). «Автоматизация Сквиггола» . В Манфреде Брое ; Клифф Б. Джонс (ред.). Учеб. IFIP WG 2.2/2.3 Рабочая конференция по концепциям и методам программирования . Северная Голландия. стр. 233–247.
  2. ^ Берд 1989 , раздел 8, стр.126р.
  3. ^ Jump up to: а б Берд 1989 , разд.2, стр.123л.
  4. ^ Берд 1989 , разд.7, лем.1, стр.125л.
  5. ^ Jump up to: а б Берд 1989 , разд.5, стр.124р.
  6. ^ Где , , и возвращает наибольшее значение, сумму и список всех сегментов (т.е. подсписков) данного списка соответственно.
  7. ^ Каждое выражение в строке обозначает исполняемую функциональную программу для вычисления максимальной суммы сегмента.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3467479776d459ee29f67d6ffee10628__1699449300
URL1:https://arc.ask3.ru/arc/aa/34/28/3467479776d459ee29f67d6ffee10628.html
Заголовок, (Title) документа по адресу, URL1:
Bird–Meertens formalism - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)