DRAKON.SU https://forum.drakon.su/ |
|
Икона "Вставка" - обсуждение терминологии, изменений https://forum.drakon.su/viewtopic.php?f=170&t=1554 |
Страница 4 из 4 |
Автор: | Рэйлвэй Каген [ Воскресенье, 05 Июль, 2009 21:59 ] |
Заголовок сообщения: | Re: Икона "Вставка" - обсуждение терминологии, изменений |
dvuugl писал(а): нужна и композиция.. "развилка-вставка" - это не композиция. Это инцест(мягко говоря). КОМПОЗИЦИЯ 1. вложенные процедуры - по контексту 2. исключения, прерывания - по поведению 3. параллельный процесс - по времени (есть в Драконе) 4. переключатель - по значениям поля данных (есть в Драконе) 5. силуэт - по построению (есть в Драконе) .. Мэй би как-то продолжить надо. Да и Дракону полезно будет. |
Автор: | Рэйлвэй Каген [ Воскресенье, 05 Июль, 2009 22:31 ] |
Заголовок сообщения: | Re: Икона "Вставка" - обсуждение терминологии, изменений |
Ещё немного о композиции: Основные виды отношений между программными объектами "Отличие парадигм программирования заключается в реализациях моделей состояния и поведения, а также отношений между этими понятиями, осуществляемых через такие элементарные программные объекты как данные и операции. Абстрагирование от конкретных экземпляров достигается за счет введения понятий "абстрактный тип данных" и "процедура" (понятие "функция" используется как синоним процедуры). Элементарные понятия используются для построения составных программных объектов путем объединения в агрегаты и разделения по категориям. Категорию Г. Буч [Буч98] называет иерархией типа "is-a". Она также трактуется как обобщение программных объектов [Цикритзис]. Агрегаты и обобщения используются при конструировании композиций данных и процедур. В каждой из существующих парадигм программирования вопросы такого конструирования композиций решаются по-своему, что и вносит определенные отличительные черты." (Легалов А.И.) Думается, что такая абстракция может быть более результативна, чем линейная комбинация существующих в Драконе изобразительных средств. |
Автор: | Alexey_Donskoy [ Воскресенье, 05 Июль, 2009 22:57 ] |
Заголовок сообщения: | Re: Икона "Вставка" - обсуждение терминологии, изменений |
Однако, dvuugl прав. Неудобно вызывать функцию, затем проверять её результат. Загромождается схема. Вообще проблемы не вижу. Какой смысл делать вставку в развилке, когда условие внутри развилки и так может быть сколь угодно сложным. Раз логическое выражение, значит там же может иметь место и вызов функции. Принципиально один случай от другого не отличается. Развилка трактуется как вставка - всегда. Собственно, и прямоугольник действия тоже по умолчанию трактуется как структурная единица, которую можно раскрыть. В том числе и с гипертекстовым переходом в вызываемую процедуру. В этом смысле рулит фортовский принцип - всё, что написано, может быть вызовом процедуры. 1. Это удобно. 2. Это соответствует процессу разработки сверху вниз. |
Автор: | Рэйлвэй Каген [ Понедельник, 06 Июль, 2009 07:11 ] |
Заголовок сообщения: | Re: Икона "Вставка" - обсуждение терминологии, изменений |
Нет, dvuugl неправ. Докажу "от противного". Предположим, что dvuugl прав. dvuugl писал(а): Два раза отвечаем на один и тот же вопрос. Сначала на него отвечает вставка-функция. Потом на него же отвечает вопрос к этой вставке-функции. Тогда имеется возможность изобразить функцию, обозначенную вставкой, примитивом или силуэтом с двумя и более выходами. Но по правилам Дракона, выход("Конец") может быть только один. Получили противоречие. Следовательно, исходное предположение неверно. чтд.Alexey_Donskoy писал(а): Развилка трактуется как вставка - всегда. С какого перепугу? Или я что-то пропустил? Ветвление по локальным/глобальным данным будет действием, определённым в другом месте? Эдак мы тут окончательно народ запутаем
|
Автор: | Alexey_Donskoy [ Понедельник, 06 Июль, 2009 07:31 ] |
Заголовок сообщения: | Re: Икона "Вставка" - обсуждение терминологии, изменений |
А с какого перепугу рассматривать только ветвление по данным? В ветвлении (как и в операторе if) имеет место логическое выражение (условие). В логическом выражении допустимо использование функций. Сложное условие может быть целесообразно вынести в отдельную процедуру (или свернуть). Никакой нет путаницы, а есть эргономичная организация структуры кода. Более того, Вы, в общем случае, не знаете, какие действия выполняет среда, когда Вы запрашиваете какие-либо данные. При этом может вызываться метод объекта, при этом может выполняться запрос к базе данных (в т.ч. удалённой). Ну и т.п. |
Автор: | Рэйлвэй Каген [ Понедельник, 06 Июль, 2009 07:56 ] |
Заголовок сообщения: | Re: Икона "Вставка" - обсуждение терминологии, изменений |
Почему ветвление по данным? Q: Ветвление - по результату логического выражения. Это тип данных или процедурный? Alexey_Donskoy писал(а): ..Более того, Вы, в общем случае, не знаете, какие действия выполняет среда, когда Вы запрашиваете какие-либо данные. Золотые слова. Вставка нужна только когда позарез нужно явное указание на размещение описания этих действий. Вот я и не догоняю, зачем использовать "вставку" для обозначения состояния, возвращаемого/используемого/анализируемого здесь и сейчас.
|
Автор: | Alexey_Donskoy [ Понедельник, 06 Июль, 2009 09:58 ] |
Заголовок сообщения: | Re: Икона "Вставка" - обсуждение терминологии, изменений |
То есть ссылка, то нету. Лишние сущности плодятся. Нехорошо это. Ещё раз повторяю, что в системах с большим потенциалом (само)развития - всё есть ссылка. Даже имя локальной переменной, употреблённое в коде - ссылка (на описание переменной, её значение, кросс-референс и т.п.). Тем более - действие. Вон, в соседней теме Илья ещё раз напомнил про слои виртуальных машин. Так что потенциально - любой квадратик на схеме есть гиперссылка или свёртка. Поэтому я не считаю нужым специально выделять "явное указание". С другой стороны, тезис о том, что получение результата и его использование суть разные действия, заслуживает внимания. Я не готов более высказываться по этому поводу, но симпатии мои в данном случае к самому экономичному решению. Пока не убедят в обратном |
Автор: | Рэйлвэй Каген [ Понедельник, 06 Июль, 2009 11:14 ] |
Заголовок сообщения: | Re: Икона "Вставка" - обсуждение терминологии, изменений |
Ссылки - это, конечно, интересно. На неё можно посмотреть и так, и эдак. Но это хорошо только с высоты определённого опыта и понимания, что делать это можно тоже "по слоям". Что, кстати, может накладывать и порядок представлений. Вот и в упомянутой работе Легалова можно усмотреть некую аналогию: рассмотрены две парадигмы - процедурная и ООП(слои), определённые абстракции - агрегат и обобщение, а на стр13. объяснена возможность смотреть на обобщение, как на агрегат. Поскольку агрегат и обобщение - проекции одной абстракции(композиции). Цитата: "от языков, отображающих одни и те же понятия разными способами, надо переходить к инструментам, позволяющим отображать множественные отношения и ассоциации между базовыми понятиями. Захотели, посмотрели на программные объекты как на процедуры и данные, захотели - посмотрели как на классы.(Легалов А.И. Разнорукое программирование.2001г.)" Только вот просто ввести такую мощную абстракцию в инструмент - что гранату обезьяне подарить. Своя проекция - в свой слой, наверное будет вернее. У ссылки ведь тоже могут быть проекции? Проекции и слои могут быть парадигмозависимыми. Получится "Проект "Логика" p.s.: заодно уж и саму брошюру прилепил: Вложение:
|
Автор: | Valery Solovey [ Понедельник, 06 Июль, 2009 12:37 ] |
Заголовок сообщения: | Re: Икона "Вставка" - обсуждение терминологии, изменений |
Рэйлвэй Каген писал(а): Получили противоречие. Получили техническое противоречие : )...
|
Автор: | Илья Ермаков [ Пятница, 13 Ноябрь, 2009 10:07 ] |
Заголовок сообщения: | Re: Икона "Вставка" - обсуждение терминологии, изменений |
Сейчас вдумываться в Ваш текст некогда, но любые взаимодействия (события принимаемые и инициируемые) я лично изображаю с помощью знаков ввода-вывода. |
Автор: | adva [ Пятница, 13 Ноябрь, 2009 23:16 ] |
Заголовок сообщения: | Re: Икона "Вставка" - обсуждение терминологии, изменений |
Я тоже за то, что Развилка должна либо без дополнительных обозначений подразумевать Вставку, либо иметь для этого какие-либо графические отличия. Обоснование: вычисление логической функции перед Развилкой может быть затратно по времени, а для быстрой схемы вычислений логических условий, эта функция может и не вызываться, либо вообще второе и далее условия могут не иметь смысла (ну это конечно исправимо, но не всегда удобно). |
Автор: | Рэйлвэй Каген [ Суббота, 14 Ноябрь, 2009 09:51 ] |
Заголовок сообщения: | Re: Икона "Вставка" - обсуждение терминологии, изменений |
При желании, обосновать можно всё, что угодно. Например, если условие в развилке простое и незатратно по времени, то Развилка должна подразумевать Действие. Мне кажется, что такое направление низводит логику Дракона до маразма. Весьма важно расставить приоритеты: что получаем и куда идём с этим после развилки или как вычисляем куда идти дальше. |
Автор: | adva [ Суббота, 14 Ноябрь, 2009 10:29 ] |
Заголовок сообщения: | Re: Икона "Вставка" - обсуждение терминологии, изменений |
Хотя подумал, и понял, что вы правы, действительно правильнее разграничить, действие и условие, т.к. дракон по определению, это маршрутная часть алгоритма |
Страница 4 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |