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

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

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

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

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

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

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

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

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

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

Графическая программа компактнее записи программ в существующих языках. Например, известный максимум в 133 раза компактнее C++, а запись 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 раз.

Примечания[править | править код]

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