M4 (makrokieli)

M4 on makrokieli, jonka Brian W. Kernighan ja Dennis M. Ritchie kehittivät Bell Labsissa 1970-luvulla. Kieli oli saatavilla UNIX- ja GCOS-käyttöjärjestelmille. Tekijöiden mukaan kieli on erityisen sopiva Fortran, PL/I ja C-kielien kanssa. Kieli on laajennus Ritchien aiemmin AP-3 minitietokoneelle kehittämästä M3-kielestä.

Kieltä on sanottu myös "mallinekieleksi" ja "esikääntäjäkieleksi".

 Toteutukset 
Kielestä on myös GNU-projektin avoimen lähdekoodin toteutus GNU M4, jossa on myös joitakin laajennuksia. Yksi suurista kielen käyttökohteista on GNU Autoconf -projekti. Muita toteutuksia on esimerkiksi Inferno-käyttöjärjestelmässä, jossa oleva muistuttaa lähemmin alkuperäistä kuin System V- tai POSIX-versiota.
FreeBSD:n, NetBSD:n ja OpenBSD:n käyttämässä versiossa on mukana laajennuksia yhteensopivuudeksi GNU-version kanssa.

 Esimerkki 
Ydintoimintona on define avainsana, jolla määritellään uusia makroja. 
Makroja voidaan käyttää Unix-putken kautta "filtteriohjelmina".

Määritetään M4:lle seuraava makro:
 define(AUTHOR, William Shakespeare)

Annetaan makrolle syöte:
  A Midsummer Night's Dream
  by AUTHOR

.. jolloin saadaan tulostuksena seuraava:
  A Midsummer Night's Dream
  by William Shakespeare

 Lähteet 

Luokka:Ohjelmointikielet
Luokka:Bell Labs