Аппликативный подход к программированию

Аппликативный подход к программированию

Аппликативный подход к программированию

Аппликативный подход к написанию программы состоит в систематическом осуществлении применения одного объекта к другому. Результатом такого применения вновь является объект, который может участвовать в применениях как в роли функции, так и в роли аргумента и т. д. Это делает запись программы математически ясной. Тот факт, что функция обозначается выражением, свидетельствует о возможности использования значений-функций на равных правах с прочими объектами. Следовательно, значения-функции можно передавать как аргументы, либо возвращать как результат вычисления других функций. Конструкции аппликативных, или функциональных языков программирования, в целом отличает простота исходных посылок. Их базовыми строительными блоками являются представления о выражении и функции, а все прочие понятия являются производными и вводятся шаг за шагом, что придаёт конструктивный стиль самому процессу программирования.

Содержание

Аппликативный язык программирования

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

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

Аппликативный компьютинг

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

Компьютинг

Наиболее фундаментальным понятием в компьютерных науках — англ. computer science, -- считается вычисление, выполняемое на компьютере — компьютинг (англ. computing). Вычислением считается множество преобразований, которые «механически» выполняются применением конечного числа заранее определенных правил. Вычисление выполняется на формализованных символьных данных — информации, — представляющих, например, числа (числовые вычисления), математические выражения (формальные вычисления/преобразования), данные (извлечение из базы данных ответа на запрос), метаданные (изменение «знаний»). Для всех этих вычислений присущим оказывается дискретный характер данных — информация оказывается конечной, — вместе с механическим, или рутинным способом применения правил, в соответствии с которыми вычисления выполняются. Вполне естественной представляется формализация, базирующаяся на идее объектов, для манипулирования которыми строится специальное средство — иллативная логика.

Определение компьютинга

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

Компьютинг, область знаний

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

Дисциплина компьютинга

Иногда используется более узкое толкование термина компьютинг, приведенное в отчете ACM 1989 г. Компьютинг как дисциплина[5]:

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

См. также

Ссылки

  1. Applicative Programming with Effects (in Haskell, 2008) by Ross Paterson
  2. Пантелеев А. Г. Об интерпретаторе с языка Лисп для ЕС ЭВМ. — Программирование, 1980, No 3, с. 86-87
  3. The Joint Task Force for Computing Curricula 2005. Computing Curricula 2005: The Overview Report (pdf)
  4. Curricula Recommendations Software Engineering SE 2004: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering
  5. Computing as a Discipline (pdf)

Литература

  • Sabry A. What is a Purely Functional Language?. — Journal of Functional Programming, 1998, Vol. 8, No 1, pp. 1-22
  • Peyton Jones S.L. The implementation of functional programming languages. — N.Y.: Prentice Hall International, 1987. — 445~p. [1]
  • Вольфенгаген В. Э. Методы и средства вычислений с объектами. Аппликативные вычислительные системы. — М.: JurInfoR Ltd., АО «Центр ЮрИнфоР», 2004. — xvi+789 с ISBN 5-89158-100-0.

Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "Аппликативный подход к программированию" в других словарях:

  • Карри, Хаскелл — Брукс (12 сентября 1900 1 сентября 1982) американский математик и логик. Программа его исследований[1] способствовала становлению конструктивного подхода к выработке оснований математики. Существенно повлиял на развитие логики, дав начало логике… …   Википедия

  • Карри Х. — Карри, Хаскелл Брукс (12 сентября 1900 1 сентября 1982) американский математик и логик. Программа его исследований[1] способствовала становлению конструктивного подхода к выработке оснований математики. Существенно повлиял на развитие логики, дав …   Википедия

  • Карри Хаскелл — Карри, Хаскелл Брукс (12 сентября 1900 1 сентября 1982) американский математик и логик. Программа его исследований[1] способствовала становлению конструктивного подхода к выработке оснований математики. Существенно повлиял на развитие логики, дав …   Википедия

  • Хаскелл Карри — Карри, Хаскелл Брукс (12 сентября 1900 1 сентября 1982) американский математик и логик. Программа его исследований[1] способствовала становлению конструктивного подхода к выработке оснований математики. Существенно повлиял на развитие логики, дав …   Википедия

  • Языки программирования — Язык программирования  формальная знаковая система, предназначенная для записи программ. Программа обычно представляет собой некоторый алгоритм в форме, понятной для исполнителя (например, компьютера). Язык программирования определяет набор… …   Википедия

  • Curry — Семантика: мультипарадигменный: функциональный, логический Curry язык Curry является универсальным языком программирования, в котором объединены две парадигмы декларативного программирования функциональная и логическая. Более того, в этом языке… …   Википедия

  • Unlambda — Unlambda  минимальный функциональный язык программирования, придуманный Дэвидом Мэдором (David Madore). Он основан на комбинаторной логике, варианте Лямбда исчисления, который опускает оператор lambda. Язык полагается в основном на две… …   Википедия

  • Суперкомбинаторы — Суперкомбинаторы  это объекты, инвариантные относительно среды вычислений, которые формируются динамически, в ходе выполнения программы. Они устанавливают чисто объектную систему программирования, встроенную в комбинаторную логику. Тем самым …   Википедия

  • Суперкомбинатор — Суперкомбинатор  объект, инвариантный относительно среды вычислений, который формируется динамически, в ходе выполнения программы. Суперкомбинаторы устанавливают чисто объектную систему программирования, встроенную в комбинаторную логику.… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»