с. 58

> -- Цитата:
> Ершов:	Дело в том, что программы должны теперь обладать необычайной надёжностью и защищённостью - куда большей, чем, скажем, те же самые мосты или станки.	...	Сейчас это моя самая большая забота. Что-то надо делать, создавать какую-то вынуждающую обстановку, которая не позволила бы программисту работать по-старому, то есть, заканчивая свою работу и отдавая её людям, не быть уверенным в её стопроцентной точности. Существующая практика программирования совершенно неадекватна тем задачам, которые стоят перед эти новым видом человеческой деятельности. Свидетельства правильности программ носят эмпирический и заведомо приближённые характер и основаны на демонстрации поведения машины, управляемой данной программой, в весьма ограниченном числе ситуаций. .. Сегодня оценка степени достоверности программы - личное дело каждого программиста. А нынешние правила приёмки результатов их труда, при всей кажущейся строгости, носят поверхностный характер, не затрагивающий существа самого программного продукта ...	Теперь два слова о причинах, породивших нынешнее положение. Добрых две трети из двухсот тысяч профессиональных программистов, которые сегодня трудятся в стране, были выпущены вузами и университетами в десятилетие между 1968 и 1977 годами по специальности "Прикладная математика" или родственным ей. ... Не подвергая сомнению ни добросовестность их [учебных программ и учебников] авторов, ни необходимость обучения тем начальным сведениям по программированию, которые содержатся в этих книгах, надо всё-таки признать, что с позиций современной науки всё, чему сейчас учат будущих программистов, не выходит за пределы элементарной "компьютерной грамотности".	Программированию как научно обоснованному методу составления программ для ЭВМ не учат и сейчас. ... Действительно, есть проекты, в которых достигается высокая надёжность программ, но делается это средствами, недоступными массовому разработчику, чересчур дорогой ценой. Есть поток научной, главным образом переводной литературы, который должен был, казалось, играть формирующую роль в подходе программистов к своей работе. Но тираж и расходимость этих книг показывают, что они становятся достоянием лишь незначительной части профессиональных программистов, а кроме того, знание, заключённое в этих книгах, за редчайшим исключением не может быть использовано в непосредственной практике и потому оказывает лишь угнетающее воздействие - вызывает раздвоение между "большой наукой" и неприглядной действительностью.	С горечью приходится констатировать, что личный опыт программиста лишь усиливает эмпирическое начало в его труде. В последние годы, правда, в программировании стали созревать очень глубокие аналогии, раскрывающие математический характер создаваемого нами доказательного программирования и его связь с другими разделами математики. Составление программы можно представить в виде символического решения некоторого уравнения - поставленной перед программистом задачи. Сама программа получается как побочный результат строгих рассуждений о возможности её создания. Таким образом, её правильность гарантируется всем математическим аппаратом, использованным при её получении. Конечно, чудес на свете не бывает - плата за доказательность программирования состоит в том, что приходится манипулировать текстами, превышающими в десять раз по объёму собственно программу.	- 	- Да, её самую. Вся концепция лексикона направлена на то, чтобы выработать стабильную, убедительную и всеохватывающую математическую форму записи программы, сформулировать - опять-таки математически базу знания, найти те закономерности, которым удовлетворяет процесс программирования. Это можно назвать математическим анализом программ - как раньше был математический анализ величин и функций. Концепция эта сейчас настолько "носится в воздухе", что я не могу по чести сказать, что являюсь её единоличным автором. Просто мне удалось сформулировать некоторые положения.	[Слово "лексикон"] родилось как стремление противопоставить нечто многочисленным языкам программирования. Программирование родилось под знаком мечты об едином языке, но сразу же породило великое множество их. Проблема тут в диалектическом противоречии. У всякого языка программирования две ипостаси. Одна - быть средой, в которой возникает программа. Тут перед нами встаёт образ языка-оболочки, обладающего расчленённой семантикой и разнообразными изобразительными средствами. .	...	Отсюда следует важный тезис: поскольку мы не можем повлиять на языковое разнообразия или хотя бы расчитывать на его заметное сокращение, идеология программирования не может ориентироваться ни на какой конкретный язык. Такая, скажем, книга, как "Структурное программирование на КОБОЛе", - это всего лишь костыли, гуманно предлагаемые людям, покалеченным смолоду.	Вот качестве альтернативы единому языку программирования и надвигается представление о языковой среде, которую хочется назвать лексиконом программирования в том смысле, в котором говорят "и он перешёл на свой лексикон профессионального бухгалтера".