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

Материал из Циклопедии
Перейти к навигации Перейти к поиску
← другие значения

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

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

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

Литература[править]

Ссылки[править]

 
Команды Unix
 
Утилиты POSIX.1-2008

adminaliasarasaatawkbasenamebatchbcbgc99calcatcdcflowchgrpchmodchowncksumcmpcommcommandcompresscpcrontabcsplitctagscutcxrefdatedddeltadfdiffdirnameduechoedenvexexpandexprfalsefcfgfilefindfoldfort77fusergencatgetgetconfgetoptsgrephashheadiconvidipcrmipcsjobsjoinkilllexlinklnlocalelocaledefloggerlognamelplsm4mailxmakemanmesgmkdirmkfifomoremvnewgrpnicenlnmnohupodpastepatchpathchkpaxprprintfprspspwdqalterqdelqholdqmoveqmsgqrerunqrlsqselectqsigqstatqsubreadrenicermrmdelrmdirsactsccssedshsleepsortsplitstringsstripsttytabstailtalkteetesttimetouchtputtrtruetsortttytypeulimitumaskunaliasunameuncompressunexpandungetuniqunlinkuucpuudecodeuuencodeuustatuuxvalviwaitwcwhatwhowritexargsyacczcat

 
Файловые утилиты

chgrpchownchmodcpdddfdirdircolorsinstalllnlsmkdirmkfifomknodmvrmrmdirshredsynctouchvdir

Текстовые утилиты

catcksumcommcsplitcutexpandfmtfoldheadjoinmd5sumnlodpasteptxprsha1sumsortsplitsumtactailtrtsortunexpanduniqwc

Shell-утилиты

basenamechrootdatedirnameduechoenvexprfactorfalsegroupshostididlinklognamenicenohuppathchkpinkyprintenvprintfpwdreadlinkseqsleepstatsttyteetesttruettyunameunlinkuserswhowhoamiyes