Владимир Паронджанов писал(а):
Письмо В.И. Шелехова от 17 октября 2014 года
Цитата:
Надеюсь, что проект дуального (текстового и графического) представления программы Вам также будет интересен.
Полезно обговорить термины:
дуальное (текстовое и графическое)
представление программы;
дуальное (текстовое и графическое)
программирование.
Есть вопросы:
1) Насколько они новые? и достаточно ли уже общепринятые?
2) Где они применяются? (и где они появились?)
В поисковиках удалось встретить только два применения термина:
1)
Дуальное программирование в теории надежности:
параллельно применяются две сходные (или несколько разные) программы,
и результаты их работы оперативно сравниваются.
2) Индиви-
дуальное программирование учебной деятельности:
оригинально, но ясное дело - ошибочка вышла.
Автор этого поста наткнулся на этот термин (дуальное программирование) недавно,
где-то в интернете и, кажется, даже в связи с Драконом, но уже трудно вспомнить, где конкретно.
Термин
Дуальное программирование означает, по-видимому, следующее:
1) Основное многоуровневое представление программы задается графически:
например, блок-схемами в системе Дракона.
2) Блоки нижнего уровня заполняются исходным текстом соответствующих им фрагментов программ
на некотором (высокоуровневом или низкоуровневом) языке программирования.
----------------------------------------
Понятие дуальности полезно
перенести на область параллельной (и последовательной) алгоритмики.
Но здесь картина сложнее, поскольку возможно много (знаковых) форм представления алгоритмов.
Этот вопрос полезно обговорить, в частности, для последующего продвижения п
о задаче на сравнение дракон-схем алгоритмов (и программ).
------------------------
Автор данного поста выделяет 3 основные формы представления алгоритмов:
1) Две
основные (собственно алгоритмические) формы представления алгоритмов:
а)
Структурные (и структурно-функциональные)
формулы алгоритмов.
Разных синтаксических классов:
инфиксная,
префиксная,
постфиксная и разные
комбинированные формы.
Разных размерностей:
одномерные (линейные) и
двухмерные, в принципе возможны трехмерные (и многомерные).
Разных форм (и стилей) исполнения:
горизонтальное, вертикальное исполнение, прямая, обратная запись и т.д.
б)
Структурные (и структурно-функциональные)
схемы алгоритмов:
блок-схемы, штрих-схемы, граф-схемы (в смысле диаграмм графов) и т.д.
Также разных размерностей:
одномерные и
двухмерные, возможны трехмерные (и многомерные).
Разные формы (и стили) исполнения:
горизонтальное и вертикальное исполнение, прямая и обратная запись и т.д.
Ставится задача обеспечения
взаимно-однозначного структурного соответствия (изоморфизма)
и
взаимной обратимости структурных формул и схем разных структурных классов.
К этому требованию хорошо подходит термин
дуальности основных форм представления алгоритмов.
Вложение:
ССА+ДИА.PNG [ 82.4 КБ | Просмотров: 12898 ]
Вложение:
СФА-ССА.PNG [ 66.01 КБ | Просмотров: 12898 ]
2) Дополнительная
вербальная (словесная) форма представления алгоритмов.
Разного назначения:
а)
Псевдокоды алгоритмов - промежуточная вербальная (отчасти) форма связи
исходных кодов программ и (2-х) основных форм представления алгоритмов.
Она ориентируется на разные языки программирования - их синтаксис и лексику.
Причем, сколько существует разных языков программирования и их разновидностей,
столько может быть разных псевдокодов и, дополнительно, разных их модификаций
(в зависимости от целей и задач применения псевдокодов).
Вложение:
ПКА-02.png [ 39.14 КБ | Просмотров: 12898 ]
Вложение:
ПКА-04.png [ 31 КБ | Просмотров: 12898 ]
Вложение:
ПКА-06.png [ 43.1 КБ | Просмотров: 12898 ]
б) И т.д.
Таким образом понятие дуальности основных форм представления алгоритмов
некоторым образом расширяется (пока не очень понятно как лучше).
--------------------------------
Кроме того возможные разные матричные формы представления алгоритмов:
это, как правило, отражение разных связей разных пар элементов алгоритмов
(в некоторой системе разложения структуры алгоритмов).
--------------------------------
Кроме того возможные разные формы представления реализации алгоритмов:
1) Протоколы процессов исполнения алгоритмов:
-- цифровые, например, вычисления арифметических операций столбиком (или уголком);
-- масштабированные временные диаграммы исполнения алгоритмов и т.д.
2) Схемы аппаратной реализации и т.п.