OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 14:11

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




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 12:10 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Info21 писал(а):
Самое главное в том, что стиль написания программ "под доказательство" дает программы с существенно более регулярной, четкой и простой структурой. При этом приходится искать и находить способы упростить код.
Просто так сказать "упрощай" не всегда доходит.
А "докажи" дает другую точку отсчета.

Федор Васильевич, а можете показать, как это писать "под доказательство"?
Хотелось бы видеть в "натуре" и в процессе.
Дисциплину программирования читал, даже Науку программирования Гриса - тоже читал.
Но никогда не писал программ "под доказательство".
Однако постоянно пользовался пошаговым уточнением.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 13:01 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Валерий Лаптев писал(а):
как это писать "под доказательство"?
Хотелось бы видеть в "натуре" и в процессе.
Дисциплину программирования читал, даже Науку программирования Гриса - тоже читал.
Но никогда не писал программ "под доказательство".
Однако постоянно пользовался пошаговым уточнением.
Ой. Хороший вопрос, но полный ответ требует подготовки материала.
На самом грубом уровне разница видна здесь:

http://www.inr.ac.ru/~info21/texts/2005 ... ide13.html
http://www.inr.ac.ru/~info21/texts/2005 ... ide14.html

Две программы эквивалентны. Но правильность первой была установлена предварительным преобразованием ко второй.
Вторая -- как раз "под доказательство".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Апрель, 2009 08:06 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Info21 писал(а):
Валерий Лаптев писал(а):
как это писать "под доказательство"?
Ой. Хороший вопрос, но полный ответ требует подготовки материала.
На самом грубом уровне разница видна здесь:

http://www.inr.ac.ru/~info21/texts/2005 ... ide13.html
http://www.inr.ac.ru/~info21/texts/2005 ... ide14.html

Две программы эквивалентны. Но правильность первой была установлена предварительным преобразованием ко второй.
Вторая -- как раз "под доказательство".

Да, хорошо видать разницу.
Однако меня и при первом прочтении книги Дейкстры, и сейчас не покидает мысль, что написание "под доказательство" касается только самого начального программирования.
То есть максимум до уровня написания процедур и функций.
В любой промышленной системе есть развитое окружение, которое частенько позволяет заменить показанные вами проги одной строкой.
Таким образом, получается, что Дейкстрины методы хороши при обучении программированию, при создании стандартных библиотек.
Ну, и если промышленному программеру действительно приходится писать нетривиальные процедуры. Однако если следовать советам экстремальных программистов, то размер методов следует ограничивать 1-5 строками. Тут и без всякого доказательства все сразу видать.

В промышленном программировании гораздо более важным является хорошая декомпозиция. Причем на всех уровнях (см. опять же Дейкстра - архитектура THE).
А в этом деле формальные методы фактически отсутствуют. И что с этим делать - пока неясно. Полно книжек с советами, как надо делать, или как делать не надо.
Однако все это - только опыт экспертов.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Апрель, 2009 08:48 
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Апрель, 2009 09:27 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Тогда получается, что идеал промышленного программиста - это программист, не умеющий программировать. В общем-то, про это Дейкстра и писал...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Апрель, 2009 09:29 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Просто получается, что есть ещё над чем поработать! :D


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Апрель, 2009 09:50 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Иван Кузьмицкий писал(а):
Тогда получается, что идеал промышленного программиста - это программист, не умеющий программировать. В общем-то, про это Дейкстра и писал...

Да об этом кто только не пишет!
Для правильного обучения программеров нужно сначала научить преподавателей правильной постановке курса. А они уже - научат программеров. Например, у нас программирование на 1 курсе преподает человек, который не является программистом по образованию. Это не критично, поскольку чел - математик. Но вот о правильной постановке курса - просто не знает. И узнать неоткуда - только если по собственной инициативе в сети копаться будет.
И кстати, это накладывает ограничение на освоение ББ, поскольку литературы просто нет. Для программиста по образованию , да еще с опытом работы освоить ББ много проще, нем непрофессионалу.

И кстати, с этой точки зрения мне было бы очень интересно ознакомиться с курсом самого Ткачева.
Я в сети обнаружил лекцию 8 - где как раз о паттернах поиска и перебора.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Апрель, 2009 09:55 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Валерий Лаптев писал(а):
Для программиста по образованию , да еще с опытом работы освоить ББ много проще, нем непрофессионалу.
Это на личном опыте? А у меня вот наоборот. Легко пошёл, я и не образован специально, и без опыта работы был. Так что не факт, не факт.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Апрель, 2009 10:01 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Валерий Лаптев писал(а):
И кстати, это накладывает ограничение на освоение ББ, поскольку литературы просто нет. Для программиста по образованию , да еще с опытом работы освоить ББ много проще, нем непрофессионалу.
Да. Проблема литературы стоит... Но я бы добавил сюда, что какой-нить Делфи/Билдер/Вижуал студию непрофессионалу нормально не освоить и при наличии литературы. Да и литература - большой процент базируется на переводе документации (типа какие свойства у этого компонента и какие у вон того).

А документация ББ, между прочим, содержит и методич. составленные учебные пособия и подсистему Obx и т. д. И перевод есть... С более подробным описанием безусловно проще, но...было бы желание.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Апрель, 2009 11:44 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Пётр Кушнир писал(а):
Валерий Лаптев писал(а):
Для программиста по образованию , да еще с опытом работы освоить ББ много проще, нем непрофессионалу.
Это на личном опыте? А у меня вот наоборот. Легко пошёл, я и не образован специально, и без опыта работы был. Так что не факт, не факт.

Вообще, наверное, да. Без всякого опыта как первую среду - освоить начинающему проще.
Или уже опытнейшему программеру, поработавшему во многих средах и языках.
А среднему, со сложившимися стереотипами - сложно.
К сожалению, таких большинство.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 08 Апрель, 2009 13:58 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Валерий Лаптев писал(а):
Однако меня и при первом прочтении книги Дейкстры, и сейчас не покидает мысль, что написание "под доказательство" касается только самого начального программирования.
То есть максимум до уровня написания процедур и функций.
Книгу я до конца пока не дочитал (отложил из-за более приоритетной на данный момент задачи), но думаю, что предисловию автора можно доверять : ). А там он говорит, что оставляет за рамками книги процедуры, потому что эта тема не менее сложная, чем описываемый материал, но является менее важной по сравнению с содержанием книги. Как-то так.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

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


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

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


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

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