Программа «ДраконКод».
Обсуждение идей участника ibnteoНадписи вне икон очень плохо читаются, их не видно боковым зрением, они не интернациональны, предлагаю в иконе Вопрос сделать прямой путь ("да") вниз, а инверсную икону маркировать внизу кружком "не" из схемотехники, путь "да" более лёгкий, либо вниз сваливается, либо вправо при наличии такой "затычки":
Самый же существенный недостаток языка, именно для программирования, это невозможность его наложения на уже существующий код.
Невозможно отобразить схематически switch-case без break/continue (такого кода мало, но всё же).
Невозможно организовать выход из циклов в некоторых случаях, например изнутри основного шампура if (?) {...; if(?) break;} else {...;}, аналогично с continue и return.
Циклы do-while и while можно сделать аналогично циклу for, устранив сложные для реализации запутанные алгоритмы через икону Вопрос с возвратом вверх.
Икона цикла Для взята из ГОСТ, но для циклов гораздо лучше подходят иконы из Силуэта, сам же Силуэт можно разделить на две части:
1) Разбивка длинного алгоритма на куски, для этого поднимаем лиану снизу наверх справа от шампура, при этом стрелка не нужна, циклы выглядят точно так же, как и в Силуэте, но не требуется их помечать закрашенным уголком. Местами разделения в коде могут выступать большие блоки многострочного комментария, используемые для документирования кода, они будут тогда идти сверху, описывая шампуры.
2) Если требуется логика конечного автомата со сложными переходами на разные шампуры, то делаем что-то типа такого:
Код:
int state=1; do {switch state {case 1: ...; state=2; break; case 2: ...; state=0; break;}} while (state>0);
Вместо нумерации икон, можно использовать нумерацию строк, не в коде писать номера икон в комментариях, а на иконах написать номера строк в коде (когда это необходимо знать), так будет проще искать и исправлять ошибки, компилятор сообщает номер строки, тут же на схеме находим нужную икону, не залезая в исходный код.
В итоге можно полностью избавиться от goto, и становится возможно создания редактора схем для уже существующего кода, и для генерации хорошо документированного кода, с которым можно будет работать и в текстовом редакторе после работы с редактором схем, и наоборот.
Если такой редактор схем понравится программистам, которые просто продолжат работать над своими существующими проектами, не переписывая их с нуля в схемы, схемы могут получить взрывной рост популярности, и как следствие, поддержки и дальнейшего развития.
______________________________________
Вот как могут выглядеть циклы с использованием иконы из Силуэта:
Для возможности отобразить любой программный код придётся сделать возможность подвешивать в любом месте цикла иконы break и continue, и в любом месте кода икону return.
Так как нельзя подвесить выход на основной шампур, то для иконы if лучше использовать её инверсную форму с отметкой not на основном выходе. Использование else не предполагается, так как в нём нет смысла.