Вообще статья, конечно, многогранна и каждый может увидеть там что-то свое.

Мое понимание этой статьи основывается на следующих фразах:
> -- Цитата:
> ...Конечно, здесь мы сознательно умалчиваем о более глубоких средствах:  и трансформаторах программ, но эти средства мы побережем для развития ....Синтезирующее программирование: метод пошагового уточнения программ на основе . Пошаговое уточнение сопровождается сериями преобразований, отражающих внутреннюю природу языковых конструкций или факты о предметной области, известные программисту. Процесс программирования приобретает характер  о существовании программы, решающей поставленную задачу. Сама программа является как бы побочным результатом этого рассуждения. Или, наоборот, доказательное рассуждение, собранное как отдельный текст, оказывается сертификатором правильности построенной программы. В последние годы в теории программирования начали созревать очень глубокие аналогии, раскрывающие математический характер  и его связь с другими разделами математики. В частности, спецификацию задачи можно рассматривать как неявное уравнение относительно программы, а пошаговое уточнение программы с применением преобразований – как символический метод решения этого уравнения. При этом возникают как точные, так и приближенные методы.Роль приближенного решения играет программа, вычисляющая тотальную функцию, принимающую значения в предметной области, дополненной авостом. Все неавостные значения приближающей функции являются значениями функции приближаемой.Чудес на свете не бывает, и платой за  является необходимость манипулирования с объемами текстовой информации, превышающими на порядок объем собственной программы. Поэтому  программ может стать реальностью только при мощной машинной поддержке. ...Синтезированную программу нужно объединять с заготовленным программным модулем, который, в свою очередь, получается конкретизацией более общей программы. Полученная программа должна быть составлена на разные машины и опираться на библиотеки, выраженные на разных языках. Сразу появляется задача о языковой среде, в которой должен выполняться проект, включая и его . В качестве альтернативы единому языку программирования мы выдвигаем понятие о языковой среде, которую мы называем лексиконом программирования. Лексикон программирования – это лингвистическая система с фразовой структурой, содержащая в себе  для выражения всех общезначимых конструкций, употребляемых при формулировании условий задачи, при синтезе и преобразовании программ. В качестве основы лексикон содержит стандартную математическую . В дополнение к ней лексикон содержит нотацию для основных конструкций и примитивов программирования на самых разных уровнях. Смысл этих конструкций сам выражается средствами лексикона. Лексикон содержит развитую систему именования и разнообразные правила подстановки.

То есть, программы на условном языке, например, на языке придуманном Дейкстрой и дополненные предусловиями, постусловиями, инвариантами на математическом языке логики, претендует на вариант лексикона программирования (см. вложенный файл)
Вложение:Комментарий к файлу:Алгоритм из книги Гриса "Наука программирования"

lex.PNG [ 18.9 КБ | Просмотров: 20066 ]
