Подходы

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

Теперь эргономическая сторона. Глупо предлагать интерпретатору новый инструмент, ради которого он должен бы был расстаться со всеми другими, которым он привык доверять. Мы и не пытаемся делать этого. Мы просто попытались использовать монитор компьютера вместо стола с диаграммами, карандашей, линеек, калькулятора, справочников и альбомов палеток. Весь интерфейс, по нашему представлению, должен быть понятен на уровне интуиции, за счет узнаваемости его элементов, повторяющих предметы реальной жизни. Разница только в том, что мы наделили все элементы «сообразительностью» так, что они сами «помогают» интерпретатору выполнять те функции, для которых они предназначены (более подробно эта технология изложена в статье «Концепция визуальной интерпретации»). Ну и последнее, что мы сделали, так это, если продолжать аналогию со столом, оставили на нем место для новых, неизвестных нам инструментов, если таковые вдруг появятся. То есть, говоря техническим языком, система является открытой. Ее программный интерфейс документирован и позволяет как авторам, так и сторонним разработчикам пополнять ее новыми инструментами для решения прикладных задач. дальше>>>