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