Ббк 32. 973-018 г рецензент канд физ мат наук, Ф. А. Мурзин


Download 278.16 Kb.
bet26/68
Sana12.10.2023
Hajmi278.16 Kb.
#1700499
TuriКурс лекций
1   ...   22   23   24   25   26   27   28   29   ...   68
Bog'liq
FIT-Gor-PP3

«Синтаксический сахар»:
Можно определить ключевые
слова для рамочных конструкций;

IF (I > 0) THEN BEGIN
A = 1;
B = 2
END

затем написать текст, похожий на Pascal-программу.

#DEFINE MAX(A, B) ((A) > (B) ? (A) : (B))

Макрос:
Такое определение обеспечивает функцию «максимум», которая реализуется как
последовательный код, а не вызов
функции.

X = MAX(P+Q, R+S);

Макровызов:







При правильном объявлении аргументов такой макрос будет работать с любыми типами
данных.

X = ((P+Q) > (R+S) ? (P+Q) : (R+S));

Результат макроподстановки: Нет необходимости в различных видах MAX для данных разных типов, как это было бы с
функциями

Пример 11. Пример макросов языка C

Определения

Примечание

(defun MF (NF AF BF)
(list ‟DEFUN NF AF BF)
)

Макрос

(eval (MF MNF (A B) (cons B A)))

Макровызов

(MNF 1 2)

Применение результата

Пример 12. Пример макротехники на языке Lisp
Основные отличия АМ макрогенератора от АМ ассемблера и стековой машины связаны с переходом от обработки простых значений, размещаемых в словах фиксированного размера, к открытой обработке строк произвольной длины и с использованием программируемых определений, расширяющих исходную систему команд и поддерживающих локализацию переменных.

Таблица 21





Download 278.16 Kb.

Do'stlaringiz bilan baham:
1   ...   22   23   24   25   26   27   28   29   ...   68




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling