DRAKON.SU https://forum.drakon.su/ |
|
Язык ДРАКОН. Алгоритм и программа в одном флаконе https://forum.drakon.su/viewtopic.php?f=177&t=6185 |
Страница 2 из 2 |
Автор: | Дмитрий Бардынин [ Воскресенье, 10 Декабрь, 2017 19:07 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Алгоритм и программа в одном флаконе |
Rifat писал(а): Дмитрий Бардынин писал(а): Разделяю мнение о необходимости плавного перехода от алгоритма к программе. Уже 50 лет назад придумали метод пошагового уточнения (stepwise refinement), который является составной частью структурного программирования. Это исключает возможность его разделять? Или имелось что-то иное ввиду? |
Автор: | Rifat [ Воскресенье, 10 Декабрь, 2017 21:48 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Алгоритм и программа в одном флаконе |
Я к тому, что все это уже придумано. И не нужно изобретать велосипед, а достаточно поискать про "пошаговое уточнение" или "stepwise refinement". |
Автор: | Дмитрий Бардынин [ Воскресенье, 10 Декабрь, 2017 23:46 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Алгоритм и программа в одном флаконе |
Вы достаточно точны в хронологии. Однако к обсуждаемому вопросу, думается, это мало относится. Предлагаю прекратить уточнять термины, и вернуться к сути начального сообщения. Вы не согласны с описываемым приемом? |
Автор: | Rifat [ Понедельник, 11 Декабрь, 2017 12:17 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Алгоритм и программа в одном флаконе |
По существу, перспектив у данного метода не очень много. Дело в том, что человеческий язык служит для описания более высоких понятий, а язык программирования служит для описания более низкоуровневых понятий. И обычная ситуация, когда одна фраза на естественном языке, будет занимать 10 и более строк на языке программирования. Соответственно нужно или понижать уровень описания для естественного языка, например, будет говорится "присваиваем 0 переменной count" для выражения "count := 0" или же повышать уровень для языка программирования, чтобы команда была довольно емкой, это в принципе достижимо для высокоуровневых клиентских модулей на языке объектно-ориентированного программирования, например, "door.Open()" можно описать как "открываем дверь" (здесь уровни примерно совпадают), но для более низкоуровненых действий одно предложение может распадаться на десятки - сотни команд, например, "сортируем массив в порядке возрастания" будет распадаться на десятки более примитивных команд на языке программирования. |
Автор: | adva [ Вторник, 12 Декабрь, 2017 06:24 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Алгоритм и программа в одном флаконе |
Rifat писал(а): Соответственно нужно или понижать уровень описания для естественного языка, например, будет говорится "присваиваем 0 переменной count" для выражения "count := 0" или же повышать уровень для языка программирования, чтобы команда была довольно емкой, это в принципе достижимо для высокоуровневых клиентских модулей на языке объектно-ориентированного программирования, например, "door.Open()" можно описать как "открываем дверь" (здесь уровни примерно совпадают), но для более низкоуровненых действий одно предложение может распадаться на десятки - сотни команд, например, "сортируем массив в порядке возрастания" будет распадаться на десятки более примитивных команд на языке программирования. А что мешает создать Вставку с вызовом "Открываем дверь", с подробностями? Типа: протянули руку, вставили ключ, повернули ключ ... А ограниченное количество предложений, вполне вписывается в блок. Смысл тут именно в самодокументировании программы. Гораздо легче понять алгоритм по естественному языку, чем по программному, т.к. не всегда идентификаторы имеют названия, проясняющие суть, приходится тратить много усилий, чтобы воссоздать смысл программы, в случае, если ее скажем надо оптимизировать, или просто найти ошибку. |
Автор: | Владимир Паронджанов [ Вторник, 12 Декабрь, 2017 08:51 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Алгоритм и программа в одном флаконе |
adva писал(а): Гораздо легче понять алгоритм по естественному языку, чем по программному, так как не всегда идентификаторы имеют названия, проясняющие суть. Приходится тратить много усилий, чтобы воссоздать смысл программы в случае, если ее, скажем, надо оптимизировать, или просто найти ошибку. Адва, спасибо. Хорошо сформулировано. |
Автор: | Василий Валевич [ Среда, 13 Декабрь, 2017 10:34 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Алгоритм и программа в одном флаконе |
Пиджин (pidgin) - это гибридный язык, например русско-английский, который часто встречается в IT-компаниях. На пиджине нижняя часть, показанная на иконах, называется "сниппет кода" (code snippet, фрагмент кода). Сниппеты с комментариями - вот что здесь обсуждается. Избыточные комментарии в коде - это помеха. Они только засоряют рабочее пространство и отвлекают внимание. Если самодокументирующийся код на 50% состоит из комментариев, то при каждодневной копке в таком коде хочется волком выть )) Чем хорош DRAKON Editor - так это тем, что сниппеты в нём хорошо организованы и выстроены в систему, из которой генерируется полностью готовый и работающий класс кода. При этом есть возможность добавить минималистичные комментарии - и то при необходимости. Например, как вам понравится такой исходный код? (с точки зрения разработчика) Цитата: // В.Д. Паронджанов поблагодарил пользователя Адва // Также В.Д. Паронджанов сказал, что формулировка хорошая Адва, спасибо. Хорошо сформулировано. И так в миллионах строк кода.
2) У кода есть период жизни. Внутри этого периода надо успеть его написать и поэксплуатировать. Полный период жизни кода стремится к сокращению. Период написания и сопровождения, с таким комментированием, скорее всего будет стремиться к увеличению. В итоге - на эксплуатацию кода останется всего-то ничего, с точки зрения времени его существования. 3) Кроме прочего, существует ещё и суровая и жёсткая конкуренция. Такие добавления автоматически увеличивают конкурентные преимущества у других проектов, которые подходят к этим вопросам более прагматично. В результате, наш самодокументируемый проект может завершить своё существование по причине излишнего педантизма. Это с одной стороны. С другой стороны - у другой целевой аудитории могут быть другие приоритеты. Вот как выглядит предыдущий фрагмент кода, но с точки зрения другой целевой аудитории: Цитата: // В.Д. Паронджанов поблагодарил пользователя Адва
// Также В.Д. Паронджанов сказал, что формулировка хорошая d#b+, ULWKzVF. 3b~u8d z5)2Y-;#tR:+j@. |
Автор: | Василий Валевич [ Среда, 13 Декабрь, 2017 16:46 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Алгоритм и программа в одном флаконе |
Владимир Паронджанов писал(а): Поясняю идею. 1. Разрабатываем алгоритм 2. Разрабатываем программу по принципу "Числитель-Знаменатель" 3. С помощью маршрутного транслятора (автор Тышов) автоматически получаем исходный код на языке Си. 4. При необходимости вручную дописываем несколько операторов языка Си. Улучшаются возможности семантической отладки (Semantic Debug) - это преимущество. Но улучшится ли реально отладка такого кода на больших системах - это вопрос. Потому что дъявол, как обычно, кроется в мелочах. |
Автор: | Василий Валевич [ Понедельник, 18 Декабрь, 2017 10:58 ] | ||
Заголовок сообщения: | Re: Язык ДРАКОН. Алгоритм и программа в одном флаконе | ||
Владимир Паронджанов писал(а): adva писал(а): Тут еще подумал: Вы правы. Цель именно такая.1) если сделать обязательным для заполнения и "числитель" и "знаменатель", то по сути получится "самодокументируемый" код, о чём так долго "мечтали большевики". Если уж так случится, что обязательные для заполнения и "числитель" и "знаменатель" будут реализованы, и в сгенерированный код попадут избыточные документирующие комментарии, то в каждодневной работе программисты могут их скрывать при помощи специальных инструментов. К примеру, для Visual Studio есть расширение, которое решает эту проблему NoComments (Hide/Show Comments) https://marketplace.visualstudio.com/items?itemName=3dGrabber.NoComment
|
Автор: | Владимир Паронджанов [ Понедельник, 18 Декабрь, 2017 12:53 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Алгоритм и программа в одном флаконе |
Василий, спасибо. Ваше предложение надо обязательно реализовать. |
Автор: | Владимир Паронджанов [ Понедельник, 18 Декабрь, 2017 15:10 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Алгоритм и программа в одном флаконе |
Василий, по вашей рекомендации выкладываю дракон-программу без комментариев (без числителей). ДРАКОН-программа без комментариев Вложение: Для сравнения: ДРАКОН-программа с комментариями (с числителями) Вложение: Прошу критиковать |
Автор: | Владимир Паронджанов [ Вторник, 19 Декабрь, 2017 13:45 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Алгоритм и программа в одном флаконе |
Это очень важная тема и важный вопрос. Прошу критиковать viewtopic.php?p=101022#p101022 |
Автор: | Василий Валевич [ Пятница, 22 Декабрь, 2017 13:17 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Алгоритм и программа в одном флаконе |
Степан Митькин писал(а): Владимир Паронджанов писал(а): Поясняю идею. 1. Разрабатываем алгоритм 2. Разрабатываем программу по принципу "Числитель-Знаменатель" 3. С помощью маршрутного транслятора (автор Тышов) автоматически получаем исходный код на языке Си. 4. При необходимости вручную дописываем несколько операторов языка Си. Выкладываю две дракон-схемы: — алгоритм — программу С одной стороны, схема сильно растёт в высоту. Многие схемы не поместятся на экране по вертикали. (Тут как бы возникает призрак Олега Гарипова и говорит: а ты купи себе монитор побольше. Денег не жалко, так как это вложение быстро и однозначно поможет тебе в работе.) Есть альтернативный способ без покупки дорогостоящего монитора - взять парочку мониторов средних размеров, но с хорошим максимальным разрешением экрана (например, 2560 x 1440 и выше). Обновить драйвера мониторов, купить хорошую оптику себе на нос в качестве очков. В результате - и видимость хорошая, и рабочее пространство большое, и мониторы компактные. |
Автор: | Владимир Паронджанов [ Понедельник, 30 Апрель, 2018 19:50 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Алгоритм и программа в одном флаконе |
Продолжение темы см. viewtopic.php?f=177&t=6251 |
Автор: | LKom [ Среда, 25 Июль, 2018 15:24 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Алгоритм и программа в одном флаконе |
https://hi-tech.mail.ru/news/lazerniy-akm/ Китайцы изобрели новый вид оружия. Лазерный «автомат Калашникова» поражает цель с 800 метров Идея "Лазерный тренажер стрельбы" В.Д. Паронджанова и С. Ефанова реализована китайцами. https://forum.drakon.su/viewtopic.php?p=100824#p100824 О ходе написания книги, В.Д. Паронджанов давно не рассказывает. |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |