Программирование графами

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Программирование графами это метод создания реальных работающих программ с использованием ориентированных графов, на горизонтальных дугах которых записывается элементарная математика – логические выражения, формулы, функции, простейшие операции типа ⟸, :=, ∑, ∍ и т.д.

Историческая справка[править | править код]

Исторически концепция программирования графами возникла в конце 70-х при создании систем управления основных ракет бывшего Союза[1-2].

Существующие языки программирования в ней не используются, но их библиотеки (машинный интеллект) сохраняются и используются как функции в математике, поэтому эта концепция называется еще «Программированием без языков программирования»[3,4].

Метод программирования графами[править | править код]

В ориентированных графах используются только горизонтальные дуги, на которых сверху и снизу записывается информация на любых языках – русском, английском, китайском, математическом и т. д. без ограничений. Граф имеет имя с параметрами или без, которое записывается сверху около желтого эллипса на естественном языке. На дуге сверху записывается Условие прохождения по дуге, а снизу – Действия (функции, формулы или их описание на естественном языке), которые выполняются, если условие «истинно»:

Фиксированные операторы типа if, for, while существующих языков программирования не используются и вместо них из аксиомы формируются любые операторы нужные и эффективные для решения конкретной задачи, см. абстрактную R*-схему оператора 3-х вложенных циклов без деталей реализации (без записей на дугах). Записи на дугах могут быть декларативны (функциональны) и императивны. При этом не фиксированные и специализированные по месту использовагия R-схемы максимально удобны для выполнения императивных абстракций декларативных описаний.

Для выполнения на компьютере такого графа эти записи преобразуются (вручную, математическим выводом под контролем разработанной графической среды программирования – ГСП) в строго определенные выражения и формулы элементарной математики, «понятные компьютеру». Такой граф имеет стандарт ISO 8631/1989 и только одна его дуга – аксиома, эффективно используется для записи любых алгоритмов, данных, программ, объектно-ориентированных программ (ООП), баз знаний, сетевых графиков и компьютерных схем реализации, значительно упрощая, ускоряя и улучшая процессы их проектирования, доказательства правильности и модификации по результату эксплуатации. Программирование графами улучшает характеристики по наглядности, простоте, компактности, скорости ввода и занимаемой памяти компьютера, что позволяет программировать практически всем желающим, а не только программистам. Это делает программирование элементом всеобщей грамотности и культуры общества.

Графическая программа компактнее записи программ в существующих языках. Например, известный максимум в 133 раза компактнее С++, а запись R* этой программы в 400 раз компактнее. Ввод в компьютер R-схемы из 10 горизонтальных + 10 альтернативных дуг осуществляется за три нажатия клавиш вместо 1010 – для традиционной записи текстом, а в памяти машины такая программа будет занимать 5 байт, что в 202 раза меньше и т.д. Ниже приведена запись алгоритма вычисления Факториала числа N в общепринятых блок-схемах (граф, нагруженный по вершинам) и в R-схемах (граф, нагруженный по дугам), которые – R-схема и R*-аксиома (выше) имеют «золотое сечение»:

R=4,2 R*=14

RR*-схема в математической концепции – это компактный и быстрый способ для разработки, записи и ввода алгоритмов, данных и программ в компьютер. Программирование графами решает проблему сложности и доказательства правильности программ и при этом все лучшее (библиотеки, «охраняемые команды», ООП и т.д.), накопленное в существующей практике программирования, сохранено в новой концепции.

В практике современного программирования большое распространение получило ООП. Ниже в графическом ООП приведена запись известного базового класса Point (точка) и двух его наследников: «Отрезок» (LineSegment) и «Треугольник» (Triangle). Данные (= объекты класса) задаются параметрами соответствующих имен класса и записываются в R-схемах НАД дугой, а Методы записываются ПОД дугой и выполняются, если Условие над дугой ИСТИННО. Красным цветом выделены формулы, по которым работают соответствующие методы класса – вычисление площади (Square) и периметра (Perimeter). Эти формулы и операции типа "⟸, :=, ∑, ∍ и т.д." и т.д. задаются с помощью обычной клавиатуры и соответствующей виртуальной клавиатуры в ГСП:

По сравнению с JAVA, RR* ООП компактнее: R=9, R*=75 раз.

Выводы[править | править код]

Таким образом программирование графами является оригинальной концепцией программирования, которая использует только математику и характеризуется шестью главными отличительными преимуществами [5]:

1. функциональная полнота и эффективная универсальность сочетающаяся с простотой, наглядностью, компактностью, скоростью ввода, доказательством правильности и эффективной трансляцией прямо в коды компьютера без языков-посредников

2. нужные для работы операторы определяются решаемой задачей, библиотекой и естественно задаются из одной аксиомы декларативно или императивно. Фиксированных операторов нет

3. получаемое графическое изображение программы является уже готовым промышленным изделием, что формирует информационную индустрию программирования нового поколения

4. доступность и простота обучения позволяет вывести культуру программирования на новый уровень во всех сферах деятельности человека и сделать программирование доступным для ВСЕХ

5. программирование графами имеет некую аналогию с нейронной сетью, которую в R-схемах играют дуги между вершинами, что может приблизить нас к решению проблемы искусственного интеллекта и упростить разработку логически суперсложных программ

6. программирование графами вводит понятие «золотого сечения», что делает его единым с общей системой мироздания и становится своеобразным критерием качества и устойчивости (полезности) в обществе результатов процесса программирования.

Литература[править | править код]

  • 1. И.В. Вельбицкий. Технология программирования. — Украина,: Киев, 1984.
  • 2. СЕРГЕЕВ В.Г. Главный конструктор систем управления ракет и космических комплексов. — Украина,: Харьков, 2014.
  • 3. W.K.McHenry. Technology: A soviet visual programming. — Украина,: Journal of Visual Languages, 1990.
  • 4. I.Velbitsky. Programming without Programming Languages. Application and Theory of Computer. — UK: Technology, 2017.
  • 5. Сайт: glushkov.org «Фонд Глушкова». Полное описание новой концепции, ее реализации и примеров использования. — Украина, 2017.