Система программирования НОРМА
Первоначально термин НОРМА расшифровывался как Непроцедурное
Описание Разностных Моделей Алгоритмов. Затем
появилась и другая
трактовка: НОРМАльный уровень общения прикладного математика с
компьютером.
Язык НОРМА является специализированным непроцедурным языком,
предназначенным для спецификации задач вычислительного характера, в
частности, задач математической физики. Идеи, позволяющие автоматически
159
строить программу по спецификации задачи, были сформулированы И. Б.
Задыхайло в работе в 1963 году.
Разработчик прикладных программ абстрагируется от особенностей
конкретных компьютеров и мыслит в привычных терминах своей
предметной области. Отталкиваясь от конкретных потребностей Института
прикладной математики им. М. В. Келдыша РАН, авторы языка старались
максимально упростить решение класса задач математической физики.
Специфика предметной области ‒
это ориентация на сеточные методы.
Именно этот факт наложил значительный отпечаток как на концепцию языка,
так и на все его основные конструкции.
Конструкции языка носят декларативный характер и описывают
правила
вычисления значений. Язык предназначен для автоматизированной
разработки программ. Транслятор выполняет синтез выходной программы
помимо традиционных задач, в частности, синтаксического и семантического
анализа. Порядок предложений языка может быть произвольным.
Организация вычислений не принимается в расчет при формировании
запросов на вычисления
.
Рассматриваемый язык позволяет формулировать
запрос на вычисления, не уточняя, каким именно образом вычисления
следует организовать. Все информационные связи выявляются и
учитываются транслятором
-
синтезатором на этапах анализа исходной
программы и синтеза выходного текста. На трансляторе лежит и выбор
конкретного способа организации вычислений. В частности, на этапе синтеза
результирующей программы он может сгенерировать как последовательный,
так и параллельный код.
НОРМА –
язык, использующий однократное присваивание.
Каждая переменная может принимать значение только один раз. Такие
понятия, как память, побочный эффект, оператор присваивания и
управляющие операторы в языке НОРМА отсутствуют просто "по
определению". Запись на языке НОРМА, по существу, является записью
численного метода решения конкретной задачи.
160
НОРМА
позволяет
опустить
этап
последовательного
программирования, а для генерации параллельной программы предлагает
сразу отталкиваться от записи в терминах математических формул.
Выходные программы могут быть записаны на языках Fortran MPI,
Fortran PVM, Fortran 77 и других диалектах Fortran.
Преимущества: соотношения как язык описания заданий наиболее
близки
разработчикам численных методов и прикладным программистам.
Сохраняется весь внутренний параллелизм реализуемого алгоритма.
Математические соотношения не используют понятие памяти, в них
отсутствует
пересчет
значений переменных.
Для
таких языков
существующая технология определения параллелизма в программах
реализуется значительно проще.
Описание языка на сайте
http://www.keldysh.ru/nonna
.
Do'stlaringiz bilan baham: |