Accueil🇫🇷Chercher

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

  1. (en) C. Strachey, « A general purpose macrogenerator », The Computer Journal, vol. 8,‎ , p. 225–241 (DOI 10.1093/comjnl/8.3.225)
  2. (en) Brian W. Kernighan et Dennis M. Ritchie, The M4 Macro Processor, (lire en ligne)

Articles connexes

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.