DRAKON.SU

Текущее время: Пятница, 27 Декабрь, 2024 04:03

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




Начать новую тему Ответить на тему  [ Сообщений: 163 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9  След.
Автор Сообщение
СообщениеДобавлено: Вторник, 16 Июнь, 2009 13:36 

Зарегистрирован: Вторник, 27 Май, 2008 13:24
Сообщения: 155
Владимир Паронджанов писал(а):
Судя по Вашим словам, я допустил несколько ошибок, вследствие чего стало "возможно составлять безобразные по критериям..
Это недоразумение, я имел в виду что Вы привели примеры ошибок как не надо создавать ДРАКОН-схемы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 16 Июнь, 2009 13:49 

Зарегистрирован: Вторник, 27 Май, 2008 13:24
Сообщения: 155
Alexey_Donskoy писал(а):
Или здесь - порог великого открытия? :D
Здесь по-видимому порог некоторого ограничения некоторого .. э-э-э.. авторитета. Авторитет наверное и сам был бы не прочь с этим разобраться, если бы имел такую возможность. :( :(


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 16 Июнь, 2009 14:25 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Не надо про авторитеты и ограничения!

Вопрос вроде простой - достаточность маршрутно-структурной метаинформации в проектировании программных систем.

Подвопросы:
- а какие ещё есть важные виды метаинформации в проекте (ну там от ER-диаграмм и т.д. и т.п.);
- весовые коэффициенты важности маршрутной и другой метаинформации;
- корреляция удобства представления алгоритма с вышеперечисленным множеством...

Если непонятно выразился, то поясню, что "структурный" и "неструктурный" ЯВУ есть частные проекции, возможные способы представления алгоритмической метаинформации. Между ними нет принципиальной разницы, первый удобнее для человека, второй - для автоматической кодогенерации. А меня интересуют другие (формализованные) виды необходимой метаинформации.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 16 Июнь, 2009 14:45 

Зарегистрирован: Вторник, 27 Май, 2008 13:24
Сообщения: 155
Alexey_Donskoy писал(а):
Каким боком проблема "структурность vs. goto" помогает или мешает решению подобных вопросов? На мой взгляд, только таким, что иногда важный инвариант нагляднее изобразить таким способом, а иногда - этаким. От задачи зависит.
Имеем не проблему "структурность vs. goto", а проблему "структурность синтаксическая vs. структурность семантическая." Точнее проблему теоретической упёртости.
И ДРАКОН и PASCAL гарантируют структурность нижнего уровня, то есть ту часть семантической структурности, которая гарантируется их синтаксисом. "Тем и интересны". Математико-теоретическая же упёртость требует всё впихнуть в одну формулу- в формулу синтаксиса. Стремление понятно и плодотворно. Но в пределе неосуществимо.
GOTO (в паскале или си), адрес ветви (в ДРАКОНе) и позволяют осуществить семантическую структурность там, где барьер ей ставит жёстко зашитая в грамматике структурность синтаксическая, генерящая автоматом семантическую структурность нижнего уровня.
То есть GOTO не против, а за. Не разрушает структурность, а наоборот делает её возможной. Если конечно наша цель смысловая (семантическая) структурность, а не соблюдение любой ценой выработанных теоретиками (и вшитых намертво в ЯП) правил нижнего её уровня- уровня синтаксиса.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 16 Июнь, 2009 15:23 

Зарегистрирован: Вторник, 27 Май, 2008 13:24
Сообщения: 155
Alexey_Donskoy писал(а):
Если непонятно выразился, то поясню, что "структурный" и "неструктурный" ЯВУ есть частные проекции, возможные способы представления алгоритмической метаинформации. Между ними нет принципиальной разницы, первый удобнее для человека, второй - для автоматической кодогенерации. А меня интересуют другие (формализованные) виды необходимой метаинформации.
Понятно выразился. Первейший смысл- удобство для человека. Если мы это удобство снижаем ради автоматической кодогенерации, то задача не решена. Другие виды метаинформации - ныне находимся на стадии поиска хотя бы неформализованных её видов. В отличие от символов взамен "М" и "Ж" в мире не существует международных значков для важнейших и одновременно простейших "да" и "нет", и здесь мы их так и не нашли! Было бы хотя бы неформализованное, на качественном уровне, а там математики набегут, формализуют что угодно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 16 Июнь, 2009 15:39 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Чур нас от набегов! :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 16 Июнь, 2009 21:15 

Зарегистрирован: Среда, 27 Май, 2009 01:41
Сообщения: 33
Info21 писал(а):
Никак не пойму: как можно настолько не понять вот эти тексты:http://www.inr.ac.ru/~info21/blackbox/disciplina/
Может, займетесь критикой? Что там непонятно?

- все понятно, вопросов нет. Претензия одна: в рассматриваемых текстах описывается "сферический конь в вакууме", что впрямую и указано в тексте, читаем: "..соблазн поставить быструю «заплатку» — соблазн зачастую непреодолимый под давлением жесткого графика."
..
вдогонку еще раз: почему при непрерывном развитии всякого "структурного программирования" и прочих несомненно полезных прибабахов/фич - программы остаются такими же "глючными" как и в оные времена масссовго использования гото? причина в гото? или в чем-то другом?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 16 Июнь, 2009 21:25 

Зарегистрирован: Среда, 27 Май, 2009 01:41
Сообщения: 33
Цитата:
Ну а из Ваших рассуждений я понял, что Вы используете процедуры точно так же, как и go to,

- прямо поражает способность некоторых "телепатировать" ;-) и делать выводы о стиле программирования собеседников на основании десятка их постов.
Уверяю вас, что разницу между гото и процедурами я вполне себе представляю, и использую в подавляющем количестве случаев процедуры и функции, а не гото. И когда надо достигнуть цели, которая "эффективнее" достигается с использованием гото - использую гото: как пример, приведенный мной выше код, который без гото превращается в многоэтажное нагромождение Если - для меня и для моего "преемника" очень непрозрачное... Радует то, что необходимость использования гото в моей практике исчезающе мала... Как правило использование гото - следствие изначально неверного построения "модуля", а платить мне за 3-4 часа за редизайн программы - никто не будет, если задача решается за 1 час.. вот и все...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 16 Июнь, 2009 21:27 

Зарегистрирован: Среда, 27 Май, 2009 01:41
Сообщения: 33
Valery Solovey писал(а):
Tomba писал(а):
...вызова процедуры - ее что, искать не надо?
Во-первых, не надо, если название функции и выполняемые ею действия вменяемые (а зачастую так и есть). Во-вторых, речь была не о том.

не надо*2! ;-) А что, название метки в гото не может быть вменяемым?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 16 Июнь, 2009 21:35 

Зарегистрирован: Среда, 27 Май, 2009 01:41
Сообщения: 33
Что хочется отметить:
- сущестовала в свое время такая система программирования как Clarion - имела своих приверженцев, свой багаж, занимала ощутимую нишу, развивалась от ДОС к Виндам и все было более -менее хорошо... но умерло.. умерло... Причем мне ясно, что умерло именно в момент перехода от линейного "процедурно-ориентированного" программирования к программированию на основе ООП на шаблонах ABC - сложность прочтения кода возрасла многократно при условии значительного количества классов...
.. где тот порог, когда стремление к структурности программирования превышает разумные пределы? и приходится переходить на более высокий уровень - к кодогенерации на основе "описательных" схем/языков...?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 16 Июнь, 2009 23:15 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 40
Откуда: г. Ярославль
Tomba писал(а):
- прямо поражает способность некоторых "телепатировать" ;-) и делать выводы о стиле программирования собеседников на основании десятка их постов.


