Макропроцессор m4
Макропроцессор m4, разработанный в 1977 году программистами Брайаном Керниганом и Денисом Ритчи, предназначен для макрогенерации на предварительном проходе в различных языках. Макрогенерация означает копирование входного символьного потока в выходной с подстановкой макросов по мере их появления. Макросы могут быть встроенными или определёнными пользователями и принимать произвольное число аргументов. Имеется множество встроенных функций для включения файлов, запуска внешних команд, выполнения целочисленной арифметики, манипуляции строками. Название «m4» раскрывается как «macro», то есть «m» + ещё 4 буквы.
Препроцессор m4 применяется во многих различных областях:
- Программирование
- Стандартные препроцессоры большинства языков программирования (если таковые в них вообще есть) обычно значительно слабее, чем m4, позволяя производить только простейшие подстановки. m4 даёт возможность писать компактный код, пригодный для повторного использования, там, где это не позволяют средства языка. Например, с его помощью возможна генерация SQL-запросов в момент компиляции (вместо динамически генерируемых при исполнении) и даже элементы аспектного программирования — автоматического порождения блоков кода, обеспечивающих единую функциональность в различных компонентах программной системы (автоматическое порождение триггеров, обработка ошибок, отладочные проверки и т. п.).
- Документирование
- В использовании m4 гораздо более понятен и удобен, чем, например, препроцессор от TeX. Его можно использовать для порождения компактной, гибкой документации совместно с практически любой технологией документирования, основанной на обработке «плоских» текстов: TeX, LaTeX, Lout[en], SGML.
- Администрирование
- m4 облегчает написание множества конфигурационных файлов, давая возможность удобно и «прозрачно» работать с «допотопными» форматами, или для гибкого внесения изменений во множество настроек различных сервисов, находящихся в разных файлах. Для этой цели он, в частности, используется в программе autoconf.
Литература[править]
- Дмитрий Кузнецов M4: Освоим макропроцессор // LinuxFormat. — 2015. — № 11 (202). — С. 76-79.
- Jerry Peek Macro Magic: m4, Part One. Linux Magazine (2005-02-01). Проверено 28 мая 2016.
- Jerry Peek The Unknown Power Tool: m4, Part Two. Linux Magazine (2005-03-15). Проверено 28 мая 2016.
Ссылки[править]
- Документация на английском языке;
- Введение в программирование на m4 на русском языке;
- GNU M4 Project.
Команды Unix ↑ [+] |
---|
↑ [+] | |
---|---|
Файловые утилиты |
chgrp • chown • chmod • cp • dd • df • dir • dircolors • install • ln • ls • mkdir • mkfifo • mknod • mv • rm • rmdir • shred • sync • touch • vdir |
Текстовые утилиты |
cat • cksum • comm • csplit • cut • expand • fmt • fold • head • join • md5sum • nl • od • paste • ptx • pr • sha1sum • sort • split • sum • tac • tail • tr • tsort • unexpand • uniq • wc |
Shell-утилиты |
basename • chroot • date • dirname • du • echo • env • expr • factor • false • groups • hostid • id • link • logname • nice • nohup • pathchk • pinky • printenv • printf • pwd • readlink • seq • sleep • stat • stty • tee • test • true • tty • uname • unlink • users • who • whoami • yes |