M4 (langage)
M4 est un langage de traitement de macros.
M4 (langage) | |
Date de première version | |
---|---|
Un processeur de macros est un outil de remplacement de texte. Sa principale utilisation est de réutiliser des canevas de texte, typiquement dans les applications de programmation mais aussi dans les éditeurs de texte. Parmi les usages les plus courants, l’implémentation GNU de M4 est utilisée dans GNU Autoconf, ou encore dans Sendmail pour générer le fichier de configuration sendmail.cf.
À l’époque où l’assembleur était une étape importante du développement logiciel, les programmeurs remarquèrent que la plupart de leurs programmes était de la répétition de texte. Des moyens simples de réutiliser ces textes furent donc inventés. Ils découvrirent rapidement que cela permettait non seulement de réutiliser des pans entiers de texte, mais aussi de substituer des valeurs différentes en fonction de paramètres. Cela définit la portée des processeurs de macro.
Un premier langage de macro, GPM, est réalisé dès 1965[1], il est le principal précurseur du langage M4, réalisé par Brian Kernighan et Dennis Ritchie en 1977[2].
M4 offre les possibilités suivantes :
- remplacement de texte ;
- substitution de paramètre ;
- inclusion de fichier ;
- manipulation de chaînes de caractères ;
- Ă©valuation conditionnelle ;
- expressions arithmétiques ;
- interfaçage avec le système ;
- diagnostics pour le programmeur.
À la différence des processeurs de macros précédents, M4 n’a pas été ciblé pour un langage informatique ou humain particulier. Historiquement, il a toutefois été développé pour supporter le dialecte ratfor du Fortran.
Exemple
Le programme suivant :
define(incrementer, $1 = $1 + 1)
incrementer(x)
Génère en sortie le texte suivant :
x = x + 1
Notes et références
- (en) C. Strachey, « A general purpose macrogenerator », The Computer Journal, vol. 8,‎ , p. 225–241 (DOI 10.1093/comjnl/8.3.225)
- (en) Brian W. Kernighan et Dennis M. Ritchie, The M4 Macro Processor, (lire en ligne)