Хы-хы, так ведь я читаю то, что Вы пишете, не более того. Сначала Вы утверждаете, что go to местами уместен. Далее выясняется, что Вы сами используете go to там, где грамотное конструирование неуместно (из-за нехватки времени). Отсюда можно сделать вывод, что по-вашему, использовать go to при грамотном подходе неуместно. Собс-но, о чём и говорил Дейкстра :) Разве что затыкать дырки в govnocod'е.

Tomba писал(а):
- сущестовала в свое время такая система программирования как Clarion


Ничё не умерло. Жив себе и даже развивается. До сих пор регулярно получаю clarion-рассылку, народ там плотно общается на всякие околокларионовские темы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 18 Июнь, 2009 05:07 

Зарегистрирован: Среда, 27 Май, 2009 01:41
Сообщения: 33
Иван Кузьмицкий писал(а):
Сначала Вы утверждаете, что go to местами уместен. Далее выясняется, что Вы сами используете go to там, где грамотное конструирование неуместно (из-за нехватки времени). Отсюда можно сделать вывод, что по-вашему, использовать go to при грамотном подходе неуместно.

- вообще-то, если подойти с позиций формальной логики к указанной выше цитате - то вывод не следует из предыдущих утверждений (такой прием достаточно часто используется, кстати...).

.
может кларион где-то там живет, но судя по эху - распространен примерно так же как Дракон ;-) Возможно, Дракон даже шире распространен...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 18 Июнь, 2009 09:49 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 40
Откуда: г. Ярославль
Tomba писал(а):
- вообще-то, если подойти с позиций формальной логики
А какой же вывод можно сделать, по-вашему? Обобщение "go to уместен там, где не теряется ясность" слишком уж широкое. Конкретика проявилась по ходу обсуждения - это поддержка исторически сложившихся программных текстов. Частность такая. Как Вы делаете из частности ТАКОЕ обобщение - для меня загадка. Тоже, наверное, часто используемый приём :)

Tomba писал(а):
может кларион где-то там живет, но судя по эху - распространен примерно так же как Дракон ;-) Возможно, Дракон даже шире распространен...
К вам долетает совсем уже отдалённое эхо :) В моём эхе несколько десятков русскоязычных разработчиков постоянно и интенсивно общаются по разной тематике. И это только те, кто регулярно общается, а на самом деле подписанных на clalist-рассылку около пары сотен, кажется.

Ещё, я когда-то выписывал журнал ClarionMag, он жив и сейчас: http://www.clarionmag.com

Ну и велосипедисты вроде помирать не собираются: http://www.softvelocity.com/

До кучи, ещё пара ссылок:
http://www.clarion.ru - тут можно посмотреть список пользователей.
http://www.clarionlife.net - портал разработчиков.
http://arsis.ru - использует Clarion в своих разработках.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 18 Июнь, 2009 10:44 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5952
Откуда: Москва
Уважаемые коллеги!
Может быть, кого-нибудь из Вас заинтересует предлагаемая ниже статья.
_____________________________________________________


Продолжения и продвинутая управляющая логика
Почерпните новые приемы из специализированных языков

Джонатан Бартлетт, технический директор, New Media Worx

28.10.2008

Управляющая логика программ обычно прямолинейна: последовательность, выбор, итерация. Многим программистам, обученным на этих базовых управляющих структурах, бывает тяжело увидеть, какие ещё элементы управляющей логики могут пригодиться. Эта статья содержит начальные сведения о продолжениях и учит совершенно по-новому смотреть на управляющую логику.
После первого знакомства с программированием многие программисты перестают задумываться об управляющей логике, поскольку большинство языков располагает лишь малой частью ее элементов. Однако мир управляющей логики выходит далеко за рамки возможностей, предоставляемых большинством основных языков программирования. Во многих не так широко известных специализированных языках имеются интересные и продвинутые элементы управляющей логики.

Полный текст здесь
http://www.ibm.com/developerworks/ru/li ... S_CMP=GR01


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 21 Июнь, 2009 06:03 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 24
Иван Кузьмицкий писал(а):
Tomba писал(а):
.. под читабельностью я прежде всего разумею удобочитаемость, а не краткость записи.
код
Код:
Если        а=2 Тогда  а=1;
ИначеЕсли  а=1 Тогда  а=2;
Иначе //некорректные входные данные
КонецЕсли;

является удобочитаемым, но явно менее эффективным чем код
Код:
а=3-а


Я не понимаю, что Вы имеете в виду под эффективностью. В первом примере, смысл происходящего раскрыт очень неплохо; учитывается некорректность данных, и даже видно, что веток в условном операторе может быть больше.


А по мне - оба примера фиговые :) Хотя второй конечно совсем не катит, но и первый плохо отражает смысл. Если я правильно понял суть этого кода - это инверсия. Ну так и выразите ее явно и кратко через булевское выражение:
Код:
a = !a;


А уже полученный результат приведите к нужной константе:

Код:
return a ? 1 : 2;


Отделите мух от котлет, заодно и проблема корректности данных решится сама собой ;)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 21 Июнь, 2009 22:08 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 24
Геннадий Тышов писал(а):
1. Минимум программного кода. Меньше коде - меньше в нем ошибок и меньше надо воспринимать.


Согласен.

Геннадий Тышов писал(а):
2. Минимум локальных переменных. Меньше переменных - нет необходимости помнить о их назначении, значения получаем из функций.


Не согласен. Лучше завести временную переменную (еще лучше с осмысленным именем) и записть несколько коротких выражений в несколько строк, чем одно большое выражение с кучей скобок и тоже в несколько строк. Впрочем это все к вопросу об "объявление + инициализация".

Геннадий Тышов писал(а):
3. Минимум вложености в структурные конструкции языка: циклы, проверки условий.


Согласен. Вложенности больше 2 обычно не допускаю.

Геннадий Тышов писал(а):
4. Минимум меток и Goto. Используются Continue, Break, Return (Exit).


Согласен. Но если goto, то только вперед (в конец процедуры).

Геннадий Тышов писал(а):
5. Минимальное пребывание в процедуре, функции, методе. При получении отрицательного условия, при получении результата - выполнить Return. При этом локальнее становится получение результата, упрощается дальнейший программный код: нет необходимости добираться до конца процедуры, упрощается дальнейший программный код - нет локальных переменных для сохранения состояния, уменьшается вложенность конструкций.


Согласен.

Геннадий Тышов писал(а):
6. Множественный выход, в отличии от единого, создает декомпозицию (разделенность) множества принимаемых значений результата.


Не понял глубины мысли :)

Геннадий Тышов писал(а):
7. Декомпозиция программы - разделение ее на функциональные процедуры, с минимальными функциональными целями. При этом создается функциональная среда проблемных решений и программирование идет в направлений их использования.


Правильная декомпозиция рулит, но сформулировать "правильность" не берусь :)

Геннадий Тышов писал(а):
8. Отказ от универсальных, настраиваемых процедур. Они излишне сложны, имеют сложную логику, сложно тестировать, оторваны от проблемной области, требуют изучения при использовании, область применения определена не в полном обьеме.


Согласен.

Геннадий Тышов писал(а):
9. Код писать максимально без пробелов в операторах (в отличии от табличного стиля), Можно при поиске найти не только переменную, но и присвоение ей значения (F:=2; , но не F := 2; ), можно найти фрагменты выражений.


Не согласен. Во всех нормальных IDE есть поиск по регулярному выражению. Кроме того, если писать с пробелами, то и искать можно с пробелами (что лично я и делаю, к регулярным выражениям обращаюсь в крайнем случае).

Геннадий Тышов писал(а):
10. Завершающие end писать на уровне отступа вложенного содержания.


Косметика. Питоновский синтаксис рулит ;)

Геннадий Тышов писал(а):
Разрешите привести пример, без пояснения о назначении.


C первого взгляда - много почти дублирующегося кода. Читать сложно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 22 Июнь, 2009 16:11 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
dvuugl писал(а):
То есть GOTO не против, а за. Не разрушает структурность, а наоборот делает её возможной. Если конечно наша цель смысловая (семантическая) структурность, а не соблюдение любой ценой выработанных теоретиками (и вшитых намертво в ЯП) правил нижнего её уровня- уровня синтаксиса.


Не надо впихивать всю семантику в одно представление. Назначение схем алгоритмов - показ логики управления. С этой точки зрения GOTO вредит ясности семантики. Потому что в логике управления время идёт непрерывно и только вперёд, и любая попытка его прервать (произвольный прыжок в середину блока-цикла) - это хак, основанный на случайном совпадении каких-то кусков алгоритма и желании это использовать.
Математике пофиг - в ней можно формализовать и то, и то (хотя не одинаково легко). А вот с т.з. природы вещей - далеко нет. Формальные аппараты типа Дейкстровского создаются для выявления этой природы, а не наоборот.

Касательно семантики использования переменных - для этого есть графы информационной зависимости (потоков данных). Всё это обсосано сто раз в теории схем программ...

Просто инструментарий, основанный на plain text, не даёт легко строить и переключаться между несколькими проекциями семантики.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 18 Июль, 2009 19:42 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Вложение:
Goto.png
Goto.png [ 25.65 КБ | Просмотров: 20462 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 18 Июль, 2009 22:22 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 24
Александр Ильин писал(а):
Вложение:
Goto.png


Динозавр - это Дейкстра, что-ли? :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 24 Июль, 2010 20:55 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
отсюда (после 30 минуты)
видео http://video.yandex.ru/users/ya-events/view/128/

А. Степанов - "GoTo - красивый оператор и не кидайте в меня камнями, я не говорю дерзость."


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

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


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

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


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

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