Макропроцессор m4

Поделись знанием:
Перейти к: навигация, поиск

Макропроцессор m4, разработанный в 1977 году программистами Брайаном Керниганом и Денисом Ритчи, предназначен для макрогенерации на предварительном проходе в различных языках. Макрогенерация означает копирование входного символьного потока в выходной с подстановкой макросов по мере их появления. Макросы могут быть встроенными или определенными пользователями и принимать произвольное число аргументов. Имеется множество встроенных функций для включения файлов, запуска внешних команд, выполнения целочисленной арифметики, манипуляции строками. Название «m4» раскрывается как «macro», то есть «m» + ещё 4 буквы.

Препроцессор m4 применяется во многих различных областях:

Программирование
Стандартные препроцессоры большинства языков программирования (если таковые в них вообще есть) обычно значительно слабее чем m4, позволяя производить только простейшие подстановки. m4 даёт возможность писать компактный код, пригодный для повторного использования, там, где это не позволяют средства языка. Например, с его помощью возможна генерация SQL-запросов в момент компиляции (вместо динамически генерируемых при исполнении) и даже элементы аспектного программирования — автоматического порождения блоков кода, обеспечивающих единую функциональность в различных компонентах программной системы (автоматическое порождение триггеров, обработка ошибок, отладочные проверки и т. п.).
Документирование
В использовании, m4 гораздо более понятен и удобенК:Википедия:Статьи без источников (тип: не указан)[источник не указан 3435 дней], чем, например, препроцессор от TeX. Его можно использовать для порождения компактной, гибкой документации совместно с практически любой технологией документирования, основанной на обработке «плоских» текстов: TeX, LaTeX, Lout (англ.), SGML.
Администрирование
m4 облегчает написание множества конфигурационных файлов, делая возможность удобно и «прозрачно» работать с «допотопными» форматами, или для гибкого внесения изменений в множество настроек различных сервисов, находящихся в разных файлах. Для этой цели он, в частности, используется в программе autoconf.

Напишите отзыв о статье "Макропроцессор m4"



Литература

  • Дмитрий Кузнецов M4: Освоим макропроцессор // LinuxFormat. — 2015. — Ноябрь (№ 11 (202)). — С. 76-79.
  • Jerry Peek. [www.linux-mag.com/id/163/ Macro Magic: m4, Part One]. Linux Magazine (1 февраля 2005). Проверено 28 мая 2016.
  • Jerry Peek. [www.linux-mag.com/id/1903/ The Unknown Power Tool: m4, Part Two]. Linux Magazine (15 марта 2005). Проверено 28 мая 2016.

Ссылки

  • [www.gnu.org/software/m4/manual/index.html Документация] на английском языке;
  • [lib.custis.ru/index.php/m4 Введение в программирование на m4] на русском языке;
  • [www.gnu.org/software/m4/ GNU M4 Project].

Отрывок, характеризующий Макропроцессор m4

Вот он лежит на кресле в своей бархатной шубке, облокотив голову на худую, бледную руку. Грудь его страшно низка и плечи подняты. Губы твердо сжаты, глаза блестят, и на бледном лбу вспрыгивает и исчезает морщина. Одна нога его чуть заметно быстро дрожит. Наташа знает, что он борется с мучительной болью. «Что такое эта боль? Зачем боль? Что он чувствует? Как у него болит!» – думает Наташа. Он заметил ее вниманье, поднял глаза и, не улыбаясь, стал говорить.
«Одно ужасно, – сказал он, – это связать себя навеки с страдающим человеком. Это вечное мученье». И он испытующим взглядом – Наташа видела теперь этот взгляд – посмотрел на нее. Наташа, как и всегда, ответила тогда прежде, чем успела подумать о том, что она отвечает; она сказала: «Это не может так продолжаться, этого не будет, вы будете здоровы – совсем».
Она теперь сначала видела его и переживала теперь все то, что она чувствовала тогда. Она вспомнила продолжительный, грустный, строгий взгляд его при этих словах и поняла значение упрека и отчаяния этого продолжительного взгляда.
«Я согласилась, – говорила себе теперь Наташа, – что было бы ужасно, если б он остался всегда страдающим. Я сказала это тогда так только потому, что для него это было бы ужасно, а он понял это иначе. Он подумал, что это для меня ужасно бы было. Он тогда еще хотел жить – боялся смерти. И я так грубо, глупо сказала ему. Я не думала этого. Я думала совсем другое. Если бы я сказала то, что думала, я бы сказала: пускай бы он умирал, все время умирал бы перед моими глазами, я была бы счастлива в сравнении с тем, что я теперь. Теперь… Ничего, никого нет. Знал ли он это? Нет. Не знал и никогда не узнает. И теперь никогда, никогда уже нельзя поправить этого». И опять он говорил ей те же слова, но теперь в воображении своем Наташа отвечала ему иначе. Она останавливала его и говорила: «Ужасно для вас, но не для меня. Вы знайте, что мне без вас нет ничего в жизни, и страдать с вами для меня лучшее счастие». И он брал ее руку и жал ее так, как он жал ее в тот страшный вечер, за четыре дня перед смертью. И в воображении своем она говорила ему еще другие нежные, любовные речи, которые она могла бы сказать тогда, которые она говорила теперь. «Я люблю тебя… тебя… люблю, люблю…» – говорила она, судорожно сжимая руки, стискивая зубы с ожесточенным усилием.
И сладкое горе охватывало ее, и слезы уже выступали в глаза, но вдруг она спрашивала себя: кому она говорит это? Где он и кто он теперь? И опять все застилалось сухим, жестким недоумением, и опять, напряженно сдвинув брови, она вглядывалась туда, где он был. И вот, вот, ей казалось, она проникает тайну… Но в ту минуту, как уж ей открывалось, казалось, непонятное, громкий стук ручки замка двери болезненно поразил ее слух. Быстро и неосторожно, с испуганным, незанятым ею выражением лица, в комнату вошла горничная Дуняша.