Концептуальное программирование - подход к программированию, описанный Э.Х. Тыугу в одноименной книге [1]. К. программирование предполагает оперирование понятиями (концептами), описанными в терминах предметной области, что позволяет использовать ЭВМ на этапе постановки задачи. Достаточно точное описание задачи позволяет ЭВМ автоматически составлять программы для её решения. Характерными особенностями концептуального программирования являются также использование языка предметной области и использование семантической памяти с целью накопления знаний о решаемых задачах.
Задача, поступающая на вход системы концептуального программирования, записанная в терминах предметной области, интерпретируется на семантической сети, которой описывается модель предметной области. Заранее подготовленные и отлаженные программные модули, связанные с понятиями предметной области, используются затем для синтеза готового решения (или синтеза программы, решающей задачу)[2]. Иными словами, к. программирование предполагает наличие базы знаний, включающей в себя элементарные составляющие, которые позволяют строить из них решение произвольной задачи данной предметной области.
Применение идей К. программирование изначально предполагалось в отношении проектирования технических устройств. В 90-х годах американский логик Ван-Хао (Вонг) предложил использование К. программирования для моделирования поведения социальных, экономических и политических систем [3].
Первой реализацией принципов концептуального программирования стала система ПРИЗ ЕС, а языковой реализацией - язык УТОПИСТ, разработанные в ИК АН ЭССР под руководством Э.Х. Тыугу в 1988 году [4]. Пример программы на языке УТОПИСТ выглядел следующим образом:
<!-- не поддерживается --> начало K есть квадрат, сторона = Х. C есть круг, диаметр = X. известно, что S = площадь от K - площадь от С. найти S по X конец
На этом примере видно, что велись попытки приблизить язык, путём применения макроопределений, к форме естественного языка.
В начале 2000-х годов возник подход к программированию со схожим названием (Concept programming). Он также предполагает оперирование концептами, которые должны транслироваться в представления, найденные в программном пространстве. Реализация данного подхода была выполнена в виде языка XL, основными возможностями которого является расширяемые синтаксис и семантика.
В работах [5] [6] была предпринята попытка развития первоначальных идей К. программирования в направлении использования лингвистического процессора для обработки программ, записанных на естественном языке. В системе Nalaps база знаний о предметной области описывается в виде программных модулей - библиотек классов языка Java с выполненной семантической разметкой атрибутов классов. Поступающий на вход системы текст на естественном языке проходит анализ, результатом которого является синтаксико-семантическое представление, по которому затем система автоматически синтезирует и компилирует программный код на языке Java.
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .