DRAKON.SU

Текущее время: Суббота, 27 Апрель, 2024 10:45

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 143 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
Автор Сообщение
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 11:35 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 219
Откуда: Казань
Владимир Паронджанов писал(а):
1. Разница в том, что в ЯВУ программисты пишут оператор goto ВРУЧНУЮ и это плохо. Именно с этим боролся Дейкстра.

Если считать, что Дейкстра боролся с тем, что goto пишется ВРУЧНУЮ, то значит он был недоволен, тем, что программисты не умеют писать goto, кто-то пишет got, кто-то goot, кто-то gtoo. Это смешно.
Дейсктра боролся не с ручным написанием goto, а c goto как таковым.

Владимир Паронджанов писал(а):
2. В языке ДРАКОН никто не пишет оператор goto ВРУЧНУЮ. Это запрещено.

См. пункт 1.

Владимир Паронджанов писал(а):
3. Не только оператор goto является вредным. Вредными также являются операторы: if, then, else, case, switch, break, while, do, repeat, until, for, foreach, continue, loop, exit, when, last и т.д. Все эти операторы порождают ошибки.

Ошибки порождают не столько ключевые слова, хотя да начинающие программисты, иногда совердают синтаксические ошибки и пишут, например, repeet, вместо repeat, но эти проблемы легко отлавливаются на этапе компиляции программ. Основная проблема это неумелое использование конструкций из которых состоит алгоритм, а уж как они написаны или нарисованы, это дело второстепенное.

Владимир Паронджанов писал(а):
4. Поэтому в языке ДРАКОН запрещены не только goto, но и остальные императивные ключевые слова: if, then, else, case, switch, break, while, do, repeat, until, for, foreach, continue, loop, exit, when, last и т.д.

Это избавляет от описок, которые легко ловятся компилятором, но основную проблему не решают.

Владимир Паронджанов писал(а):
5. Вместо указанных императивных ключевых слов, которые порождают ошибки, в языке ДРАКОН используется управляющая графика.

Также решается только проблема описок.

Владимир Паронджанов писал(а):
6. Разумеется, указанные слова могут появиться АВТОМАТИЧЕСКИ. Но это не влечет за собой появление ошибок. Это не страшно.

Нужно указать "не влечет появление синтаксических ошибок". А вот от смысловых ошибок никак не спасает.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 11:39 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 219
Откуда: Казань
LKom писал(а):
Выход любой иконы является переходим к другой иконе, т.е. замаскированным оператором goto. Это же не создает проблемы.

Я уже рассказывал, как в ИС Дракон увидеть визуальную линию между иконами Адрес и Ветка. И здесь нет разрыва маршрута выполнения.

Я вам про Фому, а вы мне про Ерёму.
Я где-нибудь писал, что проблемой является "разрыв маршрута выполнения"?
До этого, я растолковывал позицию Дейсктры и приводил его объяснение про "координаты".
А где у вас про "координаты"?


Последний раз редактировалось Rifat Четверг, 06 Октябрь, 2016 11:44, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 11:43 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 219
Откуда: Казань
albobin писал(а):
Rifat писал(а):
А если есть структуры, в которых участвуют "неструктурные" переходы (в тексте они могут конструироваться при помощи goto, break, continue, return, а Дракон-схеме путем указатения адреса шампура (возможно не точная терминология)), то такую коодинату сложно найти.

Позвольте встрять.
Rifat, а если заменить многоветочный силуэт таким образом:
- ввести переменную состояния (=адрес ветки)
- while + case (switch) по переменной состояния (детали опускаю, так как подобное многократно уже мелькало во многих местах)
Вопрос - что принципиально изменится?

Честно говоря не до конца понял вашу мысль.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 11:50 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1358
Rifat,

Цитата:
До этого, я растолковывал позицию Дейсктры и приводил его объяснение про "координаты".
забудем Дейкстра и будем решать проблемы с позиции сегодняшнего дня, с позиции отображения алгоритмов блок-схемами с использованием нотации Дракона.

Дракон предложен для общего применения. Есть опыт применения ИС Дракон юристами. Вы не сможете заинтересовать юристов цитатами из Дейкстра.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 11:57 

Зарегистрирован: Пятница, 20 Июль, 2007 17:26
Сообщения: 105
Откуда: Псков
Rifat писал(а):
Честно говоря не до конца понял вашу мысль.

Есть вариант трактовки: икона Адрес -замаскированный GOTO
Альтернативный вариант: икона Адрес - замаскированное присвоение замаскированной переменной состояния , а силуэт -
замаскированный WHILE с выходом по достижению конечного состояния + замаскированный CASE (SWITCH) для вызова кода ветки, соответствующей значению переменной состояния.
Можно привлечь замаскированный цикл Дейкстры для всего этого. :)

Всё это в том или ином виде появлялось на Дракон форумах неоднократно.


Последний раз редактировалось albobin Четверг, 06 Октябрь, 2016 12:01, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 11:57 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1358
Ни одна нотация не дает гарантии от ошибок решения в проблемной области.


Последний раз редактировалось LKom Четверг, 06 Октябрь, 2016 12:09, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 11:58 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Rifat говорит: ветки силуэта — это плохо, потому что похожи на goto.

1. Да, переход на следующую ветку силуэта — это прыжок. Вы здесь правы, Rifat.
2. Но этот прыжок не такой жёсткий, как goto. Этого вы, Rifat, не видите.

Почему переход на другую ветку силуэта гораздо мягче, чем goto?
- упорядочен (можно переходить только к началу ветки, больше никуда).
- предсказуем (а. В конце ветки мы знаем, что будет переход. б. Если вы не строите цикл или автомат, это переход всегда будет вправо).
- хорошо заметен (икону адрес сложно не заметить, не так ли?).

Этим и хорош силуэт — это компромисс, где выгод много, а потерь мало.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 12:11 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5851
Откуда: Москва
Рифат, спасибо за ответ.
Начнем по пунктам.

Владимир Паронджанов писал(а):
1. Разница в том, что в ЯВУ программисты пишут оператор goto ВРУЧНУЮ и это плохо. Именно с этим боролся Дейкстра.

Rifat писал(а):
1. Если считать, что Дейкстра боролся с тем, что goto пишется ВРУЧНУЮ, то значит он был недоволен, тем, что программисты не умеют писать goto, кто-то пишет got, кто-то goot, кто-то gtoo. Это смешно.
Согласен с Вами, что это смешно.
Но я вовсе не имел в виду смешные описки.

Rifat писал(а):
Дейсктра боролся не с ручным написанием goto, а c goto как таковым.
Эта мысль мне не понятна. В системе команд любого процессора имеется оператор перехода. Обычно пишут не goto, а jump.

Разве Дейкстра требовал исключить из системы команд процессора команду перехода? Конечно, нет. Говоря Вашими словами, это смешно.
По-видимому, Вы имеете в виду что-то иное. Что именно? Просьба пояснить.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 12:21 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 219
Откуда: Казань
Степан Митькин писал(а):
Rifat говорит: ветки силуэта — это плохо, потому что похожи на goto.

1. Да, переход на следующую ветку силуэта — это прыжок. Вы здесь правы, Rifat.
2. Но этот прыжок не такой жёсткий, как goto. Этого вы, Rifat, не видите.

Почему переход на другую ветку силуэта гораздо мягче, чем goto?
- упорядочен (можно переходить только к началу ветки, больше никуда).
- предсказуем (а. В конце ветки мы знаем, что будет переход. б. Если вы не строите цикл или автомат, это переход всегда будет вправо).
- хорошо заметен (икону адрес сложно не заметить, не так ли?).

Этим и хорош силуэт — это компромисс, где выгод много, а потерь мало.

goto - может перейти практически в любое место программы
и
прыжок в Драконе также может перейти практически в любое место алгоритма (да только на начало ветки, но Дракон-схему можно преобразовать так, чтобы то место, куда мы хотим перейти, приходилось на начало ветки).

Степан Митькин писал(а):
Если вы не строите цикл или автомат, это переход всегда будет вправо)

В этом случае да, никаких проблем нет, а что если есть цикл?

Если мы в виде Дракон-схемы представляем какую-то человеческую деятельность, например, процесс получения какой-нибудь справки, который состоит из 10 пунктов, где сначала нужно сходить в одном место написать заявление, затем сходить в другое место, в зависимости от условий, какие пункты или будут или не будут. То с таким алгоритмом проблем нет, так как 10 пунктов алгоритма можно "пройти глазами" по иконкам вдоль и поперек.

Проблемы начинаются, когда алгоритм должен выполняться на компьютере, который в миллиард раз быстрее человека. И допустим, у вас есть алгоритм, в котором 10 иконок, но который будет выполнятся 1000 000 000 раз в течение секунды, при запуске ракеты. Тогда "пройти глазами" по алгоритму миллиард раз не получится и там играет роль то о чем говорил Дейкстра, что должно быть соответствие между статическим представлением алгоритма (10 иконок) и динамическим выполнением процесса (несколько миллиардов действий). И это соответствие довольно легко установить, если в алгоритме только структурные конструкции, если же в алгоритме есть различные прыжки, то можно упустить какой-то из случаев и наша ракета будет бороздить просторы мирового океана.


Последний раз редактировалось Rifat Четверг, 06 Октябрь, 2016 13:15, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 12:34 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 219
Откуда: Казань
Владимир Паронджанов писал(а):
Рифат, спасибо за ответ.
Начнем по пунктам.

Владимир Паронджанов писал(а):
1. Разница в том, что в ЯВУ программисты пишут оператор goto ВРУЧНУЮ и это плохо. Именно с этим боролся Дейкстра.

Rifat писал(а):
1. Если считать, что Дейкстра боролся с тем, что goto пишется ВРУЧНУЮ, то значит он был недоволен, тем, что программисты не умеют писать goto, кто-то пишет got, кто-то goot, кто-то gtoo. Это смешно.
Согласен с Вами, что это смешно.
Но я вовсе не имел в виду смешные описки.

