M4 (Programmiersprache) - LinkFang.de





M4 (Programmiersprache)


m4 ist eine Makro-Programmiersprache, die von Brian Kernighan und Dennis Ritchie entwickelt wurde.

Anwendung

Ein Makroprozessor ist ein Computerprogramm, das Zeichenfolgen innerhalb eines Textes durch andere Zeichenfolgen ersetzt. Es ermöglicht z. B. die Erstellung und Benutzung von wiederverwertbaren Textbausteinen in Textverarbeitungsprogrammen.

Geschichte

Makroprozessoren waren weit verbreitet, als Computerprogramme noch hauptsächlich in Assembler geschrieben wurden. In diesen Anfangstagen der Computertechnik mussten Programmierer häufig immer wiederkehrende Textpassagen in ihren Programmen verwenden. Bald fing man an, einfache Möglichkeiten zu entwickeln, Text wiederzuverwenden. Schnell stellte sich heraus, dass man nicht nur ganze Textpassagen wiederverwenden konnte, sondern bei Bedarf auch einzelne Teile davon ersetzen und so komplexe Makros schreiben konnte. M4 wurde 1977 entwickelt. Es war die erste Makrosprache, mit der Rational Fortran (Ratfor) implementiert wurde, und ist heute Bestandteil der meisten Unix-Varianten. Ein Hauptanwendungsgebiet ist heutzutage das autoconf-Tool des GNU-Projektes. Früher wurde es darüber hinaus auch für die Konfiguration des damals weit verbreiteten MTA sendmail verwendet.

Eigenschaften

M4 bietet folgende Funktionen:

  • Ersetzen von Text
  • Substituieren von Parametern
  • Einfügen von Dateien
  • Manipulation von Zeichenketten
  • Bedingte Ausdrücke
  • Arithmetische Ausdrücke
  • Schnittstelle zum Betriebssystem
  • Diagnosemöglichkeiten für den Programmierer

Anders als die meisten früheren Makroprozessoren ist M4 nicht auf irgendeine spezielle (Computer- oder menschliche) Sprache ausgelegt; historisch wurde es jedoch entwickelt, um den Ratfor-Dialekt von Fortran zu unterstützen. Darüber hinaus ist M4 nicht nur Turing-vollständig, sondern auch eine praktische Programmiersprache.

Beispiel

Das nachfolgende Codefragment ist ein einfaches Beispiel, das z. B. als Teil einer HTML-Bibliothek verwendet werden kann. Es definiert ein Makro, welches Kapitel automatisch nummeriert:

divert(-1)
define(`H2_COUNT', 0)
define(`H2', `define(`H2_COUNT', incr(H2_COUNT))' dnl
  `<h2>H2_COUNT. $1</h2>')
divert(1)dnl

H2(Erstes Kapitel)
H2(Zweites Kapitel)
H2(Schluss)

M4 erzeugt daraus den folgenden Text:

<h2>1. Erstes Kapitel</h2>
<h2>2. Zweites Kapitel</h2>
<h2>3. Schluss</h2>

Freie Implementierungen

Es gibt eine GNU-Version von m4. FreeBSD, NetBSD und OpenBSD liefern darüber hinaus eigene Implementierungen der M4-Sprache.

Referenzen

  • Aus dem Englischen übersetzt von [1]
  • Brian W. Kernighan and Dennis M. Ritchie. The M4 macro processor. Technical report, Bell Laboratories, Murray Hill, New Jersey, USA, 1977. pdf
  • Kenneth J. Turner. Exploiting the m4 macro language. Technical Report CSM-126, Department of Computing Science and Mathematics, University of Stirling, Scotland, September 1994. pdf
  • René Seindal. GNU M4 Manual. GNU Press. 2004. [2]

Weblinks


Kategorien: GNU | Programmiersprache | Unix-Software

Quelle: Wikipedia - http://de.wikipedia.org/wiki/M4 (Programmiersprache) (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.