DRAKON.SU https://forum.drakon.su/ |
|
Язык ДРАКОН. Цикл со стрелкой. Обсуждение https://forum.drakon.su/viewtopic.php?f=147&t=6657 |
Страница 1 из 1 |
Автор: | Владимир Паронджанов [ Суббота, 21 Сентябрь, 2019 10:16 ] |
Заголовок сообщения: | Язык ДРАКОН. Цикл со стрелкой. Обсуждение |
Язык ДРАКОН. Цикл со стрелкой. Обсуждение viewtopic.php?p=99396#p99396 LKom писал(а): Здесь имеем проблему блока ОбычногоЦикла. Блок ОбычныйЦикл не имеет аналога в языках программирования, образован использованием оператора Goto. В блоке ОбычныйЦикл сложно выйти из тела цикла, т.к. тело цикла справа окружено петлей цикла. В ИС Дракон рекомендуется заменять блок ОбычныйЦикл блоком ЦиклДЛЯ, при этом используется из ГОСТ 19.701.90 определение икон как ГраницыЦикла. Блок ЦиклДЛЯ используется для представления циклов вида For, Loop, While и Repeat. Проблема снимается, т.к. нет окружающей петли. Изображение циклов более функционально и максимально приближено к определениям в языках программирования. Я называю этот цикл Цитата: Цикл со стрелкой, или цикл Стрелка Я не понял это место: LKom писал(а): Блок ОбычныйЦикл не имеет аналога в языках программирования, образован использованием оператора Goto У меня вопрос: Почему не имеет аналога в языках программирования? Аналогами являются: 1. do while 2. while 3. гибридный цикл (loop with test in the middle) Вложение: LKom писал(а): образован использованием оператора Goto Оператор goto не нужен.https://en.wikipedia.org/wiki/Control_flow |
Автор: | А_МУР [ Суббота, 21 Сентябрь, 2019 11:24 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Цикл со стрелкой. Обсуждение |
Неоднократно использовал цикл со стрелкой для перебора массивов, нет не каких проблем. Отличие от цикла с границами только, что счетчик приходится организовывать самому. Кроме этого не следует забывать, что сам принцип Дракона отличается от всех известных языков-Дракон это ПОТОК УПРАВЛЕНИЯ, и ГОСТ относить сюда я думаю не стоит. Необходимо формировать новый стандарт. |
Автор: | LKom [ Четверг, 26 Сентябрь, 2019 13:51 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Цикл со стрелкой. Обсуждение |
Нет такой конструкции "Цикл со стрелкой". Есть зацикленный участок схемы. Часто без четких границ входа и выхода из зацикленного участка. Программисты знают, что использование Goto не создает конструкцию Цикл. Языки программирования предлагают различные конструкции Циклов с определенными функциональными свойствами. |
Автор: | Владимир Паронджанов [ Четверг, 26 Сентябрь, 2019 15:55 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Цикл со стрелкой. Обсуждение |
LKom писал(а): Блок ОбычныйЦикл не имеет аналога в языках программирования, образован использованием оператора Goto Это не так. Смотрите — Слева цикл do while (цикл со стрелкой ДО) Справа цикл while (цикл со стрелкой ПОКА) Вложение: Цикл со стрелкой — общее название для циклов do while и while LKom писал(а): образован использованием оператора Goto Оператор goto здесь ни при чем.
|
Автор: | Дмитрий Бардынин [ Четверг, 26 Сентябрь, 2019 17:51 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Цикл со стрелкой. Обсуждение |
LKom писал(а): Программисты знают, что использование Goto не создает конструкцию Цикл. Языки программирования предлагают различные конструкции Циклов с определенными функциональными свойствами. А это уже от автора генератора для Дракона зависит, как он организует цикл в целевом ЯП. С помощью GOTO, или без него. А вот интересно, как в ДРАКОНе отобразить множественные случаи прерывания цикла (гибридный цикл, по сути)? Будем изображать гирлянду вопросов? Вложение:
|
Автор: | Владимир Паронджанов [ Четверг, 26 Сентябрь, 2019 21:23 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Цикл со стрелкой. Обсуждение |
Макроикона "Цикл со стрелкой" Вложение: я рис. 21 Макроикона Цикл со стрелкой.png [ 11.49 КБ | Просмотров: 8349 ] Макроикона "Цикл со стрелкой" порождает: 1. Цикл do while (если вставить икону Действие в верхнюю валентную точку) 2. Цикл while (если вставить икону Действие в правую валентную точку) 3. Цикл с условием в середине (если вставить икону Действие в обе валентные точки) |
Автор: | Дмитрий Бардынин [ Пятница, 27 Сентябрь, 2019 19:33 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Цикл со стрелкой. Обсуждение |
если рассматривать Си-подобные языки, то WHILE тут применим. А если это ассемблер? Тогда без JMP/JZ/JNZ не обойтись. Да и масса других языков реализуют циклы порою самым экзотическим способом. |
Автор: | Владимир Паронджанов [ Пятница, 27 Сентябрь, 2019 21:03 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Цикл со стрелкой. Обсуждение |
Дмитрий Бардынин писал(а): если рассматривать Си-подобные языки, то WHILE тут применим. А если это ассемблер? Тогда без JMP/JZ/JNZ не обойтись. Да и масса других языков реализуют циклы порою самым экзотическим способом. Вы правы. Но. Язык ДРАКОН претендует на то, что его графика позволяет выразить все экзотические циклы (и не только циклы, но и любые приемы потока управления). Макроикона "цикл со стрелкой" позволяет выразить любые циклы с условием. Для языков высокого уровня эта макроикона позволяет выразить любой цикл с условием БЕЗ ИСПОЛЬЗОВАНИЯ ОПЕРАТОРА GOTO |
Автор: | Владимир Паронджанов [ Пятница, 27 Сентябрь, 2019 21:05 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Цикл со стрелкой. Обсуждение |
LKom писал(а): Здесь имеем проблему блока ОбычногоЦикла. Блок ОбычныйЦикл не имеет аналога в языках программирования, образован использованием оператора Goto. Это неверно.LKom писал(а): В блоке ОбычныйЦикл сложно выйти из тела цикла, т.к. тело цикла справа окружено петлей цикла. Это неверно.LKom писал(а): В ИС Дракон рекомендуется заменять блок ОбычныйЦикл блоком ЦиклДЛЯ Зачем? Это неверная рекомендация
|
Автор: | Alexey_Donskoy [ Воскресенье, 29 Сентябрь, 2019 22:05 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Цикл со стрелкой. Обсуждение |
Владимир Паронджанов писал(а): его графика позволяет выразить все экзотические циклы (и не только циклы, но и любые приемы потока управления). Верно.Но если есть несколько равноценных способов организации цикла, это означает лишь то, что эти способы есть мелкие технические особенности реализации. А с точки зрения прикладной задачи (то, для чего и разрабатывается алгоритм!) детали реализации совершенно не интересны! И даже зачастую вредны - поскольку попытки протащить низкий уровень наверх закономерно оборачиваются привязкой к исполнителю и снижением переносимости. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |