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