Существует математический язык, который на самом деле описывает программу или, скорее, ее операции. Вы берете исходное состояние и затем трансформируете это состояние, пока не достигнете желаемого целевого состояния. Преобразования дают программный код, который должен быть выполнен.
См. Статью Википедии о логике Хоара .
Основная идея заключается в том, что для каждой функции (независимо от того, помещаете ли вы ее в класс или в функцию старого стиля), у вас есть предварительное и постусловие. Например, предварительным условием может быть наличие массива, содержащего >= 0
элементов. постусловие состоит в том, что каждый элемент [i] должен быть равен <= element [j] для каждого i <= j. </p>
Обычное описание будет "функция сортирует массив". Но математические термины позволяют преобразовать входные данные (которые должны соответствовать предварительному условию) в выходные данные (которые должны соответствовать постусловию).
Это немного громоздко в использовании, особенно для более сложных программ, но некоторые примеры впечатляют. Часто в результате вы получаете действительно компактный код, который выглядит довольно сложным, но работает с первого раза.