Концептуальное программирование
Концептуальное программирование - подход к программированию, описанный Э.Х. Тыугу в одноимённой книге [1]. К. программирование предполагает оперирование понятиями (концептами), описанными в терминах предметной области, что позволяет использовать ЭВМ на этапе постановки задачи. Достаточно точное описание задачи позволяет ЭВМ автоматически составлять программы для её решения. Характерными особенностями концептуального программирования являются также использование языка предметной области и использование семантической памяти с целью накопления знаний о решаемых задачах.
Задача, поступающая на вход системы концептуального программирования, записанная в терминах предметной области, интерпретируется на семантической сети, которой описывается модель предметной области. Заранее подготовленные и отлаженные программные модули, связанные с понятиями предметной области, используются затем для синтеза готового решения (или синтеза программы, решающей задачу)[2]. Иными словами, к. программирование предполагает наличие базы знаний, включающей в себя элементарные составляющие, которые позволяют строить из них решение произвольной задачи данной предметной области.
Применение
Применение идей К. программирования изначально предполагалось в отношении проектирования технических устройств. В 90-х годах американский логик Ван-Хао (Вонг) предложил использование К. программирования для моделирования поведения социальных, экономических и политических систем [3].
Системы и языки концептуального программирования
Первой реализацией принципов концептуального программирования стала система ПРИЗ ЕС, а языковой реализацией - язык УТОПИСТ, разработанные в ИК АН ЭССР под руководством Э.Х. Тыугу в 1988 году [4]. Пример программы на языке УТОПИСТ выглядел следующим образом:
<!-- не поддерживается --> начало K есть квадрат, сторона = Х. C есть круг, диаметр = X. известно, что S = площадь от K - площадь от С. найти S по X конец
На этом примере видно, что велись попытки приблизить язык, путём применения макроопределений, к форме естественного языка.
В начале 2000-х годов возник подход к программированию со схожим названием (Concept programming). Он также предполагает оперирование концептами, которые должны транслироваться в представления, найденные в программном пространстве. Реализация данного подхода была выполнена в виде языка XL, основными возможностями которого является расширяемые синтаксис и семантика.
В работах [5][6] была предпринята попытка развития первоначальных идей К. программирования в направлении использования лингвистического процессора для обработки программ, записанных на естественном языке. В системе Nalaps база знаний о предметной области описывается в виде программных модулей - библиотек классов языка Java с выполненной семантической разметкой атрибутов классов. Поступающий на вход системы текст на естественном языке проходит анализ, результатом которого является синтаксико-семантическое представление, по которому затем система автоматически синтезирует и компилирует программный код на языке Java.
Примечания
- ↑ Тыугу Э. Х. Концептуальное программирование. М.: Наука, 1984. 255 с
- ↑ Ильин А. В., Ильин В. Д. ФОРМАЛИЗАЦИЯ ЗНАНИЙ О ЗАДАЧАХ: ЗАДАЧНЫЕ КОНСТРУКТИВНЫЕ ОБЪЕКТЫ // Информационные технологии в управлении. Управление большими системами. Выпуск 34 . Дата обращения: 21 мая 2017. Архивировано 17 апреля 2018 года.
- ↑ Москвитин, А. А. Решение задач на компьютерах : учебное пособие / А. А. Москвитин. - Новосибирск : СибГУТИ, 2006. - 158 с.
- ↑ Инструментальная система программирования ЕС ЭВМ (ПРИЗ) / М.И. Кахро, А.П. Калья, Энн Харальдович Тыугу . – Изд. 2-е,перераб. и доп . – Москва : Финансы и статистика, 1988 . – 181 с. : схем. - Библиогр. в конце кн. – На рус. яз. - ISBN 5-279-00111-2
- ↑ Путилов Г.П., Лебедев А.С., Система естественно-языкового концептуального программирования Nalaps // Международная научная конференция Megaling 2009, С. 65-66
- ↑ Лебедев, Андрей Сергеевич. Разработка и исследование системы концептуального программирования с использованием лингвистического процессора : диссертация ... кандидата технических наук : 05.13.11 / Лебедев Андрей Сергеевич; [Место защиты: Моск. гос. институт электроники и математики].- Москва, 2011.- 178 с.: ил. РГБ ОД, 61 11-5/1627
Литература
- Тыугу Э. Х. Концептуальное программирование. М.: Наука, 1984. 255 с
- Инструментальная система программирования ЕС ЭВМ (ПРИЗ) / М.И. Кахро, А.П. Калья, Энн Харальдович Тыугу . – Изд. 2-е,перераб. и доп . – Москва : Финансы и статистика, 1988 . – 181 с. : схем. - Библиогр. в конце кн. – На рус. яз. - ISBN 5-279-00111-2
- Кравченко В. А., Ширапов Д. Ш., Олзоева С. И. - Использование функциональных грамматик в концептуальном программировании // Вестник БГУ. Математика, информатика. - Улан-Удэ. - 2016. Выпуск 4. - С. 3-12.