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

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

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

Семантика языка взаимосвязана с используемой вычислительной моделью . В настоящее время языки программирования в зависимости от применяемой вычислительной модели делятся на четыре основные группы:

  • Процедурные языки, которые представляют собой последовательность выполняемых операторов . Если рассматривать состояние ПК как состояние ячеек памяти, то процедурный язык – это последовательность операторов, изменяющих значение одной или нескольких ячеек. К процедурным языкам относятся FORTRAN, C, Ada, Pascal, Smalltalk и некоторые другие. Процедурные языки иногда также называются императивными языками. Код программы на процедурном языке может быть записан следующим образом:
оperator1; operator2; operator3;
function1(function2( function3(beginning_date)));
if condition1 then operator1; if condition2 then operator2; if condition3 then operator3;

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

Стандартизация языков программирования

Концепция языка программирования неотрывно связана с его реализацией. Для того чтобы компиляция одной и той же программы различными компиляторами всегда давала одинаковый результат, разрабатываются стандарты языков программирования. Существует ряд организаций, целенаправленно занимающихся вопросами стандартизации. Это Американский национальный институт стандартов ANSI (American National Standards Institute), Институт инженеров по электротехнике и электронике IEEE (Institute of Electrical and Electronic Engineers ), Организация международных стандартов ISO ( International Organization for Standardization ).

Читайте также:  Решение практических задач методом линейного программирования

Как правило, при создании языка выпускается частный стандарт, определяемый разработчиками языка. Если язык получает широкое распространение, то со временем появляются различные версии компиляторов, которые не точно следуют частному стандарту. В большинстве случаев идет расширение зафиксированных первоначально возможностей языка. Для приведения наиболее популярных реализаций языка в соответствие друг с другом разрабатывается согласительный стандарт. Очень важным фактором стандартизации языка программирования является своевременность появления стандарта – до широкого распространения языка и создания множества несовместимых реализаций. В процессе развития языка могут появляться новые стандарты, отражающие современные нововведения. Так, язык FORTRAN первоначально был стандартизирован в 1966 году. В результате был издан стандарт FORTRAN 66. Далее этот стандарт несколько раз пересматривался (в 1977 году был выпущен FORTRAN 77, затем появился и FORTRAN 90).

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

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

Среда проектирования

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

Читайте также:  Среда программирования java idea

Компилятор языка программирования выступает как составная часть среды проектирования. Сама программа наряду с конструкциями, предусмотренными стандартом, как правило, использует библиотечные функции и классы, предоставляемые средой проектирования. Так, интегрированная среда разработки VisualStudio. NET содержит библиотеку классов MFC (Microsoft Foundation Classes), значительно упрощающую процесс разработки приложений, использующих оконный интерфейс .

Интегрированная среда проектирования VisualStudio. NET позволяет создавать и компилировать приложения на языках C++, C#, Visual Basic и VisualJ. Для разработки приложений на языке С++ предназначается также среда CBuilder.

Для проектирования приложений на языке Object Pascal используется интегрированная среда проектирования Delphi.

Наиболее удобной средой разработки программ на языке Java является интегрированная среда проектирования JBuilder.

Источник

Аппликативное программирование

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

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

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

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

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

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

Компьютинг

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

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

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

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

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

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

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

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

См. также

  • Аппликативный компьютинг
  • Аппликативные вычислительные системы
  • Комбинаторная логика
  • Лямбда-исчисление
  • Лямбда-исчисление с типами
  • Категориальная абстрактная машина
  • Суперкомбинаторы
  • Функциональное программирование
  • Язык Curry

Ссылки

  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 .

Источник

Оцените статью