Лучшие бумаги Dijkstra для объяснения этой кавычки?

Я наслаждался "Скромным Программистом" ранее сегодня и натыкался на эту кавычку выбора:

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

Я ищу, как какой из 1300 Dijkstra + записи лучше всего описывают более подробно правила, такие, он описывал выше.

10
задан jemfinch 19 May 2010 в 01:38
поделиться

1 ответ

Стр. С 5 по 18: http://userweb.cs.utexas.edu/users/EWD/ewd02xx/EWD249.PDF
Mid. от страницы 3 до конца: http://userweb.cs.utexas.edu/users/EWD/ewd04xx/EWD473.PDF
Конечная страница с 5 по конец: http: //userweb.cs.utexas .edu / users / EWD / ewd06xx / EWD641.PDF
Все: http://userweb.cs.utexas.edu/users/EWD/transcriptions/EWD02xx/EWD261.html (голландский, перевод = ниже)

Примечание: Дейкстра нумерует свои страницы, начиная с 0. Приведенные номера страниц начинаются с 1, номера страницы PDF, а не написанных номеров страниц.


Мой перевод EWD261 на английский язык :

Как программировать математически

(четко определенная) программа структурирована так же, как (четко определенная) математическая теория. Работа программистов не отличается от творческой математики.

Однако есть небольшие, но важные отличия:

  1. Базовых концепций программирования не так много, и их нетрудно понять (хотя они обманчиво просты); вот почему это идеальный вариант для практики разработки. (Помимо этого, существует потребность в правильности, программа должна действительно работать!)
  2. Имея математическое образование, человек узнает о существующих теоремах, а именно. оснащение студента конкретным (подробным) набором понятий; программист же должен сам разработать необходимую концепцию. Программирование требует абстракций, которые ведут к творчеству, в то время как математика ограничивается применением существующих теорем.
  3. Поскольку программы большие и, тем не менее, должны работать, программисты научатся разрабатывать осторожно и осознанно. Именно этому и нужно учить! Для меня неоправданно преподавать обширные знания.
7
ответ дан 4 December 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: