Войти на сайт ( )
[Вход] [Регистрация]
Компьютеры » Программирование » Структура и реализация макроязыков [Gaist-Endruy]
[Обновить]
[ Ответить ]
[Добавить в закладки]
Страница: 1, 2, 3 ... 9, 10, 11, 12, 13, 14
Gaist-Endruy ( off )
( 09:41 24-03-2009 )
АЛГОРИТМ

Gaist-Endruy ( off )
( 09:41 24-03-2009 )
Ниже приведена формальная запись соответствующих алгоритмов обработки макроопределений двухпросмотровым способом.
Каждый из алгоритмов осуществляет построчный просмотр входного текста.

Gaist-Endruy ( off )
( 09:42 24-03-2009 )
ПЕРВЫЙ ПРОСМОТР - МАКРООПРЕДЕЛЕНИЯ:

Gaist-Endruy ( off )
( 09:42 24-03-2009 )
Алгоритм первого просмотра проверяет каждую строку входного текста. Если она представляет собой псевдооперацию MACRO, то все следующие за ней строки запоминаются в ближайших свободных ячейках МДТ. Первая строка макроопределения - это имя самого макроса. Имя заносится в таблицу имен МНТ с индексом этой строки в МДТ. При этом происходит также подстановка номеров формальных параметров, вместо их имен.

Gaist-Endruy ( off )
( 09:42 24-03-2009 )
Если в течение просмотра встречается команда END, то это означает, что весь текст обработан, и управление можно передавать второму просмотру для обработки макрокоманд.

Gaist-Endruy ( off )
( 09:42 24-03-2009 )
ВТОРОЙ ПРОСМОТР - РАСШИРЕНИЕ МАКРОКОМАНД:

Gaist-Endruy ( off )
( 09:43 24-03-2009 )
Алгоритм второго просмотра проверяет мнемонический код каждого предложения. Если это имя содержится в МНТ, то происходит обработка макропредложения по следующему правилу: из таблицы МНТ берется указатель на начало описания макроса в МДТ.

Gaist-Endruy ( off )
( 09:43 24-03-2009 )
Макропроцессор готовит массив списка АЛА содержащий таблицу индексов формальных параметров и соответствующих операндов макрокоманды. Чтение производится из МДТ, после чего в прочитанную строку подставляются необходимые параметры, и полученная таким образом строка записывается в ВЫХТ2. Когда встречается директива END, текст полученного кода передается для компиляции ассемблеру.

Gaist-Endruy ( off )
( 09:43 24-03-2009 )
Первый просмотр
Начало алгоритма

Gaist-Endruy ( off )
( 09:43 24-03-2009 )
МДТС = 0
МНТС = 0
ФЛАГ ВЫХОДА = 0
цикл пока (ФЛАГ ВЫХОДА == 0) {
чтение следующей строки ВХТ
если !(операция MACRO) {
вывод строки в ВЫХТ1
если (операция END) ФЛАГ ВЫХОДА = 1
}
иначе {

Далее »
« Назад
Страница: 1, 2, 3 ... 9, 10, 11, 12, 13, 14
[ Ответить ]
[Обновить]
[Добавить в закладки]
Компьютеры » Программирование » Структура и реализация макроязыков [Gaist-Endruy]
На главную
© s.sasisa.me