m4 (lenguaje de computadora)


m4 es un macroprocesador de propósito general incluido en la mayoría de los sistemas operativos similares a Unix y es un componente del estándar POSIX .

El lenguaje fue diseñado por Brian Kernighan y Dennis Ritchie para las versiones originales de UNIX . Es una extensión de un macroprocesador anterior, m3 , escrito por Ritchie para una minicomputadora AP-3 desconocida. [1]

El preprocesador de macros funciona como una herramienta de sustitución de texto. Se emplea para reutilizar plantillas de texto, generalmente en aplicaciones de programación de computadoras , pero también en aplicaciones de edición y procesamiento de texto. La mayoría de los usuarios requieren m4 como una dependencia de GNU autoconf .

Los procesadores de macros se hicieron populares cuando los programadores usaban comúnmente el lenguaje ensamblador . En aquellos primeros días de la programación, los programadores notaron que muchos de sus programas consistían en texto repetido e inventaron medios simples para reutilizar este texto. Los programadores pronto descubrieron las ventajas no solo de reutilizar bloques completos de texto, sino también de sustituir diferentes valores por parámetros similares. Esto definió el rango de uso de los macroprocesadores.

En la década de 1960, uno de los primeros macroprocesadores de propósito general, M 6 , estaba en uso en AT&T Bell Laboratories , que fue desarrollado por Douglas McIlroy , Robert Morris y Andrew Hall. [2]

Kernighan y Ritchie desarrollaron m4 en 1977, basándose en las ideas de Christopher Strachey . Las características distintivas de este estilo de preprocesamiento de macros incluyen: