Ваш комментарий о книге

Содержание

7.1. ПИРАМИДА ЯЗЫКОВ

Ясно, что построение искомой комбинации было бы невозможно, если б оно сразу начиналось на уровне тех элементов, на котором оно окончательно должно быть выражено – назовем этот уровень языком реализации. Ведь для сочинения романа недостаточно знания букв, а для того, чтобы добраться до нужного адреса, – правил уличного движения.

Поэтому мы всегда используем не один язык, а целый их набор. С помощью этого набора пытаемся решить проблему в общем, то есть свести ее к ряду подпроблем, те – к еще более мелким, и так до тех пор, пока каждая из них не будет настолько проста, что сможет быть выражена на языке реализации. Фактически мы одну сложную задачу последовательно разбиваем на все большее число все более легких. Как если бы при прокладке маршрута пользовались бы комплектом карт разного масштаба.

В самом деле, определяя путь, мы начинаем с самой грубой карты, охватывающей весь маршрут. От нее переходим к небольшому набору более подробных, от каждой из них – к нескольким еще более детальным. И всякий раз мы без труда находим нужное, так как каждая более общая карта уже по смыслу резко ограничивает дальнейший перебор. Таким образом, в иерархии языков заключено противоядие против комбинаторного взрыва.

Понятно, что успех всей многоступенчатой процедуры будет зависеть от того, насколько полон имеющийся набор «карт», нет ли там пропусков целых ярусов или отдельных экземпляров. Но такая завершенность возможна только в хорошо изученной области. Наиболее характерна именно нехватка знаний, требующая усилий для расширения и реорганизации языковых средств.

Чтобы разобраться в развитии таких средств, удобно обратиться к языкам программирования.

<<назад Содержание