Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Макроязыки и их место в языках программирования. Схема работы макропроцессора





Макроязык — набор правил для объявления и использования макросов. Макросы используются в языках программирования, например, в ассемблере и в прикладных программах, например, в Microsoft Office.

Макроязык - программное средство, позволяющее пользователю задавать в тексте условные эквиваленты определенных его фрагментов. Макроязык состоит из: - макроопределений, создаваемых пользователем; и - из программ-препроцессоров, переводящих макроопределения в результирующие тексты.

Макросы в программировании

В языках ассемблера, а также в некоторых других языках программирования, макрос — символьное имя, заменяемое при обработке препроцессором на последовательность программных инструкций. Для каждого интерпретатора (языков ассемблера) существует специальный синтаксис объявления и вызова макросов.

Макрос может «разворачиваться» в различные последовательности инструкций при каждом вызове, в зависимости от сработавших разветвлений внутри макроса и переданных ему аргументов. Макрос — символьное имя, заменяющее несколько команд языка ассемблера. Макросы могут включать в себя инструкции, данные, метки (в том числе и локальные), директивы (в том числе условные) ассемблера, содержать вызов других макросов, могут принимать входные аргументы. Большинство современных ассемблеров поддерживают передачу входных параметров макросу. В зависимости от используемого ассемблера синтаксис объявления, вызова макросов и передачи им параметров может существенно различаться.

Макросы «разворачиваются» в последовательность кода и данных во время ассемблирования. Перед тем как использовать макрос необходимо его объявить. Часто стандартные макросы уже находятся в готовом виде в стандартных подключаемых файлах. Для их использования в программе необходимо просто подключить нужный файл. Достоинства упрощение и ускорение написания программы повышение компактности повышение наглядности текста программы.

Недостатки использование «шаблонного кода» в то время как для каждой конкретной ситуации код, возможно, можно улучшить использование одной процедуры, вызываемой N раз часто выгоднее использования вставки одного и того же макроса (генерирующего один и тот же код) N раз в текст программы теряется «контроль над каждым байтом программы», именно по этой причине многие программисты не используют макросы [Пример объявления и вставки макроса (FASM) macro stos0 { xor al,al stosb }.

Макропроце́ссор (также макрогенера́тор) — программа, выполняющая преобразование входного текста в выходной при помощи задаваемых ей правил замены последовательностей символов, называемых правилами макроподстановки. Наиболее простое и часто используемое правило макроподстановки сводится к замене определённой строки (называемой макро (макрос) или макрокоманда) другой строкой, возможно, с использованием параметров. Также правила макроподстановки могут иметь более сложный характер, включая определение процедур и функций, вычислительные алгоритмы и пр.

Макропроцессор, как таковой, является частным случаем транслятора. В то же время, некоторые макропроцессоры являются частью более сложных трансляторов — ассемблеров и компиляторов языков программирования. Широко распространено использование макропроцессоров при трансляции с языков ассемблера, в таком случае соответствующий ассемблер называется макроассемблером. Простейший макропроцессор является частью компилятора языка программирования Си. В компилятор языка программирования ПЛ/1 входит значительно более сложный макропроцессор, фактически сам являющийся подмножеством ПЛ/1. Макропроцессор, являющийся частью компилятора, называется препроцессор. Также существуют самостоятельные макропроцессоры, такие как, например, макропроцессор m4. К макропроцессорам может быть отнесено ядро системы компьютерной вёрстки ΤΕΧ. Граница между макропроцессорами, с одной стороны, и трансляторами языков программирования, ориентированных на символьную обработку, таких как REXX, Perl, Снобол, Рефал и пр., с другой — является достаточно условной. Обычно макропроцессорами называют такие трансляторы, входной язык которых малопригоден для написания универсальных программ, а ориентирован в основном на простые преобразования входного текста в выходной путём символьной подстановки.







Date: 2016-05-23; view: 1914; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию