Главная » Каталог    
рефераты Разделы рефераты
рефераты
рефератыГлавная

рефератыБиология

рефератыБухгалтерский учет и аудит

рефератыВоенная кафедра

рефератыГеография

рефератыГеология

рефератыГрафология

рефератыДеньги и кредит

рефератыЕстествознание

рефератыЗоология

рефератыИнвестиции

рефератыИностранные языки

рефератыИскусство

рефератыИстория

рефератыКартография

рефератыКомпьютерные сети

рефератыКомпьютеры ЭВМ

рефератыКосметология

рефератыКультурология

рефератыЛитература

рефератыМаркетинг

рефератыМатематика

рефератыМашиностроение

рефератыМедицина

рефератыМенеджмент

рефератыМузыка

рефератыНаука и техника

рефератыПедагогика

рефератыПраво

рефератыПромышленность производство

рефератыРадиоэлектроника

рефератыРеклама

рефератыРефераты по геологии

рефератыМедицинские наукам

рефератыУправление

рефератыФизика

рефератыФилософия

рефератыФинансы

рефератыФотография

рефератыХимия

рефератыЭкономика

рефераты
рефераты Информация рефераты
рефераты
рефераты

Синтаксический анализ языка НОРМА Разбор описания


МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНЖЕНЕРНО-ФИЗИЧЕСКИЙ ИНСТИТУТ
(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
Кафедра 22
Пояснительная
записка к
КУРСОВОЙ
РАБОТЕ
на тему:
"Синтаксический анализ
языка НОРМА. Разбор описаний "
 студента
группы К9-02а
Жучкова Александра Викторовича
Научный руководитель:
Комиссия:
Оценка:
Москва 1996г.
1. ВВЕДЕНИЕ
Задание, полученное мной на
УИР и КП в данном семестре являлось продолжением групповой работы, начавшейся в
предыдуших семестрах, и состояло в следующем:
·
изучить
раздел описаний языковых конструкций Нормы;
·
разработать
структуры данных и алгоритмы для разбора описаний языка программирования Норма,
с учетом специфики языка, а так же удобства написания функций, необходимых для
последующей работы транслятора;
·
написать
функции разбора раздела описаний;
·
написать
некоторые рабочие функции оперирующие с областями
2. Общее
описание языка Норма
Язык программирования Норма
является декларативным (непроцедурным) языком и предназначен для спецификации
численных методов решения задач математической физики. Изначально он был
ориентирован на решение задач математической физики разностными методами, однако
может быть использован для решения более широкого класса вычислительных задач.
Главная идея, положенная в
основу языка Норма, заключается в том, что полученные специалистом в процессе
решения прикладной задачи расчетные формулы почти непосредственно используются
для ввода в вычислительную систему и проведения счета. Таким образом, язык
Норма дает прикладному математику возможность сформулировать свою задачу в
привычных для него терминах. Запись на языке Норма - это, по существу, строгая
запись численных методов решения математической задачи, запись еще не
алгоритмов, а просто расчетных формул и остальной необходимой информации.
Отметим, что в записи на
Норме не требуется никакой информации о порядке счета, способах организации
вычислительных (циклических) процессов. Порядок предложений языка может быть
произвольным - информационные взаимосвязи будут выявлены и учтены при организации
процесса счета транслятором. Эта возможность, конечно, увеличивает трудоемкость
и сложность при компиляции текста программы, но разработчики языка сознательно
пошли на это, чтобы сделать данный язык удобным для использования широким
кругом специалистов-математиков, имеющих небольшой опыт работы на компьютере.
Выбор уровня языка Норма
определяет характерную его черту - в этом языке нет необходимости вводить такие
понятия, как оператор присваивания и возможность переприсваивания значений
(типа х:=х+1) и операторы перехода. Наличие таких понятий в традиционных языках
программирования объясняется необходимостью формулировки конкретного алгоритма
с учетом вопросов экономии и распределения памяти, порядка выполнения
операторов и т. п. Побочный эффект в языке Норма отсутствует по определению.
Понятно, что многие из этих вопросов появляются снова на этапе синтеза рабочей
программы. Однако, здесь они решаются автоматически по строгим правилам,
гарантирующим правильность синтезируемой программы.
Непроцедурность языка Норма
позволяет преодолеть еще одну трудность, связанную с распараллеливанием
алгоритма при счете на ЭВМ, допускающих совмещение операций. Известные методы
распараллеливания последовательных алгоритмов основаны на выявлении, при некоторых
ограничениях, частей алгоритма, которые можно выполнять независимо, в
соответствии с заданным критерием параллелизма - асинхронные вычисления,
синхронные и т. п. Однако, выявление взаимосвязей в уже сформированном
последовательном алгоритме является неестественной и трудной задачей, так как
анализируемая формулировка, как правило, насыщена избыточными взаимосвязями
(типа введения рабочих переменных , конкретных способах организации циклов и т.
п.). Вообще говоря, ни откуда не следует, что последовательный алгоритм надо
транслировать в параллельный, а не определять параллельный сразу по
непроцедурной записи.
Эти свойства, и некоторые
другие ограничения, позволяют строго обосновать разрешимость синтеза выходной
программы, так как в достаточно общей постановке решение этой задачи приводит к
значительным математическим трудностям - она может оказаться NP-полной, либо
вообще неразрешимой. С другой стороны, исследования, связанные с разработкой и
применением языка Норма показывают, что имеющиеся ограничения приемлимы с практической
точки зрения.
3 Структура
транслятора с языка Норма.
Транслятор с языка Норма
сразу проектировался как многопроходный. На первом проходе на вход лексического
анализатора поступает текст исходной программы (см. приложение 1), который
преобразуется в последовательности лексем, объединенные в кванты*. Параллельно происходит начальное
заполнение таблиц имен и констант, после этого эти таблицы из хеш-структур
преобразуются в массивы. Это делается для максимального освобождения
оперативной памяти перед следующими проходами, а так же для ускорения доступа,
так как далее идет очень интенсивное обращение к этим таблицам. На втором
проходе происходит сортировка этих квантов по определенным правилам.
Отсортированный список квантов поступает на следующем проходе на вход
синтаксического анализатора, который разбирает описания языковых конструкций,
операторы ввода, операторы вывода, операторы присваивания и т.д. В результате
работы синаксического анализатора заполняются множество рабочих таблиц:
областей, условий и т.п. На следующем проходе по данным таблицам происходит
определение информационных зависимостей между операторами, определяется порядок
вычисления. Далее для не сильно связанных компонентов методом нахождения
гиперплоскостей происходит распараллеливание отдельных фрагметов программы.
После чего генерируется выходная фортран-программа.
Для обеспечения доступа к
верхней памяти, а также для возможного свопинга практически все операции с
оперативной памятью осуществляются с использованием библиотеки функций
менеджера памяти, написанной сотрудниками института прикладной математики.
4 Описание и
решение задачи.
4.1 Постановка
задачи.
В программе, написанной на
языке Норма могут встречаться следующие специфические объекты:
·
параметры
областей, задающие в неявном виде границы диапазонов при описании областей;
·
индексы
областей, которые задают как бы имена различным кординатным направлениям в
областях.
·
индексы
распределения, служащие для отображения двух индексных направлений индексного
пространства области задачи на матрицу процессорных элементов (ПЭ)
распределенной системы;
·
индексные
конструкции, служащие для сокращения записи сложных индексных выражений;
·
внешние
функции и разделы;
·
области;
·
скалярные
величины и величины на области
(синтаксис смотри приложение 2).
Как видно из
вышеперечисленного, наиболее важным и информативным объектом является описание
области. Дейсвительно, и индексы и параметры области являются лишь
вспомогательными понятиями, делающими описания областей более удобочитаемыми
или более гибкими. Для величин, определенных на области, их области являются
тем множеством, на котором они существуют. Понятие области введено в языке
Норма для представления понятия индексного пространства. Область - это
совокупность целочисленных наборов {i1,...,in}, n>0, ij>0,
j=1,...,n, каждый из которых задает координаты точки n-мерного индексного
пространства. С каждым направлением (осью координат) n-мерного пространства
задачи связывается уникальное имя - имя-индекса
(имя оси координат индексного пространства). Следует отметить, что область
определяет значения координат точек индексного пространства, а не значения
расчетных величин в этих точках. Так же следует отметить то, что все множества
должны быть конечны, т.к. конечно пространство памяти ЭВМ, на которое будут в
последствии отображатся величины на области.
Разработчики языка Норма на
основании опыта, накопленного ими при решении задач вычислительной математики,
решили, что для решения большинства задач подобного класса достаточно ввести
следующие разновидности областей:
·
прямоугольные;
·
диагональные;
·
условные.
В свете вышесказанного перед
нами (группой разработчиков) встала задача напсания транслятора с языка Норма с
использованием инструментальных средств языка программирования Си и библиотеки
функций работы с оперативной памятью. Передо мной были поставлены задачи:
·
разработка
структур для хранения данных, полученных в результате разбора описаний
областей;
·
разработка
алгоритмов и написание функций разбора описаний;
·
разработка
алгоритмов для написания функций пересечения областей
4.2 Решение
задачи. Выбор структуры данных
Проанализировав различия и
сходство той информации, которую необходимо хранить для каждой разновидности
области, мною, при согласовании с разработчиками языка и моими коллегами, были
выбраны следующие структуры.(смотри приложение 4 ).
Во первых, главная таблица
областей (далее просто таблица областей), в которой для всех областей хранится
количество направлений (мерность множества), по каждому направлению имя индекса
и значения левой и правой границ, тип области, ключ для поиска детальной
информации в других таблицах. Решено было ввести четыре типа области:
прямоугольная - она характерна тем, что проекцией на любую двумерную систему
координат будет прямоугольник; диагональная - это область, границы которой по
некоторым направлениям могут быть прямые под углом 45°
к оси; положительно-условные - это часть родительской области, на которой
логическое выражение, задающее эту область будет выдавать значение правда;
отрицательно-условные - это то же, что и положительно-условные, только
логическое выражение будет выдавать значение ложь. Получилось так, что таблица
областей вышла неоднородной, так как могут существовать области с различным
количеством направлений. Хранить эту таблицу в массиве с размером полей,
расчитанным на максимально возможное количество направлений, я посчитал
нерациональным. Была рассмотрена возможность реализации хранения на списках, но
эта возможность мною тоже была отвергнута, потому что получился бы список с
большим количеством мелких элементов, что затруднило бы работу менеджера памяти
(которому на каждый такой элемент пришлось бы заводить рабочие структуры, что
тоже использовало бы память), а так же увеличило бы время работы. Поэтому было
решено хранить эти таблицы в одном большом буфере и иметь специальные функции,
позволяющие производить запись и чтение из этого буфера. Этот способ экономен в
использовании памяти (мало пустующего пространства), удобен менеджеру памяти
(работает с одним блоком), достаточно быстрый доступ. Тем более что похожий
механизм был ранее реализован моим коллегой при работе с таблицей имен на этапе
лексического анализа, и он согласился реализовать эти функции.
Во-вторых, таблица
диагональных областей, где хранится детальная информация, позволяющая полностью
охарактеризовать диагональную область, а именно: количество диагональных
плоскостей, по каждой диагональной плоскости имена индексов и константы
пересечения диагоналей с осью, определенной первым индексом. Например, если
индексы родительской области находятся в пределах 1£ i £10   1£ j £5, а условие имеет вид i < j то построение записи в таблицу будет
таким :
j                                                                j
c2
5
1                                                              c1
       1                                  10        i                                                     i
Так как получается схожая с
таблицей областей картина, а именно, записи в таблице диагональных областей
могут иметь различную длину, решено было использовать тот же механизм хранения
информации.
В-третьих, таблица условных
областей, в которой хранится номер положительно-условной области,
отрицательно-условной области, родительской области, ключ для поиска условия в
таблице условий. Так как поля данной таблицы однородны, то она легко хранится в
структуре массива. В основном данная таблица была заведена с целью сохранения
связи положительно- и отрицательно-условных областях, имеющих общую
родительскую область. Это впоследствии облегчает проведение таких операций, как
пересечение над условными областями.
В-четвертых, на основе
механизма, использовавшегося для хранения таблицы областей, была создана
таблица условий, в которой хранятся логические выражения, заданные при описании
условных областей.
4.3 Разработка алгоритмов и реализация функций разбора описаний
областей
В языке различается описание области - это именованная
условная, прямоугольная или диагональная область, и использование области - синтаксически это имя-области или описание области
без имени. Области используются в описаниях величин, определенных на
области, при задании области вычисления в операторах ASSUME, в описания входных или выходных величин, при задании
областей фактических параметров в вызовах разделов или функций, в функциях
редукции.
Чтобы учесть эти два случая
при описании области без имени я
решил заводить новые имена в таблице имен и отождествлять их с этими областями.
Для этого строится расширение уже существующей таблицы имен. При разборе мною
был использовался метод прямого анализа. Разбор осуществляется последовательным
сканирование цепочки лексем слева направо. По ходу сканирования происходит
проверки как синтаксических конструкций, так и ряда семантических правил, при
этом происходит постепенное накопление в рабочих структурах информации об
объекте, которая в случае успешного окончания разбора заносится в таблицы
общего назначения. Разбор описания области осуществляет функция razb_obl (см.
приложение 3). Функция, путем нахождения “уникальных” лексем или их сочетаний,
вызывает для разбора каждой разновидности области свою функцию (например,
razb_multobl разбирает описание многомерной области). Затем каждая отдельная
функция разбирает описание своей области и при успешном окончании заполняет
нужные таблицы (областей, диагональных областей и т.д.), а так же таблицу имен.
В случае неудачного разбора выдается сообщение об ошибке.
4.4 Разработка алгоритмов для фукций работы с областями
Помимо задания вычисляемого
пространства для величины на области, понятие и описание области используются в
Норме во многих местах. Например, в операторах FOR ASSUME или в операторах ввода и вывода. Очень часто необходимо
произвести над областями проверку, является ли их пересечение пустым множеством
или нет. Например, при определении информационных зависимостей между
опреаторами и определением порядка вычислеий. В данном примере необходимо
установить дает ли пересечение требуемой области Sтреб  и FOR B ASSUME X=F(Z,Y[i+1,j]...)                                      Sтреб FOR C ASSUME Y=F(P,K[i-1,j]...)
области С пустое множество. Если дает, то данные
операторы не связаны между собой, иначе второй оператор необходимо вычислить
раньше первого.
Пересечение областей я
планирую проводить следующим образом. Для случая прямоугольных областей
необходимо по каждому направлению сравнить верхние и нижние границы индексов.
Для диагональных областей помимо сравнения диапазонов индексов необходимо
аналогичным образом сравнивать диагональные диапазоны. Если мы имеем дело с
условными областями то необходимо рассматривать два случая. Первый - это когда
две эти области имеют общего (пускай не ближайшего) родителя. Тогда необходимо
найти первого такого родителя и от него провести проверку, какие еще предки,
положительно или отрицательно-условные, находятся на пути от этого родителя к
данным областям, и если есть различия, то пересечение пусто, иначе нет. Это
можно проиллюстировать с помощью представления условных областей в виде
бинарного дерева, где в одну сторону идут положительно-условные области, а в другую отрицательно-условные. На рисунке пересечение двух темно закрашенных областей не пусто , а пересечение темно и светло закрашенных - пусто. Другой случай возникает, если области не имеют ни одного общего предка (хотя такой случай очень странен в смысле логики программы). Тогда мы можем проверить на пересечение самых первых предков этих областей (они являются прямоугольными). Если они не пересекаются, то и условные не пересекаются, иначе мы считаем, что они могут пересечься.
Помимо пересечения областей
часто требуется найти объединение. Эту задачу аналитическими методами решить
очень сложно, поэтому планируется реализовать ее методом перебора
5. ЗАКЛЮЧЕНИЕ
В результате проделанной работы мною были достигнуты
следующие цели:
·
разработаны
сновные структуры для хранения данных, полученных в результате разбора описаний
областей;
·
разработаны
алгоритмы и написаны функции разбора описаний областей;
·
разработаны
алгоритмы для написания функций пересечения областей
Некоторые функции находится
на стадии доработки и отладки. Завершение работы над ними планируется в
следующем семестре. Задание на УИР и КП выполнил практически полностью.
Список литературы:
А.Н. Андрианов, К.Н.
Ефимкин, И.Б. Задыхайло, Н.В. Поддерюгина "Язык Норма"
А.Н. Андрианов, К.Н.
Ефимкин, И.Б. Задыхайло "Непроцедурный язык Норма и методы его
реализации"
А.Б. Бугеря "Реализация
математических функций языка Норма для распределенных высислительных
систем"
Ф.Льюис “Теоретические
основы проектирования компиляторов”
* Квант -
семантически законченный фрагмент текста программы(например, описание области)
Ïðèëîæåíèå1
Ñòðóêòóðà
òðàíñëÿòîðà
ñ ÿçûêà
ïðîãðàììèðîâàíèÿ
Íîðìà
 
Âõîä:                                                                                
Äèàãíîñòèêà,
îøèáêè                       
            
Èñõîäíûé
òåêñò                       Ëåêñè÷åñêèé
è ÷àñòè÷íî                      
Ñèíòàêñè÷åñêèé
àíàëèç
             
ïðîãðàììû +                          
ñèíòàêñè÷åñêèé
àíàëèç                      è
÷àñòè÷íî
ñåìàíòè÷åñêèé
             îïöèè
êîìàíäíîé                   
Âûäåëåíèå   
Ãðóïïðèðîâêà               
àíàëèç îïèñàíèé
è îïåðàòîðîâ
             ñòðîêè                                    
ëåêñåì             ëåêñåì                        
çàïîëíåíèå
âñåõ òàáëèö
                                                       
íà÷àëüíîå
çàïîëíåíèå
òàáëèö
                                                                    
Èíòåðôåéñíûå
ôóíêöèè
          
ÒÀÁËÈÖÛ                                                                                                        
ÒÀÁËÈÖÛ
       
(èìåí,
êîíñòàíò,                                                                                                      
(Èìåí,
êîíñòàíò,
       
êëþ÷åâûõ
ñëîâ                                                                                                         
îáëàñòåé,
                                                                                                                                       
èíäåêñîâ è
ò. ï.)
                                                                   
ÌÅÍÅÄÆÅÐ
ÏÀÌßÒÈ
Âûõîä:
              Òåêñò                               
Ãåíåðàöèÿ                    
Îðãàíèçàöèÿ                   
Ïîñòðîåíèå
ãðàôà
             
ïðîãðàììû                        
Ôîðòðàí                      
ïàðàëëåëüíûõ                       èíôîðìàöèîííûõ
             íà
Ôîðòðàíå                      
ïðîãðàììû                     
âû÷èñëåíèé                   
çàâèñèìîñòåé
îïåàòîðîâ
                                                                                                                                           
ïðîãðàììû
Ïðèëîæåíèå
2 Ñèíòàêñèñ
îïèñàíèé
ÿçûêà Íîðìà
Íîòàöèÿ
ñèíòàêñèñà
Â
íîòàöèè
ñèíòàêñèñà,
èñïîëüçóåìîé
â äàííîì
îïèñàíèè,
ïðèìåíÿåòñÿ
ðàñøèðåííàÿ
ôîðìà
Áýêóñà-Íàóðà.
Îáîçíà÷åíèÿ
{A}*,{A}+,{A1...,An},[A] îçíà÷àþò {A}* ::= Æ|A|AA... {A}+ ::= A|AA... {A1...,An} ::= A1|...|An [A] ::= Æ|A
ãäå
A-íåêîòîðûé
îáúåêò
ÿçûêà, Æ-
ïóñòî, |- âûáîð
îäíîé èç
àëüòåðíàòèâ,
...- è òàê äàëåå.
Ïðè
îïðåäåëåíèè
ïðàâèë ÿçûêà
ñèíòàêñè÷åñêèå
ïîíÿòèÿ
íàáèðàþòñÿ
êóðñèâîì, à
ñëîâà è
ëèòåðû,
âîñïðèíèìàåìûå
áóêâàëüíî,
ïðÿìûì
øðèôòîì.
Àëüòåðíàòèâíûå
êîíñòðóêöèè
ïåðå÷èñëÿþòñÿ,
êàê ïðàâèëî, â
ñòîëáèê, êàæäàÿ
àëüòåðíàòèâà
íà
îòäåëüíîé
ñòðîêå.
Èíîãäà
èñïîëüçóþòñÿ
÷àñòè÷íî
ïîä÷åðêíóòûå
îáîçíà÷åíèÿ
ñèíòàêñè÷åñêèõ
êîíñòðóêöèé,
íàïðèìåð, èìÿ-ìíîæåñòâà.
Ñèíòàêñè÷åñêè
ýòî
îáîçíà÷åíèå
èäåíòè÷íî
îáîçíà÷åíèþ
èìÿ, à
ïîä÷åðêíóòàÿ
÷àñòü
êîíñòðóêöèè
íåñåò
äîïîëíèòåëüíóþ
ñåìàíòè÷åñêóþ
èíôîðìàöèþ.
Îáîçíà÷åíèå
ñïèñîê-ýëåìåíò
çàìåíÿåò
íåïóñòîé
ñïèñîê ýëåìåíòîâ,
ïåðå÷èñëåííûõ
÷åðåç
çàïÿòóþ:
ñïèñîê-ýëåìåíò
ýëåìåíò{,ýëåìåíò}*
Â
êàæäîì
êîíêðåòíîì
ñëó÷àå
îïðåäåëåíèå ýëåìåíòà
ïðèâîäèòñÿ.
Îïèñàíèÿ
îïèñàíèå:
îïèñàíèå-îáëàñòè
îïèñàíèå-èíäåêñîâ-îáëàñòåé
îïèñàíèå-ñêàëÿðíûõ-âåëè÷èí
îïèñàíèå-âåëè÷èí-íà-îáëàñòè
îïèñàíèå-èíäåêñíîé-êîíñòðóêöèè
îïèñàíèå-èíäåêñîâ-ðàñïðåäåëåíèÿ
îïèñàíèå-ïàðàìåòðîâ-îáëàñòè
îïèñàíèå-âõîäíûõ
îïèñàíèå-âûõîäíûõ
îïèñàíèå-âíåøíèõ
Îïèñàíèå
îáëàñòåé
îïèñàíèå-îáëàñòè:
îïèñàíèå-áåçóñëîâíîé-îáëàñòè
îïèñàíèå-óñëîâíîé-îáëàñòè
îïèñàíèå-áåçóñëîâíîé-îáëàñòè
îïèñàíèå-ïðÿìîóãîëüíîé-îáëàñòè
îïèñàíèå-äèàãîíàëüíîé-îáëàñòè
îáëàñòü
íîâàÿ
îáëàñòü áåç
èìåíè
èìÿ-îáëàñòè
áåçóñëîâíàÿ-îáëàñòü
íîâàÿ
îáëàñòü áåç
èìåíè
èìÿ-áåçóñëîâíîé-îáëàñòè
èìÿ-îáëàñòè
èìÿ-áåçóñëîâíîé-îáëàñòè
èìÿ-óñëîâíîé-îáëàñòè
èìÿ-áåçóñëîâíîé-îáëàñòè
èìÿ-ïðÿìîóãîëüíîé-îáëàñòè
èìÿ-äèàãîíàëüíîé-îáëàñòè
Îïèñàíèå
ïàðàìåòðîâ
îáëàñòè
îïèñàíèå-ïàðàìåòðîâ-îáëàñòè
DOMAIN PARAMETERS 
ñïèñîê-çíà÷åíèå
çíà÷åíèå
èìÿ-ïàðàìåòðà-îáëàñòè=öåëîå
áåç çíàêà
Îïèñàíèå
èíäåêñîâ
îáëàñòåé
îïèñàíèå-èíäåêñîâ-îáëàñòåé
INDEX ñïèñîê-èìÿ-èíäåêñà
Îïèñàíèå
èíäåêñîâ
ðàñïðåäåëåíèÿ
îïèñàíèå-èíäåêñîâ-ðàñïðåäåëåíèÿ
DISTRIBUTION INDEX èìÿ-èíäåêñà
=
ïðîñòîé-äèàïàçîí
[èìÿ-èíäåêñà=ïðîñòîé-äèàïàçîí]
ïðîñòîé-äèàïàçîí
öåë-êîíñòàíòà[..öåë-êîíñòàíòà]
Îïèñàíèå
èíäåêñíîé
êîíñòðóêöèè
îïèñàíèå-èíäåêñíîé-êîíñòðóêöèè
MACRO INDEX  èìÿ-èíäåêñíîé-êîíñòðóêöèè
[ñïèñîê-ÿâíîå-èíä-âûðàæåíèå]
ÿâíîå-èíä-âûðàæåíèå
èìÿ-èíäåêñà[{+,-}êîíñò-âûðàæåíèå]
èìÿ-èíäåêñà
= êîíñò-âûðàæåíèå
èìÿ-èíäåêñà = èìÿ-èíäåêñà
[{+,-}êîíñò-âûðàæåíèå]
Îïèñàíèå
âíåøíèõ
èìåí
îïèñàíèå-âíåøíèõ-èìåí
EXTERNAL FUNCTION 
ñïèñîê-èìÿ-ôóíêöèè  [òèï]
EXTERNAL PART  ñïèñîê-èìÿ-ðàçäåëà
Îïèñàíèå
îáëàñòåé
îïèñàíèå-îáëàñòè
îïèñàíèå-áåçóñëîâíîé-îáëàñòè
îïèñàíèå-óñëîâíîé-îáëàñòè
îïèñàíèå-áåçóñëîâíîé-îáëàñòè
îïèñàíèå-ïðÿìîóãîëüíîé-îáëàñòè
îïèñàíèå-äèàãîíàëüíîé-îáëàñòè
îáëàñòü
íîâàÿ
îáëàñòü áåç
èìåíè
èìÿ-îáëàñòè
áåçóñëîâíàÿ-îáëàñòü
íîâàÿ
îáëàñòü áåç
èìåíè
èìÿ-áåçóñëîâíîé-îáëàñòè
èìÿ-îáëàñòè
èìÿ-áåçóñëîâíîé-îáëàñòè
èìÿ-óñëîâíîé-îáëàñòè
èìÿ-áåçóñëîâíîé-îáëàñòè
èìÿ-ïðÿìîóãîëüíîé-îáëàñòè
èìÿ-äèàãîíàëüíîé-îáëàñòè
Îïèñàíèå
áåçóñëîâíîé
îáëàñòè
îïèñàíèå-ïðÿìîóãîëüíîé-îáëàñòè
ìíîãîìåðíàÿ-îáëàñòü
íîâàÿ-îáëàñòü
ìíîãîìåðíàÿ-îáëàñòü
îäíîìåðíàÿ-îáëàñòü
[ èìÿ-ìíîãîìåðíîé-îáëàñòè
]: ( îáëàñòü-ïðîèçâåäåíèå
)
îáëàñòü-ïðîèçâåäåíèå
ñîñòàâëÿþùàÿ-îáëàñòü
{ ; ñîñòàâëÿþùàÿ-îáëàñòü
}+
ñîñòàâëÿþùàÿ-îáëàñòü
ìíîãîìåðíàÿ-îáëàñòü
èìÿ-ïðÿìîóãîëüíîé-îáëàñòè
îäíîìåðíàÿ-îáëàñòü
[ èìÿ-îäíîìåðíîé-îáëàñòè
] : ( èìÿ-èíäåêñà
= çíà÷åíèå
)
çíà÷åíèå
äèàïàçîí
êîíñò-âûðàæåíèå
äèàïàçîí
êîíñò-âûðàæåíèå
.. êîíñò-âûðàæåíèå
íîâàÿ-îáëàñòü
[èìÿ-íîâ-îáëàñòè
:] íîâàÿ-îáëàñòü-áåç-èìåíè
íîâàÿ-îáëàñòü-áåç-èìåíè
èìÿ-áåçóñë-îáëàñòè / ñïèñîê-ìîäèôèêàöèÿ
ìîäèôèêàöèÿ
èìÿ-èíäåêñà=çíà÷åíèå
èìÿ-îäíîìåðíîé-îáëàñòè
{{+,-} ôóíêöèÿ-ãðàíèö}+
ôóíêöèÿ-ãðàíèö
LEFT (êîíñò-âûðàæåíèå)
RIGHT (êîíñò-âûðàæåíèå)
èìÿ-ïðÿìîóãîëüíîé-îáëàñòè
èìÿ-îäíîìåðíîé-îáëàñòè
èìÿ-ìíîãîìåðíîé-îáëàñòè
èìÿ-íîâ-îáëàñòè
îïèñàíèå-äèàãîíàëüíîé-îáëàñòè
èìÿ-äèàãîíàëüíîé-îáëàñòè :
èìÿ-áåçóñëîâíîé-îáëàñòè
/ ñïèñîê-óñëîâèå-íà-èíäåêñ
Îïèñàíèå
óñëîâíîé
îáëàñòè
îïèñàíèå-óñëîâíîé-îáëàñòè
èìÿ-óñëîâíîé-îáëàñòè
, èìÿ-óñëîâíîé-îáëàñòè:
èìÿ-îáëàñòè
/
óñëîâèå-íà-îáëàñòü
Îïèñàíèå
âåëè÷èí
îïèñàíèå-ñêàëÿðíûõ-âåëè÷èí
VARIABLE ñïèñîê-èìÿ-ñêàëÿðà
[òèï]
îïèñàíèå-âåëè÷èí-íà-îáëàñòÿõ
VARIABLE 
ñïèñîê-îïðåäåëåíèå-âåëè÷èí-íà-îáëàñò
[òèï]
îïðåäåëåíèå-âåëè÷èí-íà-îáëàñòè
ñïèñîê-èìÿ-âåëè÷èíû-íà-îáëàñòè
DEFINED ON áåçóñëîâíàÿ-îáëàñòü
òèï
{REAL , INTEGER , DOUBLE}
Приложение 4 Схема информационных таблиц областей.
ТАБЛИЦА ОБЛАСТЕЙ 2 i 1 5 j 10 40 ... 1 1 k 0 100 ... ... ... ... 3 5 j 5 15 t 1 50 ... 2 .... ... ... ... ... ... ... ... ...
Таблица условий 45° j c1 c2              i Eps>1/2*(i-j)...
Таблица
диагональных областей 2 i j c1 c1 ... ... ... ...
Таблица условных областей 25 23 30 1 ... ... ... ...
рефераты Рекомендуем рефератырефераты

     
Рефераты @2011