Особенности языка Норма

Выбор уровня языка Норма определяет характерную его черту - в этом языке нет необходимости вводить такие понятия, как оператор присваивания и возможность переприсваивания значений (типа Х:=Х+1) и операторы перехода. Наличие таких понятий в традиционных языках программирования объясняется необходимостью формулировки конкретного алгоритма с учетом вопросов экономии и распределения памяти, порядка выполнения операторов и т.п. Норма - это язык с однократным присваиванием Побочный эффект в языке Норма отсутствует по определению.

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

Высокий уровень языка обеспечивает дружественный интерфейс с пользователем, причем даже ошибки, которые обнаруживаются транслятором-синтезатором, также фиксируются в терминах предметной области. Автоматический синтез целевой программы по исходной Норма-программе гарантирует правильность целевой программы (с точностью до правильности работы транслятора-синтезатора).

Запись на таком языке может помещаться в библиотеку исходных описаний решения задачи. Если при этом имеется описание непрерывного уравнения и указывается метод дискретизации, то текст Норма-программы достаточно легко понять, так как он содержит только математические (долго живущие) понятия.

Важно отметить, что в записи на Норме отсутствуют избыточные связи, которые обычно накладываются при программировании, особенно при оптимизации алгоритмов. Эти связи часто ограничивают возможности распараллеливания. Например, конструкция COMMON языка Фортран обычно ограничивает автоматическое распараллеливание программ.

Не менее важной, а может быть и наиболее важной с точки зрения обеспечения дружественного интерфейса с пользователем, является возможность использования языка Норма в качестве базиса для создания интегрированной среды разработки прикладных программ.

Компонентами такой среды могут быть диалоговые средства, средства визуализации, средства отладки в содержательных терминах, синтаксически-ориентированный редактор, графический редактор и так далее. Этот перечень можно считать более или менее стандартным "джентльменским набором" подсистем, составляющих современную среду разработки.

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