normDDr (1158429), страница 8

Файл №1158429 normDDr (Раздаточные материалы) 8 страницаnormDDr (1158429) страница 82019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 8)

error code 111 'incorrect using #...#''

error code 63 'iteration index <error context>' differs from index of '<error context>

5.2.9Обработка Норма-предложения(Функция kbaht)

Предложение в виде последовательности лексем заносится в соответствующую группу Списка Норма-предложений (List of Norma statements) функцией writetab.

Общая структура управления функции kbaht приведена на следующей схеме.

k baht writetab in_kwant


cooth

Оператор ASSUME, состоящий из нескольких соотношений, разбивается функцией cooth на предложения, число которых равно числу соотношений. Каждое предложение получает уникальный statement number.

Функция writetab определяет группу Списка Норма-предложений (List of Norma statements) (group a-g), в которую надо включить предложение, и определяет очередной statement number (увеличивая счетчик kba=kba+1).

Функция in_kwant

  1. проверяет правильность скобочной структуры (скобки ‘(’ и ‘)’, ‘[’ и ‘]’) в рассматриваемом предложении,

  2. заносит предложение в соответствующую группу Списка Норма-предложений (List of Norma statements),

  3. заносит в Таблицу соответствия предложения-строки (Statements-lines table) строку:

statement number

bline

eline

и устанавливает значение bline=eline,

4) если задан режим последовательных вычислений (seq=-1), заносит в Таблицу последовательных групп (Table of ordered groups) statement number.

Функция in_kwant фиксирует ошибку:

error code 401 'open bracket '<error context>

5.2.10Остановка компиляции(Функция StopCompile)

1) glob=glob+osh, globw=globw+osh1

2) Для вывода сообщений о результатах трансляции вызывается функция errprogr блока Listing generator

5.2.11Завершение лексического анализа(Функция EndLex)

Завершает работу блока лексического анализа и осуществляет передачу информации для обработки на последующих этапах трансляции. Вызывает функции следующих блоков транслятора.

Общая структура управления функции приведена на следующей схеме.

E ndLex table_it_struct parser listing

graf erroutall forprint erroutall isiofile

exit_part_compile

Функция table_it_struct преобразует Список итераций (List of iterations) в Таблицу структуры итераций (Table of iterations structure).

Функция parser - входная точка блока Part unit parser, (обработка описаний, операторов, итераций),

Функция listing - входная точка блока Listing generator (вывод текста исходной программы и сообщений компилятора после синтаксического анализа),

Функция graf - входная точка блока Data dependencies graph builder,

Функция erroutall - входная точка блока Listing generator (вывод сообщений компилятора после построения и анализа графа информационных зависимостей Data dependencies graph, построения Fortran-программы),

Функция forprint - входная точка блока Fortran DVM code generator (генерация текстового представления выходной Фортран-DVM программы).

Функция isiofile - входная точка блока Input files analyser (анализ файлов ввода данных).

Функция exit_part_compile - входная точка блока Exit part unit compilation.

5.3Синтаксический анализ Норма-раздела (Part unit parser).

Синтаксический анализ предложений Норма-программы и перевод их во внутреннее представление. Каждое предложение Норма программы представлено в виде последовательности кодов лексем и уникального номера предложения. После анализа заполняются соответствующие структуры данных компилятора.

Общая структура управления блока Part unit parser приведена на следующей схеме.

p arser kvpar1 kvop1 kbbxo kbbyx

kvopr1 kbiter

5.3.1Обработка предложений группы а(Функция kvpar1)

Обработка описаний DOMAIN PARAMETERS, INDEX. Синтаксис в языке Норма:

declaration-of-domain-parameters :

DOMAIN PARAMETERS list-prescription

prescription :

name-domain-parameter = int-const

declaration-of-domain-indexes :

INDEX list-name-index

Функция получает очередное описание из группы a Cписка Норма предложений (List of Norma statements) вызывая функцию kbpar.

listp

k vpar1

porind

В зависимости от типа описания вызывается функция listp (обработка DOMAIN PARAMETERS) или функция porind (обработка INDEX).

Функция listp записывает в Таблицу имен (Symbol table), соответствующую информацию о каждом name-domain-parameter (признак ‘P’ и значение int-const).

Функция фиксируют ошибки:

error code 24 'incorrect DOMAIN PARAMETERS '<error context>

error code 25 'value of DOMAIN PARAMETERS '<error context>'is not integer’

Функция porind записывает очередной name-index из списка индексов в Таблицу упорядоченных индексов (Table of ordered indexes) и в Таблицу имен (Symbol table), соответствующую информацию о каждом name-index (признак ‘I’).

Функция фиксируют ошибки:

error code 31 incorrect list element of indexes'.

error code 32 'index '<error context>' declared twice'

error code 33 'incorrect index'<error context>

5.3.2Обработка предложений групп b,c,d(Функция kvop1)

Обработка описаний областей, описаний переменных, DISTRIBUTION INDEX, EXTERNAL, описаний условных областей, - группы b,c,d Cписка Норма предложений (List of Norma statements).

Общая структура управления функции kvop1 приведена на следующей схеме.

k vop1 opisdom opisdef opiska

Функция opisdom обрабатывает описания безусловных областей. Синтаксис в языке Норма:

declaration-of-unconditional-domain

declaration-of-rectangular-domain

declaration-of-diagonal-domain

Функция получает очередное описание безусловной области из группы b Cписка Норма предложений (List of Norma statements) вызывая функцию kbdomain.

Результат работы функции opisdom - запись информации об области в Таблицу имен (Symbol table), Таблицу областей (Table of domains) и Таблицу диапазонов (Table of ranges), либо запись информации об обнаруженных ошибках в Список ошибок (List of errors).

Общая структура управления функции opisdom приведена на следующей схеме.

condm

o pisdom mnoz m ultidim

onedim

Области в Норма-прогрмме могут иметь имя, либо использоваться без указания имени. В последнем случае компилятор генерирует для области служебное имя. Если область является декартовым произведением нескольких областей (одномерных или многомерных), то в Таблице областей (Table of domains) она представляется как декартово произведение одномерных областей.

5.3.2.1Определение типа описания безусловной области (Функция mnoz)

Осуществляет анализ типа описания безусловной области. Синтаксис в языке Норма:

declaration-of-rectangular-domain :

multidimensional-domain

new-domain

multidimensional-domain :

onedimensional-domain

[ name-multidimensional-domain : ] ( domain-product )

onedimensional-domain :

[ name-onedimensional-domain : ] ( name-index = value )

new-domain :

[ name-new-domain : ] new-domain-without-name

declaration-of-diagonal-domain :

name-diagonal-domain : name-unconditional-domain / list-condition-on-index

В зависимости от типа описания вызывает функции onedim (обработка onedimensional-domain), multidim (обработка multidimensional-domain), condm (обработка new-domain или diagonal-domain).

Функция фиксирует ошибку:

error code 9 'incorrect domain'<error context>

error code 17 'repeated declaration of domain '<error context>

5.3.2.2Обработка описания одномерной области (Функция onedim)

Осуществляет анализ и обработку onedimensional-domain. Синтаксис в языке Норма:

onedimensional-domain :

[ name-onedimensional-domain : ] ( name-index = value )

value :

range

const-expression

range :

const-expression .. const-expression

1) Вычисляются константные выражения const-expression, являющиеся границами диапазонов (функция wyc). Для этого по константному выражению функцией poliz строится польская запись (polish notation), функция wyc1 интерпретирует польскую запись и вычисляет ее значение, функция zapk заносит вычисленные значения в Таблицу констант (Constant table).

2) Информация о диапазоне записывается в Таблицу диапазонов (Table of ranges), информация об области - Таблицу областей (Table of domains), информация о name-onedimensional-domain и name-index - в Таблицу имен (Symbol table), name-index приписывается в Таблицу упорядоченных индексов (Table of ordered indexes), если его там нет.

Функция фиксирует ошибки:

error code 10 'incorrect boundary of range'

error code 8 <error context>' is not DOMAIN PARAMETERS

error code 74 'incorrect scalar expression '<error context>

Функция фиксирует предупреждение:

error code 7 'range for index'<error context>'consists from one point'

5.3.2.3Обработка описания многомерной области (Функция multidim)

Осуществляет анализ и обработку multidimensional-domain. Синтаксис в языке Норма:

Характеристики

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7029
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее