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