Использование макроязыка и макропроцессора
Обоснована эффективность использования макросредств, сформулированы методы построения и обработки макроязыка. Показано, что определяя макрокоманды, можно вводить в прикладное программное обеспечение новые структуры более высокого уровня, что позволяет достичь краткости и простоты управления программ...
Gespeichert in:
| Datum: | 2005 |
|---|---|
| Hauptverfasser: | , |
| Format: | Artikel |
| Sprache: | Russisch |
| Veröffentlicht: |
Інститут кібернетики ім. В.М. Глушкова НАН України
2005
|
| Online Zugang: | https://nasplib.isofts.kiev.ua/handle/123456789/6426 |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| Zitieren: | Использование макроязыка и макропроцессора / В.П. Зинченко, Н.П. Зинченко // Комп’ютерні засоби, мережі та системи. — 2005. — № 4. — С.26-34. — Бібліогр.: 6 назв. — рос. |
Institution
Digital Library of Periodicals of National Academy of Sciences of Ukraine| _version_ | 1860261058424340480 |
|---|---|
| author | Зинченко, В.П. Зинченко, Н.П. |
| author_facet | Зинченко, В.П. Зинченко, Н.П. |
| citation_txt | Использование макроязыка и макропроцессора / В.П. Зинченко, Н.П. Зинченко // Комп’ютерні засоби, мережі та системи. — 2005. — № 4. — С.26-34. — Бібліогр.: 6 назв. — рос. |
| collection | DSpace DC |
| description | Обоснована эффективность использования макросредств, сформулированы методы построения и обработки макроязыка. Показано, что определяя макрокоманды, можно вводить в прикладное программное обеспечение новые структуры более высокого уровня, что позволяет достичь краткости и простоты управления программной системой. Макрооперации упрощают подготовку, отладку и модификацию прикладных программ, обеспечивают стандартизацию и позволяют автоматизировать инсталляцию прикладных программных систем.
|
| first_indexed | 2025-12-07T18:55:20Z |
| format | Article |
| fulltext |
Комп’ютерні засоби, мережі та системи. 2005, № 4 26
Обоснована эффективность ис-
пользования макросредств, сфор-
мулированы методы построения
и обработки макроязыка. Показа-
но, что определяя макрокоманды,
можно вводить в прикладное
программное обеспечение новые
структуры более высокого уров-
ня, что позволяет достичь крат-
кости и простоты управления
программной системой. Макро-
операции упрощают подготов-
ку, отладку и модификацию при-
кладных программ, обеспечивают
стандартизацию и позволяют
автоматизировать инсталляцию
прикладных программных систем.
В.П. Зинченко, Н.П. Зинченко,
2005
УДК 681.3
В.П. ЗИНЧЕНКО, Н.П. ЗИНЧЕНКО
ИСПОЛЬЗОВАНИЕ МАКРОЯЗЫКА
И МАКРОПРОЦЕССОРА
Введение. В прикладном программном обес-
печении (ПО) часто необходимо повторять
некоторые последовательности действий. В
таких случаях можно воспользоваться аппа-
ратом макрокоманд (макро / макрос), кото-
рые являются однострочными сокращениями
для группы команд. Макрокоманда по су-
ществу определяет одну “команду” для пред-
ставления некоторой последовательности ко-
манд в прикладных программах (ПП).
Определяя макрокоманды, можно вводить
в прикладное ПО новые структуры более вы-
сокого уровня, что позволяет достичь кратко-
сти и простоты управления программной си-
стемой. Макрооперации упрощают подгото-
вку, отладку и модификацию ПП, обеспечи-
вают стандартизацию и позволяют автомати-
зировать инсталляцию прикладного ПО.
Постановка задачи. Обосновать эффекти-
вность использования макросредств и сфор-
мулировать методы построения и обработки
макроязыка.
Метод решения поставленной задачи ос-
новывается на использовании макроязыка и
макропроцессора.
Макрокоманды в своей простой форме
представляют собой обозначения последо-
вательности операций. Например, на рис. 1
дважды используется последовательность
команд (а). Аппарат макрокоманд IDE Bor-
land C++ [1, 2] позволяет присвоить (а) имя и
использовать его вместо (а). Более того, мож-
но определить некоторый макроязык и испо-
льзовать его вместо (а). Можно определить
некоторый макроязык и использовать его
при разработке ПП. Обрабатывается такой
макроязык макропроцессором, который
ИСПОЛЬЗОВАНИЕ МАКРОЯЗЫКА И МАКРОПРОЦЕССОРА
Комп’ютерні засоби, мережі та системи. 2005, № 4 27
представляет собой отдельный языковой процессор со
своим собственным языком. Форматы макроопределе-
ний в различных программных системах различные, но
в случае IDE Borland C++ формат определения макро-
команды такой:
MACRO <macro name>
<тело макроопределения>
END;
Директива MACRO определяет следующий за ней
идентификатор как имя макрокоманды. Далее распо-
лагается последовательность команд (“тело макрооп-
ределения”), которая заканчивается директивой END.
Если макрокоманда определена, то использование
ее имени в ПП (макровызов) эквивалентно использованию соответствующей по-
следовательности команд. Если по-
следовательности (а) дать имя
“MacP”, то программа (рис. 1) бу-
дет иметь вид, показанный на
рис. 2 (слева исходный текст,
справа расширение) В этом слу-
чае макропроцессор заменит каж-
дую макрокоманду командами (а).
Такой процесс замены называется
расширением макрокоманды.
Операторы макрокоманд. Ме-
ханизм макрокоманд позволяет
подставлять последовательности
команд вместо макровызовов, где
все обращения к макроопределе-
нию заменяются идентичными по-
следовательностями команд. Од-
нако такой подход недостаточно
гибок, так как в макровызове нет
средств модификации кода, который его заменяет.
Существенное расширение возможностей макро-
средств достигается добавлением операндов (па-
раметров) макрокоманд. На рис. 3 показаны похо-
жие, но не идентичные последовательности ко-
манд: в (б) используется операнд “1”, а в (в) опе-
ранд “2”. Можно считать, что они выполняют одну
и ту же операцию с переменным параметром (опе-
ранд макрокоманды / формальный параметр), ко-
торый объявляется в той же строке, что и имя мак-
SetPrevPos;
FixScreenPos;
PageScreenUp;
FixCursorPos;
. . .
SetPrevPos;
FixScreenPos;
PageScreenUp;
FixCursorPos;
. . .
(a)
(a)
РИС. 1
MACRO MacP
SetPrevPos;
FixScreenPos;
PageScreenUp;
FixCursorPos;
END;
. . .
MacP
. . .
MacP
. . .
. . .
SetPrevPos;
FixScreenPos;
PageScreenUp;
FixCursorPos;
. . .
SetPrevPos;
FixScreenPos;
PageScreenUp;
FixCursorPos;
. . .
РИС. 2
. . .
SetPrevPos;
MoveToMark(1);
CenterFixScreenPos;
. . .
SetPrevPos;
MoveToMark(2);
CenterFixScreenPos;
. . .
(б)
(в)
РИС. 3
В.П. ЗИНЧЕНКО, Н.П. ЗИНЧЕНКО
Комп’ютерні засоби, мережі та системи. 2005, № 4 28
роса. В языке макроассемблера он помечается символом &, что отличает его как
символ макроязыка от символов
ассемблера. В IDE Borland не пре-
дусмотрена работа с макрооперан-
дами, но можно предположить, что
если бы это было так, то формат
макроопределения мог быть таким
(<paramlist> перечисленные через
запятую все операнды макроса):
MACRO<macroname>(<paramlist>)
<тело макроопределения>
END;
В таком случае ПП (см. рис. 3)
можно переписать так, как показано
на рис. 4.
Отметим, что макрокоманда
может иметь более одного операн-
да. Каждый операнд при этом дол-
жен соответствовать формальному параметру в строке определения имени мак-
роса.
На рис. 5 показана последовательность, в которой
операнды и команды различны. Их можно переписать
так, как показано на рис. 6.
Отметим, что существует два основных способа
задания операндов позиционный (рис. 6) и ключевой
(позволяет обращаться к
формальным операторам
как по именам, так и по
позиции).Ссылка на фор-
мальные операторы в оп-
ределении MacM может
быть такой: MacM (c =
= ScrollScreenUp, l = 1).
Условное макрорасши-
рение используется для
изменения порядка команд макрорасширения внутри макроса. Например, ПП
. . .
SetPrevPos;
MoveToMark(1);
CenterFixScreenPos;
. . .
SetPrevPos;
MoveToMark(2);
CenterFixScreenPos;
. . .
(б)
(в)
РИС.3
MACRO MacG(lab)
SetPrevPos;
MoveToMark(lab);
CenterFixScreenPos;
END;
. . .
MacG(1)
. . .
MacG(2)
. . .
. . .
SetPrevPos;
MoveToMark(1);
CenterFixScreenPos;
. . .
SetPrevPos;
MoveToMark(2);
CenterFixScreenPos;
. . .
РИС. 4
. . .
ScrollScreenDown;
ScrollScreenLeft(0);
FixCursorPos;
. . .
ScrollScreenUp;
ScrollScreenLeft(1);
FixCursorPos;
. . .
РИС. 5
MACRO MacM(c,l)
c;
ScrollScreenLeft(l);
FixCursorPos;
END;
. . .
MacM(ScrollScreenDown,0)
. . .
MacM(ScrollScreenUp,1)
ScrollScreenDown;
ScrollScreenLeft(0);
FixCursorPos;
. . .
ScrollScreenUp;
ScrollScreenLeft(1);
FixCursorPos;
. . ..
РИС. 6
ИСПОЛЬЗОВАНИЕ МАКРОЯЗЫКА И МАКРОПРОЦЕССОРА
Комп’ютерні засоби, мережі та системи. 2005, № 4 29
(рис. 7), в которой не только параметры, но и количе-
ство команд переменная величина. Эту ПП можно
переписать так, как показано на рис. 8.
Комбинация IF...THEN...ELSE это макромет-
ки / символы следования, которые не включаются в
выходной текст макропроцессора. В макроязыке так-
же могут использоваться директивы условного и без-
условного перехода на псевдометку, с которой макро-
процессор продолжит обработку ПП. Такие операто-
ры переходов служат для указания выполнения опе-
раторов ПП.
Макровызовы внутри макрооп-
ределения. Так как макроопределе-
ния, по сути, являются “сокращени-
ями” последовательности команд,
то полезным свойством была бы
возможность выполнять такие “со-
кращения” внутри самих макрооп-
ределений. На рис. 9 показано мак-
роопределение M2, где дважды
происходит ссылка на макроопре-
деление M1. Это позволило умень-
шить длину макроопределения M2
и сделать его более понятным. Та-
кое использование макросредств
приводит к макрорасширениям с
несколькими уровнями вложенно-
сти (рис. 10). Например, команда
M2 могла быть выполнена внутри
другого макроопределения.
Фактически, макропереходы дают возможность лю-
бое число раз обращаться к любому макроопределению и
даже к самому себе (рекурсивные вызовы).
Макроопределения в макроопределениях. В теле мак-
роопределения можно использовать любые допустимые
синтаксисом предложения, в том числе и другие макро-
определения. Отметим, что внутреннее макроопределе-
ние не будет определено до тех пор, пока не произойдет
вызов внешнего макроса. Например, пусть необходимо
определить группу макроопределений для обращения к
подпрограммам с помощью какой-то определенной по-
. . .
ScrollScreenLeft(1);
LiteralChar('-');
. . .
ScrollScreenDown;
ScrollScreenLeft(2);
LiteralChar('*');
. . .
РИС. 7
MACRO M1(p,l,ch)
IF p==1 THEN
ScrollScreen-
Down;
ENDIF
ScrollScreenLeft(2);
LiteralChar('*');
END
. . .
M1(1,2,’-’)
. . .
M1(0,1,’*’)
. . ..
. . .
ScrollScreenLeft(1);
LiteralChar('-');
. . .
ScrollScreenDown;
ScrollScreenLeft(2);
LiteralChar('*');
. . .
РИС. 8
MACRO M1
SetPrevPos;
CursorCharRight;
END
. . .
MACRO M2
M1
M1
END
. . .
РИС. 9
В.П. ЗИНЧЕНКО, Н.П. ЗИНЧЕНКО
Комп’ютерні засоби, мережі та системи. 2005, № 4 30
следовательности, так как показано на рис. 11, где определена макрокоманда
DEF, которая при указа-
нии в качестве ее опе-
ранда имени подпро-
граммы определяет со-
ответствующий этому
имени макрос.
Рассмотрим метод ре-
ализации макроязыка на
примере языка макроас-
семблера [3, 4]. Задачу
сформулируем как раз-
работку макропроцессо-
ра, который должен рас-
познавать и обрабаты-
вать макроопределения
и макрокоманды.
Распознавать мак-
роопределения. Макро-
процессор должен распознавать макроопределения, вы-
деляемые директивами MACRO и ENDM. Эта задача
усложняется тем, что макроопределения могут быть
вложенными. Когда это так, то макропроцессор должен
правильно распознавать вложения и сопоставлять нача-
ло и конец макроса. Весь вложенный текст, в том числе
и другие макроопределения, определяет отдельную мак-
рокоманду.
Запоминать макроопределения. Процессор должен
запомнить определения макрокоманд, которые впоследствии будут использо-
ваться для расширения макровызовов.
Распознавать вызовы. Необходимо распознавать макровызовы, представ-
ленные в виде мнемонического кода операции. При этом имена макрокоманд
должны обрабатываться так, как обрабатываются коды операций.
Выполнять расширение макрокоманд и подстановку фактических пара-
метров. Вместо формальных параметров макроопределения макропроцессор
должен подставить соответствующие операнды макрокоманды. Этот текст, в
свою очередь, может содержать как макрокоманды, так и макроопределения.
По формальным параметрам необходимо определить могут ли они встре-
чаться в качестве кода операции и синтаксиса допустимых параметров. В разных
макроязыках встречаются разные варианты реализации подобных ситуаций. По-
этому рассмотрим некоторые варианты возможных реализаций.
Формальные параметры могут встречаться в макроопределении как в ко-
манде, так и в коде операции. Для того, чтобы обеспечить возможность конка-
тенации формальных параметров макроопределения с фиксированными сим-
MACRO M1
SetPrevPos;
CursorChar-
Right;
END
MACRO M2
M1
M1
END
. . .
M2
. . .
MACRO M2
SetPrevPos;
CursorChar-
Right;
SetPrevPos;
CursorCharRight;
END
M2
. . .
SetPrevPos;
CursorCharRight;
SetPrevPos;
CursorCharRight;
. . ..
РИС. 10
МАСRO DEF sub
MACRO sub(par)
. . .
sub(par)
. . .
END
END
РИС. 11
ИСПОЛЬЗОВАНИЕ МАКРОЯЗЫКА И МАКРОПРОЦЕССОРА
Комп’ютерні засоби, мережі та системи. 2005, № 4 31
вольными строками, необходимо определить разделительный символ, обеспе-
чивающий конкатенацию формальных параметров и заданных символьных по-
следовательностей. Гораздо сложнее случай, когда необходимо подставлять зна-
чение параметра внутри символьной строки. В таком случае, можно применить
конкатенацию по умолчанию двух последовательно друг за другом идущих сим-
вольных строк или преобразование формального параметра, заключенного в
скобки. Для выполнения функций условных переходов необходимо вычислять
некоторые арифметические выражения (например, счетчик), при этом используя
псевдопеременные времени компиляции внутри макросов.
Двухпроходный алгоритм. Предположим, что разрабатываемый макропро-
цессор функционально независим от основного компилятора и его текст должен
передаваться этому компилятору. Сначала не разрешим макровызовы и макро-
определения внутри макроопределений.
Макропроцессор, как и язык ассемблера, просматривает и обрабатывает
строки текста. Если рассматривать макроопределение как единый объект, то
можно сделать вывод о том, что строки такого макроопределения не так сильно
взаимосвязаны, и макроопределения не могут ссылаться на объекты вне этого
макроопределения.
Предположим, что в макроопределении есть строка INC X, и перед этой ко-
мандой параметр Х получил значение 1. Макропроцессор не осуществляет син-
таксический анализ, а выполняет текстовую подстановку (вместо “Х” подстав-
ляется “1”).
Алгоритм будет выполнять 2 просмотра входного текста. В первом проходе
будут детерминированы все макроопределения, а во втором открыты все
ссылки на макросы. Во время первого прохода проверяется каждый код опера-
ции, макроопределения запоминаются в таблице макроопределений, а копия ис-
ходного текста без макроопределений запоминается в памяти, для использова-
ния ее на втором проходе. Также во время первого прохода строится таблица
имен, которая на втором проходе используется для выделения макроопераций и
расширения их до текста макроопределения.
Данные для алгоритма просмотра текста: ВТ входной текст; ВХТ1,
ВХТ2 выходная копия текста после первого и второго проходов соответст-
венно; МДТ таблица макроопределений, в которой хранятся тела макроопре-
делений; МНТ таблица хранения имен макрокоманд, определенных в МНТ;
МДТС, МНТС счетчик для таблицы МДТ и для таблицы МНТ соответственно;
АЛА массив списка параметров для подстановки индексных маркеров вместо
формальных параметров перед запоминанием определения.
Алгоритмы обработки макроопределений. Обработка макроопределений
двухпроходным способом состоит из алгоритмов первого и второго построчного
просмотров входного текста.
Алгоритм первого просмотра (макроопределения) проверяет каждую строку
входного текста (рис. 12). Если она представляет собой директиву MACRO, то
все следующие за ней строки запоминаются в свободных ячейках МДТ. Первая
В.П. ЗИНЧЕНКО, Н.П. ЗИНЧЕНКО
Комп’ютерні засоби, мережі та системи. 2005, № 4 32
строка макроопределения это
имя самого макроса, которое за-
носится в таблицу имен МНТ с
индексом этой строки в МДТ.
При этом происходит также под-
становка номеров формальных
параметров, вместо их имен. Если
при просмотре встречается ко-
манда END, то это означает, что
весь текст обработан, и управле-
ние можно передавать второму
просмотру для обработки макро-
команд.
Алгоритм второго просмотра
(расширение макрокоманд) про-
веряет мнемонический код каж-
дого предложения (рис. 13). Если
это имя содержится в МНТ, то
происходит обработка макро-
предложения. Из таблицы МНТ
берется указатель на начало мак-
роса в МДТ. Макропроцессор го-
товит массив списка АЛА, кото-
рый содержит таблицу индексов
формальных параметров и соот-
ветствующих операндов макро-
команды. Выполняется чтение из
МДТ строки и в нее подставляют-
ся необходимые параметры. По-
лученная таким образом строка записывается в ВХТ2. Когда встречается дирек-
тива END, текст полученного кода передается для компиляции ассемблеру.
Однопроходный алгоритм. Предположим, что допускается реализация мак-
роопределения внутри макроопределений. Основная проблема в том, что внут-
реннее макро определено только после того, как выполнен вызов внешнего.
Для обеспечения использования внутреннего макро необходимо повторять
как просмотр обработки макроопределений, так и просмотр обработки макро-
команд. Однако существует решение, которое позволяет выполнить распозна-
вание и расширение в один просмотр.
Алгоритм однопроходного макроассемблера (рис. 14) объединяет два вы-
шеприведенных алгоритма в один. Он является упрощением алгоритма из [5].
Различие состоит в том, что современные средства программирования дают воз-
можность осуществлять вставки и удаления из больших массивов с минималь-
ными затратами процессорного времени, что было невозможно ранее. Кроме
того, скорость работы современных процессоров позволяет осуществлять пря-
Начало
МДТС = 0
МНТС = 0
ФЛАГ ВЫХОДА=0
цикл пока (ФЛАГ ВЫХОДА == 0) {
чтение следующей строки ВТ
если !(операция MACRO) {
вывод строки в ВХТ1
если (операция END) ФЛАГ ВЫХО-
ДА=1
}
иначе {
чтение идентификатора
запись имени и индекса в МНТ
МНТС ++
приготовить массив списка АЛА
запись имени в МДТ
МДТС ++
цикл {
чтение следующей строки ВТ
подстановка индекса операторов
добавление в МДТ
МДТС ++
} пока !(операция ENDM)
}
}
переход ко второму проходу
Конец
РИС. 12
РИС. 12
ИСПОЛЬЗОВАНИЕ МАКРОЯЗЫКА И МАКРОПРОЦЕССОРА
Комп’ютерні засоби, мережі та системи. 2005, № 4 33
мые вставки и удаления в массивах
данных до 64 Кбайт в режиме реально-
го времени.
Таким образом, расширение исход-
ного макроса может быть напрямую
вставлено в исходный текст и обрабо-
тано в расширенном виде. Такая техно-
логия позволяет значительно упростить
алгоритм обработки макроязыка.
Реализация. Разработанный мак-
ропроцессор обрабатывает тексты в ре-
жиме препроцессора, т. е. он выполняет
полный просмотр входного текста, до того, как передать управление ассемблеру.
Макропроцессор также может быть реализован внутри первого прохода ассемб-
лера, что позволяет исключить промежуточные файлы и достичь на порядок
большей интеграции макропроцессора и ассемблера путем объединения сход-
ных функций. Например, можно объединить таблицы имен макросов и имен ко-
да операции; специальный признак может указывать на то макро это или
встроенная операция.
Начало
ФЛАГ ВЫХОДА = 0
цикл пока (ФЛАГ ВЫХОДА = = 0) {
чтение строки из ВХТ1
НАЙДЕНО = поиск кода в МНТ
если !(НАЙДЕНО) {
запись в ВХТ2 строки
если (операция END) {
ФЛАГ ВЫХОДА = 1
}
}
иначе {
УКАЗАТЕЛЬ = индекс из МНТ
Заполнение списка параметров АЛА
цикл {
УКАЗАТЕЛЬ ++
чтение следующей строки из МДТ
подстановка параметров
вывод в ВХТ2
} пока !(операция ENDM)
}
}
переход к компиляции
Конец
РИС. 13
Начало
МТДС = 0
МНТС = 0
ФЛАГ ВЫХОДА=0
цикл пока !(ФЛАГ ВЫХОДА) {
чтение следующей строки ВТ
НАЙДЕНО = поиск кода в МНТ
если (НАЙДЕНО) {
МДИ = 1
УКАЗАТЕЛЬ = индекс из МНТ
Заполнение списка параметров АЛА
цикл {
УКАЗАТЕЛЬ ++
чтение след. строки из МДТ
подстановка параметров
вставка во ВТ}
пока !(операция ENDM)
иначе если !(операция MACRO)
{вывод строки в ВХТ1
если (операция END) ФЛАГ ВЫ-
ХОДА=1}
иначе {
чтение идентификатора
запись имени и индекса в МНТ
МНТС ++
приготовить массив списка АЛА
запись имени в МДТ
МДТС ++
цикл {
чтение следующей строки ВТ
подстановка индекса операторов
добавление в МДТ
МДТС ++
} пока !(операция ENDM)
}
}
Конец
РИС. 14
В.П. ЗИНЧЕНКО, Н.П. ЗИНЧЕНКО
Комп’ютерні засоби, мережі та системи. 2005, № 4 34
Основные преимущества включения макропроцессора в первый просмотр
состоят в следующем: большинство функций не надо реализовывать дважды
(например, функции ввода-вывода); в процессе обработки нет необходимости
создавать промежуточные файлы или массивы данных; можно совмещать сред-
ства ассемблера (например, команды EUQ) с макрокомандами. Основные недос-
татки такие: ПП требует больше оперативной памяти; реализация подобного ти-
па задачи может оказаться на порядок сложнее, чем отдельная реализация ас-
семблера и макропроцессора.
Выводы. Макроязыки и соответствующие им макропроцессоры представ-
ляют собой самостоятельную форму языков программирования. Совместное ис-
пользование ассемблера и макропроцессора позволяет определять свой язык
“высокого” уровня при разработке прикладных программных систем [6].
Существуют четыре основных задачи, решаемых макропроцессором: рас-
познавание макроопределений; хранение макроопределений; распознавание
макрокоманд; расширение макрокоманд и подстановка параметров.
Макропроцессор в ассемблере может быть реализован как независимый
двух- или однопроходный ассемблер, и как процессор, совмещенный с первым
проходом двухпроходного ассемблера (например, MASM [3]).
1. Сван Т. Освоение Borland C++4.5. Практический курс. – Киев: Диалектика, 1996. – 544 с.
2. Страуструп Б. Язык программирования С++. – СПб. – М.: Бином, 1999. – 991 с.
3. Абель П. Ассемблер. Язык и программирование для IBM PC: Пер. с англ. Киев: Век+,
М.: ЭНТРОП, Киев: НТИ, 2003. – 736 с.
4. Сван Т. Ассемблер: Освоение Turbo Assembler. – Киев: Диалектика, 1996. – 544 с.
5. Джордан Дж. Системное программирование. – М.: Мир, 1989. – 354 с.
6. Зінченко В.П. Інформаційна технологія проектних досліджень складних технічних об’єк-
тів // Наукові вісті НТУУ “КПІ”. – 2000. – № 4. – С. 3242.
Получено 01.07.2005
|
| id | nasplib_isofts_kiev_ua-123456789-6426 |
| institution | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| issn | 1817-9908 |
| language | Russian |
| last_indexed | 2025-12-07T18:55:20Z |
| publishDate | 2005 |
| publisher | Інститут кібернетики ім. В.М. Глушкова НАН України |
| record_format | dspace |
| spelling | Зинченко, В.П. Зинченко, Н.П. 2010-03-02T14:47:52Z 2010-03-02T14:47:52Z 2005 Использование макроязыка и макропроцессора / В.П. Зинченко, Н.П. Зинченко // Комп’ютерні засоби, мережі та системи. — 2005. — № 4. — С.26-34. — Бібліогр.: 6 назв. — рос. 1817-9908 https://nasplib.isofts.kiev.ua/handle/123456789/6426 681.3 Обоснована эффективность использования макросредств, сформулированы методы построения и обработки макроязыка. Показано, что определяя макрокоманды, можно вводить в прикладное программное обеспечение новые структуры более высокого уровня, что позволяет достичь краткости и простоты управления программной системой. Макрооперации упрощают подготовку, отладку и модификацию прикладных программ, обеспечивают стандартизацию и позволяют автоматизировать инсталляцию прикладных программных систем. ru Інститут кібернетики ім. В.М. Глушкова НАН України Использование макроязыка и макропроцессора Article published earlier |
| spellingShingle | Использование макроязыка и макропроцессора Зинченко, В.П. Зинченко, Н.П. |
| title | Использование макроязыка и макропроцессора |
| title_full | Использование макроязыка и макропроцессора |
| title_fullStr | Использование макроязыка и макропроцессора |
| title_full_unstemmed | Использование макроязыка и макропроцессора |
| title_short | Использование макроязыка и макропроцессора |
| title_sort | использование макроязыка и макропроцессора |
| url | https://nasplib.isofts.kiev.ua/handle/123456789/6426 |
| work_keys_str_mv | AT zinčenkovp ispolʹzovaniemakroâzykaimakroprocessora AT zinčenkonp ispolʹzovaniemakroâzykaimakroprocessora |