Дизайн Паскаля был частично мотивирован работой по структурированному программированию 1960-х годов, включая новаторскую работу Эдсгера Дейкстры Дисциплина программирования . Дейкстра (тот самый человек, который считал goto
вредным) изобрел методы создания программ, которые были правильными по построению. Эти методы, включая методы записи циклов, фокусируются на постусловии , установленном после завершения цикла. При создании формы repeat... until
Дирк вдохновил Вирта сделать условие завершения, а не его дополнение, явным в коде.
Я всегда восхищался такими языками, как Smalltalk и Icon, которые предлагают две синтаксические формы, что позволяет программисту четко выражать свои намерения без необходимости полагаться на легко пропущенный оператор дополнения. (В Icon это формы while e1 do e2
и until e1 do e2
; в Smalltalk они block1 whileTrue: block2
и block1 whileFalse: block2
.) С моей точки зрения, ни C, ни Паскаль не являются полностью построенным, ортогональным дизайном.