Введение
Макропроцессор общего назначения m4 — это макропроцессор общего назначения, входящий в состав большинства Unix-подобных операционных систем и являющийся частью стандарта POSIX. Язык был разработан Брайаном Керниганом и Деннисом Ричи для первых версий UNIX. Он представляет собой расширение более раннего макропроцессора m3, созданного Ричи для малоизвестного миникомпьютера AP 3. Макропроцессор работает как инструмент для замены текста. Он применяется для повторного использования текстовых шаблонов, как правило, в задачах программирования, но также и в редактировании и обработке текста. Для большинства пользователей m4 является зависимостью GNU autoconf.
m4 is a general purpose macro processor included in most Unix like operating systems, and is a component of the POSIX standard. The language was designed by Brian Kernighan and Dennis Ritchie for the original versions of UNIX. It is an extension of an earlier macro processor, m3, written by Ritchie for an unknown AP 3 minicomputer. The macro preprocessor operates as a text replacement tool. It is employed to re use text templates, typically in computer programming applications, but also in text editing and text processing applications. Most users require m4 as a dependency of 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.