Re[21]: Наследие Си
От: so5team https://stiffstream.com
Дата: 20.09.25 10:44
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Во-вторых, не вижу там характерных слов, вроде "impossible", "unsupported", "not implemented" и подобных. Возможно, недостаточно знаю английский.


Может недостаточное знание английского так же сказывается, но больший вклад нежелание принимать реальность как она есть. Когда 30 лет не высовываешь нос за пределы уютного мирка VC++, то сложно поверить в то, что читать содержимое float-а через указатель на int запрещено.

S>>Вы хотели определение -- вы его получили.


ЕМ>Во-первых, я хотел определения макропроцессора вообще, а получил определение такового общего назначения.


Сложно объяснить как "вообще" противопоставляется "общему назначению" кроме как скудоумием.

ЕМ>Ну вот Вам от Алисы, по запросу "определение встроенного макропроцессора":


ЕМ>

ЕМ>Встроенный макропроцессор — это программа, которая встроена в другую программу (например, компилятор, ассемблер) и выполняет систематическую замену текста на основе макросов. Макрос — это средство замены строки на другую, полученную из исходной по заранее заданным правилам.


Сравните с определением из Wikipedia, ссылку я вам давал:

A macro processor is a program that copies a stream of text from one place to another, making a systematic set of replacements as it does so. Macro processors are often embedded in other programs, such as assemblers and compilers.

Не вижу противоречий.

Ключевой момент в том, что макросы работают с текстом и не заботятся о семантике, которая с текстом связана. Именно поэтому в первой части определения из Wikipedia сказано вот это:

a macro processor that is not tied to or integrated with a particular language


т.е. макропроцессор делает свою работу безотносительно того, что делает язык программирования.

Когда же мы работаем с фрагментом кода с анализом его семантики, т.е. когда на вход идут не фрагменты текста, а код как данные над которыми можно делать какие-то преобразования, то это уже не макро-программирование, а мета-программирование.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.