Конкатенативный язык программирования

редактировать
Тип языка программирования

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

Содержание
  • 1 Пример
  • 2 Свойства
  • 3 Реализации
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
Пример

Например, последовательность операций на прикладном языке, подобная следующей:

y = foo (x) z = bar (y) w = baz (z)

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

foo bar baz

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

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

Большая часть Первоначальная работа по теории конкатенативного языка была проведена Манфредом фон Тун.

Свойства

Свойства конкатенативных языков являются результатом их композиционного синтаксиса и семантики:

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

Первый конкатенативный языком программирования был Forth, хотя Joy был первым языком, называвшим себя конкатенативным. Другие конкатенативные языки: Factor, Onyx, PostScript и RPL.

Большинство существующих конкатенативных языков основаны на стеке ; это не требование, и были предложены другие модели. Конкатенативные языки в настоящее время используются для встроенного, настольного и веб-программирования, как целевые языки, а также для исследовательских целей.

Большинство конкатенативных языков динамически типизированы. Исключения включают статически типизированный язык Cat.

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-15 08:46:19
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте