OberonCore https://forum.oberoncore.ru/ |
|
Программирование "под доказательство" https://forum.oberoncore.ru/viewtopic.php?f=82&t=1896 |
Страница 1 из 1 |
Автор: | Валерий Лаптев [ Понедельник, 06 Апрель, 2009 12:10 ] |
Заголовок сообщения: | Re: Подскажите какой язык программирования выбрать? |
Info21 писал(а): Самое главное в том, что стиль написания программ "под доказательство" дает программы с существенно более регулярной, четкой и простой структурой. При этом приходится искать и находить способы упростить код. Просто так сказать "упрощай" не всегда доходит. А "докажи" дает другую точку отсчета. Федор Васильевич, а можете показать, как это писать "под доказательство"? Хотелось бы видеть в "натуре" и в процессе. Дисциплину программирования читал, даже Науку программирования Гриса - тоже читал. Но никогда не писал программ "под доказательство". Однако постоянно пользовался пошаговым уточнением. |
Автор: | Info21 [ Понедельник, 06 Апрель, 2009 13:01 ] |
Заголовок сообщения: | Re: Подскажите какой язык программирования выбрать? |
Валерий Лаптев писал(а): как это писать "под доказательство"? Ой. Хороший вопрос, но полный ответ требует подготовки материала. Хотелось бы видеть в "натуре" и в процессе. Дисциплину программирования читал, даже Науку программирования Гриса - тоже читал. Но никогда не писал программ "под доказательство". Однако постоянно пользовался пошаговым уточнением. На самом грубом уровне разница видна здесь: http://www.inr.ac.ru/~info21/texts/2005 ... ide13.html http://www.inr.ac.ru/~info21/texts/2005 ... ide14.html Две программы эквивалентны. Но правильность первой была установлена предварительным преобразованием ко второй. Вторая -- как раз "под доказательство". |
Автор: | Валерий Лаптев [ Вторник, 07 Апрель, 2009 08:06 ] |
Заголовок сообщения: | Re: Подскажите какой язык программирования выбрать? |
Info21 писал(а): Валерий Лаптев писал(а): как это писать "под доказательство"? Ой. Хороший вопрос, но полный ответ требует подготовки материала. На самом грубом уровне разница видна здесь: http://www.inr.ac.ru/~info21/texts/2005 ... ide13.html http://www.inr.ac.ru/~info21/texts/2005 ... ide14.html Две программы эквивалентны. Но правильность первой была установлена предварительным преобразованием ко второй. Вторая -- как раз "под доказательство". Да, хорошо видать разницу. Однако меня и при первом прочтении книги Дейкстры, и сейчас не покидает мысль, что написание "под доказательство" касается только самого начального программирования. То есть максимум до уровня написания процедур и функций. В любой промышленной системе есть развитое окружение, которое частенько позволяет заменить показанные вами проги одной строкой. Таким образом, получается, что Дейкстрины методы хороши при обучении программированию, при создании стандартных библиотек. Ну, и если промышленному программеру действительно приходится писать нетривиальные процедуры. Однако если следовать советам экстремальных программистов, то размер методов следует ограничивать 1-5 строками. Тут и без всякого доказательства все сразу видать. В промышленном программировании гораздо более важным является хорошая декомпозиция. Причем на всех уровнях (см. опять же Дейкстра - архитектура THE). А в этом деле формальные методы фактически отсутствуют. И что с этим делать - пока неясно. Полно книжек с советами, как надо делать, или как делать не надо. Однако все это - только опыт экспертов. |
Автор: | Alexey_Donskoy [ Вторник, 07 Апрель, 2009 08:48 ] |
Заголовок сообщения: | Re: Подскажите какой язык программирования выбрать? |
Вот именно! |
Автор: | Иван Кузьмицкий [ Вторник, 07 Апрель, 2009 09:27 ] |
Заголовок сообщения: | Re: Подскажите какой язык программирования выбрать? |
Тогда получается, что идеал промышленного программиста - это программист, не умеющий программировать. В общем-то, про это Дейкстра и писал... |
Автор: | Alexey_Donskoy [ Вторник, 07 Апрель, 2009 09:29 ] |
Заголовок сообщения: | Re: Подскажите какой язык программирования выбрать? |
Просто получается, что есть ещё над чем поработать! |
Автор: | Валерий Лаптев [ Вторник, 07 Апрель, 2009 09:50 ] |
Заголовок сообщения: | Re: Подскажите какой язык программирования выбрать? |
Иван Кузьмицкий писал(а): Тогда получается, что идеал промышленного программиста - это программист, не умеющий программировать. В общем-то, про это Дейкстра и писал... Да об этом кто только не пишет! Для правильного обучения программеров нужно сначала научить преподавателей правильной постановке курса. А они уже - научат программеров. Например, у нас программирование на 1 курсе преподает человек, который не является программистом по образованию. Это не критично, поскольку чел - математик. Но вот о правильной постановке курса - просто не знает. И узнать неоткуда - только если по собственной инициативе в сети копаться будет. И кстати, это накладывает ограничение на освоение ББ, поскольку литературы просто нет. Для программиста по образованию , да еще с опытом работы освоить ББ много проще, нем непрофессионалу. И кстати, с этой точки зрения мне было бы очень интересно ознакомиться с курсом самого Ткачева. Я в сети обнаружил лекцию 8 - где как раз о паттернах поиска и перебора. |
Автор: | Пётр Кушнир [ Вторник, 07 Апрель, 2009 09:55 ] |
Заголовок сообщения: | Re: Подскажите какой язык программирования выбрать? |
Валерий Лаптев писал(а): Для программиста по образованию , да еще с опытом работы освоить ББ много проще, нем непрофессионалу. Это на личном опыте? А у меня вот наоборот. Легко пошёл, я и не образован специально, и без опыта работы был. Так что не факт, не факт.
|
Автор: | Евгений Темиргалеев [ Вторник, 07 Апрель, 2009 10:01 ] |
Заголовок сообщения: | Re: Подскажите какой язык программирования выбрать? |
Валерий Лаптев писал(а): И кстати, это накладывает ограничение на освоение ББ, поскольку литературы просто нет. Для программиста по образованию , да еще с опытом работы освоить ББ много проще, нем непрофессионалу. Да. Проблема литературы стоит... Но я бы добавил сюда, что какой-нить Делфи/Билдер/Вижуал студию непрофессионалу нормально не освоить и при наличии литературы. Да и литература - большой процент базируется на переводе документации (типа какие свойства у этого компонента и какие у вон того).А документация ББ, между прочим, содержит и методич. составленные учебные пособия и подсистему Obx и т. д. И перевод есть... С более подробным описанием безусловно проще, но...было бы желание. |
Автор: | Валерий Лаптев [ Вторник, 07 Апрель, 2009 11:44 ] |
Заголовок сообщения: | Программирование "под доказательство" |
Пётр Кушнир писал(а): Валерий Лаптев писал(а): Для программиста по образованию , да еще с опытом работы освоить ББ много проще, нем непрофессионалу. Это на личном опыте? А у меня вот наоборот. Легко пошёл, я и не образован специально, и без опыта работы был. Так что не факт, не факт.Вообще, наверное, да. Без всякого опыта как первую среду - освоить начинающему проще. Или уже опытнейшему программеру, поработавшему во многих средах и языках. А среднему, со сложившимися стереотипами - сложно. К сожалению, таких большинство. |
Автор: | Valery Solovey [ Среда, 08 Апрель, 2009 13:58 ] |
Заголовок сообщения: | Re: Подскажите какой язык программирования выбрать? |
Валерий Лаптев писал(а): Однако меня и при первом прочтении книги Дейкстры, и сейчас не покидает мысль, что написание "под доказательство" касается только самого начального программирования. Книгу я до конца пока не дочитал (отложил из-за более приоритетной на данный момент задачи), но думаю, что предисловию автора можно доверять : ). А там он говорит, что оставляет за рамками книги процедуры, потому что эта тема не менее сложная, чем описываемый материал, но является менее важной по сравнению с содержанием книги. Как-то так.
То есть максимум до уровня написания процедур и функций. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |