Введение

Макропроцессор общего назначения m4 — это макропроцессор общего назначения, входящий в состав большинства Unix-подобных операционных систем и являющийся частью стандарта POSIX. Язык был разработан Брайаном Керниганом и Деннисом Ричи для первых версий UNIX. Он представляет собой расширение более раннего макропроцессора m3, созданного Ричи для малоизвестного миникомпьютера AP 3. Макропроцессор работает как инструмент для замены текста. Он применяется для повторного использования текстовых шаблонов, как правило, в задачах программирования, но также и в редактировании и обработке текста. Для большинства пользователей m4 является зависимостью GNU autoconf.

Реализация

FreeBSD, NetBSD и OpenBSD предоставляют независимые реализации языка m4. Кроме того, инструменты разработки проекта Heirloom включают бесплатную версию языка m4, основанную на OpenSolaris. Язык m4 также включен в операционную систему Inferno. Эта реализация ближе к оригинальному m4, разработанному Керниганом и Ричи в Unix версии 7, чем к более сложным версиям в UNIX System V и POSIX. GNU m4 — это реализация m4 для проекта GNU. Она разработана для устранения многих произвольных ограничений, присущих традиционным реализациям m4, таких как максимальная длина строки, максимальный размер макроса и количество макросов. Отказ от таких произвольных ограничений является одной из заявленных целей проекта GNU. Пакет GNU Autoconf активно использует возможности GNU m4. В настоящее время GNU m4 поддерживается Гэри В. Воганом и Эриком Блейком. GNU m4 является свободным программным обеспечением, распространяемым по лицензии GNU General Public License.