Rifat писал(а):
Дейсктра боролся не с ручным написанием goto, а c goto как таковым.
Эта мысль мне не понятна. В системе команд любого процессора имеется оператор перехода. Обычно пишут не goto, а jump.

Разве Дейкстра требовал исключить из системы команд процессора команду перехода? Конечно, нет. Говоря Вашими словами, это смешно.
По-видимому, Вы имеете в виду что-то иное. Что именно? Просьба пояснить.

Дейстра и не говорит, что нужно исключить jump из процессора и даже из низкоуровневых языков программирования.
Цитата:
убежден в том, что оператор go to должен быть отменен в языках программирования "высокого уровня" (т.е. отовсюду, кроме, возможно, простого машинного кода).


Основная суть статьи Дейкстры заложена в предложении:
Цитата:
Мое второе замечание - то, что наши интеллектуальные силы в большей степени связаны со статическими отношениями, и что наши способности представлять процессы, развивающиеся во времени, развиты относительно плохо.

Статические отношения - это операторы языка программирования и их последовательность и переходы от одного к другому. Их может быть не очень много, например, 10.
А вот процессы, развивающиеся во времени, - это, например, выполнение этого же алгоритма на компьютере 1000 000 000 раз.
И он говорит, что наши способности связывать, статическую программу из 10 элементов, с выполняющимся процессом из нескольких миллиардов действий, плохо развиты.
И что такую связь можно представить, если ввести определенные "координаты" внутри программы. Допустим, нам указали какое-то действие в алгоритме и спрашивают, как мы могли сюда попасть, при наличии координат мы может сказать, что вот, допустим, после десяти миллиардов выполнения определенного действия, срабатывает какое-то условие и мы попадаем сюда.
Если же в алгоритме есть произвольные переходы, и нас спрашивают, как мы могли сюда попасть, то мы не может найти простой набор коодинат. Соответственно, при рассмотрении алгоритма, есть возможность не увидеть какой-то вариант развития событий.
Статья об этом.

Если кажется, что статья не об этом, прочитайте несколько раз статью на русском языком, потом эту же статью на английском языке, потом, если не помогло, то прочитайте
Дал У., Дейкстра Э., Хоор К. Структурное программирование. - М.:"Мир", 1975. - с.7 - 97.
Если и это не помогло, то читайте другие EDW Дейкстры,
http://www.cs.utexas.edu/users/EWD/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 12:39 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Rifat писал(а):
В этом случае да, никаких проблем нет, а что если есть цикл?

Идеальных языков нет.

Что вы хотите доказать? К чему засорять форум?

У вас есть опыт постановки задач на ДРАКОНе в реальных проектах? Нет.
Есть опыт программирования на ДРАКОНе? Нет.

А значит, у вас по ДРАКОНу нет информации, интересной для В.Д. Паронджанова или других жителей Земли.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 12:46 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 219
Откуда: Казань
Степан Митькин писал(а):
Что вы хотите доказать? К чему засорять форум?

У вас есть опыт постановки задач на ДРАКОНе в реальных проектах? Нет.
Есть опыт программирования на ДРАКОНе? Нет.

Фраза в стиле Полонского «У кого нет миллиарда - тот идёт на...»

Степан Митькин писал(а):
А значит, у вас по ДРАКОНу нет информации, интересной для В.Д. Паронджанова или других жителей Земли.

Вы можете говорить за всех жителей Земли? :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 12:47 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 71
Откуда: Россия, Орёл
Rifat писал(а):
Если и это не помогло, то читайте другие EDW Дейкстры,

И это не поможет, Рифат. Поверьте.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 13:21 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1358
Rifat, в чем все таки проблема?

Знаю ИС Дракон, могу рассказать применительно к ИС Дракон.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 13:30 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 219
Откуда: Казань
Расскажите очень интересно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 13:32 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1358
Задавайте вопросы, последовательно по одному. Начинайте с простого.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 13:45 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 219
Откуда: Казань
Какое основное предназначение Дракона?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 13:51 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1358
Про язык Дракон не скажу.

Для ИС Дракон - http://drakon.su/programma_is_drakon:

Изображение


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 14:11 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 219
Откуда: Казань
Если взять назначение "визуальное программирование", считаете ли вы, что дискуссия о вреде оператора goto в программировании (которая была почти 50 лет назад) как-то связана с замаскированным оператором goto, который есть в Драконе?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Октябрь, 2016 14:22 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1358
Цитата:
дискуссия о вреде оператора goto в программировании
Дисскуссия имеет религиозный характер.
В.П. Паронджанов писал, что Дейкстра построил тюрьму для программистов.
В. Шелехов, TAU осуждают структурное программирование - http://forum.oberoncore.ru/viewtopic.php?p=90077#p90077 .

В ИС Дракон не приходится писать "goto", при навигации (прохождении курсором по схеме) обеспечиваются переходы курсора и видимость связей.

Схема является визуальной и не возникают вопросы о чем то "замаскированном".


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 143 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB