Многие функции не надо реализовывать дважды (например, функции ввода-вывода, проверки на тип, и.т.п.)
В процессе обработки отпадает необходимость создавать промежуточные файлы или массивы данных.
У программиста появляются дополнительные возможности по совмещению средств ассемблера (например, команды EUQ) совместно с макрокомандами.
Основные недостатки:
Программа должна требовать больше оперативной памяти, что критично на некоторых типах ЭВМ, не имеющих много оперативной памяти.
Реализация подобного типа задачи может оказаться на порядок сложнее, чем отдельная реализация ассемблера и макропроцессора.
Отдельно от рассмотрения реализации аппарата макросредств в ассемблер лежит рассмотрение дополнительного просмотра, используемого многими программами для выявления определенных характеристик исходной программы, таких как типы данных. Располагая таким макропроцессором, можно использовать команды условной компиляции, позволяющие поставить расширение макрокоманд в зависимость от определенных характеристик программы.
ВЫВОДЫ
Макроязыки и соответствующие им макропроцессоры представляют собой самостоятельную форму языков программирования. При использовании вместе с ассемблером, макропроцессор является для программиста полезным инструментом и по существу, позволяет ему самому определять свой язык “высокого” уровня.
Существуют четыре основных задачи, решаемых макропроцессором:
Распознавание макроопределений
Хранение макроопределений
Распознавание макрокоманд
Расширение макрокоманд и подстановка параметров
Макропроцессор в ассемблере может быть реализован несколькими способами:
Независимый двухпросмотровый ассемблер
Независимый однопросмотровый ассемблер
Процессор, совмещенный с первым проходом стандартного двухпросмотрового ассемблера.
ССЫЛКИ
В работе над рефератом использовалась следующая литература:
[1] Дж. Джордан - “Системное программирование”
[2] IBM OS/2 - “REXX Programmer’s Reference”
[3] Borland C++ - Included documentation and sources.