Функциона́льное программи́рование — парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних.
Сэр Чарльз Э́нтони Ри́чард Хо́ар — английский учёный, специализирующийся в области информатики и вычислительной техники. Наиболее известен как разработчик алгоритма «быстрой сортировки» (1960), на сегодняшний день являющегося наиболее популярным алгоритмом сортировки.
Предметно-ориентированный язык — компьютерный язык, специализированный для конкретной области применения. Построение такого языка и/или его структура данных отражают специфику решаемых с его помощью задач. Является ключевым понятием языково-ориентированного программирования.
Уче́бный язы́к программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как BASIC и Паскаль. Из разработанного для обучения языка ABC вырос Python. Популярным языком, разработанным специально для образования является LOGO. Специально для российских школ разработана языковая среда КуМир. Набирает популярность созданный в Массачусетском технологическом институте язык визуального программирования Scratch и тому подобные среды программирования.
GHC — один из самых мощных и развитых компиляторов функционального языка программирования Haskell, разрабатывается под координацией лаборатории университета Глазго; ключевые разработчики — Саймон Пейтон-Джонс и Саймон Марлоу. Свободно распространяется под модифицированной лицензией BSD; работает на большинстве популярных Unix-систем и входит в большинство дистрибутивов Linux, есть версии для Windows и macOS.
C-- — переносимый язык программирования низкого уровня, используемый как промежуточное представление для сверхвысокоуровневых языков. Создан во второй половине 1990-х годов исследователями функционального программирования Пейтоном-Джонсом и Рэмси Норманом. Основная отличительная особенность в сравнении с различными вариантами байткодов в том, что сгенерированный результат на C-- является человекочитаемым — текстом на языке с си-подобным синтаксисом.
Обобщённый алгебраический тип да́нных — один из видов алгебраических типов данных, который характеризуется тем, что его конструкторы могут возвращать значения не своего типа, связанного с ним. Сконструированы под влиянием работ об индуктивных семействах в среде исследователей зависимых типов.
Суперкомбинатор — объект, инвариантный относительно среды вычислений, который формируется динамически, в ходе выполнения программы. Суперкомбинаторы устанавливают чисто объектную систему программирования, встроенную в комбинаторную логику. Тем самым непосредственно удовлетворяется потребность в денотационном вычислении инструкций языков программирования, когда объектами выражается функциональный смысл программы. Существенно, что вычисление начинается с некоторого заранее известного набора инструкций. В процессе вычисления значения программы динамически возникают заранее неизвестные, но необходимые по ходу дела инструкции, которые дополнительно фиксируются в системе программирования.
Аппликативное программирование — один из видов декларативного программирования, в котором написание программы состоит в систематическом осуществлении применения одного объекта к другому. Результатом такого применения вновь является объект, который может участвовать в применениях как в роли функции, так и в роли аргумента и так далее. Это делает запись программы математически ясной. Тот факт, что функция обозначается выражением, свидетельствует о возможности использования значений-функций — функциональных объектов — на равных правах с прочими объектами, которые можно передавать как аргументы, либо возвращать как результат вычисления других функций.
Cat — функциональный стековый язык программирования вдохновлен языком программирования Joy, от которого он отличается тем, что обеспечивает статическую типизацию с выводом типов. Это один из подходов к решению проблемы надёжности, существующей в стековых языках Так же включает макроязык MetaCat, позволяющий расширение языка Cat путём переопределения термов.
В компьютерных технологиях, программная транзакционная память представляет собой механизм управления параллелизмом, аналогичный механизму транзакций баз данных для управления доступом к совместно используемой памяти в параллельных вычислениях. Это альтернатива для синхронизации на основе блокировки. Транзакция в этом контексте является частью кода, который выполняет считывание и запись в разделяемую память. Считывание и запись логически происходит в единичный момент времени, а промежуточные состояния невидимы для других (результативных) транзакций. Идея обеспечения транзакций аппаратной поддержкой зародилась в 1986 году в работе и патенте Тома Найта. Идея получила публичное освещение благодаря Морису Херлихи и Элиоту Моссу. В 1995 году Нир Шавит и Дэн Тойту дополнили эту идею до программной транзакционной памяти (SТМ). STM по-прежнему находится в центре интенсивных исследований; возрастает её поддержка для практических реализаций.
Языково-ориентированное программирование (ЯОП), также Расходящаяся разработка, также метаязыковая абстракция, также Разработка, опирающаяся на предметно-специфичный язык — парадигма программирования, заключающаяся в разбиении процесса разработки программного обеспечения на стадии разработки предметно-ориентированных языков (DSL) и описания собственно решения задачи с их использованием. Стадии могут вестись последовательно или параллельно, однократно или рекурсивно; DSL могут быть реализованы зависимо или независимо от базового языка и иметь одну или множество реализаций.
Параметрический полиморфизм в языках программирования и теории типов — свойство семантики системы типов, позволяющее обрабатывать значения разных типов идентичным образом, то есть исполнять физически один и тот же код для данных разных типов.
Leksah — интегрированная среда разработки, написанная на Haskell и предназначенная для разработки на Haskell. Свободно распространяется на условиях лицензии GPL v. 2.0.
Concurrent ML (CML) — статически типизированный язык конкурентного программирования высшего порядка, встраиваемый в язык общего назначения Standard ML.
Frege — функциональный язык программирования, близкий к Haskell, реализованный поверх JVM и позволяющий использовать любые Java-библиотеки.
UNCOL — предложенный универсальный промежуточный язык для компиляторов представленный Мелвином Э. Конуэем в 1958 году. Он никогда не был полностью определён или реализован; во многих отношениях он был скорее концептом, чем языком.
Ральф Леммель — немецкий учёный, профессор Университета Кобленц-Ландау, декан факультета информатики. Входит в список самых плодовитых авторов научных статей по версии DBLP как имеющий более 160 опубликованных работ. Индекс Хирша — 39.
Prentice Hall — крупное американское издательство, специализирующееся на образовательной тематике. Принадлежит компании Savvas Learning Company. Публикует печатные и электронные издания для рынка высшего и среднего образования, монографии для специалистов, фантастику. Prentice Hall также распространяет свои технические издания через электронную справочную службу Safari Books Online.