M4 (Programmiersprache)

M4 (Programmiersprache)

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

Inhaltsverzeichnis

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 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:

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

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 Implementationen 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


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Programmiersprache — Programmiersprache …   Deutsch Wörterbuch

  • Programmiersprache/Zeittafel — Jahr Name Entwickler, Hersteller Vorläufer, Vorgänger 1840 Erstes Programm Ada Lovelace * 1946 Plankalkül Konrad Zuse * 1952 A 0 Grace Hopper * …   Deutsch Wikipedia

  • Programmiersprache C — C Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Dennis Ritchie Bell Labs wichtige Implementierungen …   Deutsch Wikipedia

  • Programmiersprache Perl — Perl Paradigmen: prozedural, modular, teilweise objektorientiert Erscheinungsjahr: 1987 Entwickler: Larry Wall, Perl Porter Aktuelle  …   Deutsch Wikipedia

  • Programmiersprache — Quelltext eines Programms in der Programmiersprache C++. Eine Programmiersprache ist eine formale Sprache, die zur Formulierung von Computerprogrammen verwendet wird. Die Anweisungen (Befehle) können dabei entweder in Maschinencode geschrieben… …   Deutsch Wikipedia

  • Programmiersprache Smalltalk — Smalltalk Logo von Smalltalk Basisdaten Entwickler: diverse Aktuelle Version: Smalltalk 80  (1980) …   Deutsch Wikipedia

  • Programmiersprache Haskell — Haskell Basisdaten Paradigmen: funktional, nicht strikt, modular …   Deutsch Wikipedia

  • Programmiersprache Java — Java Objektorientierte Programmiersprache Basisdaten Paradigmen: Objektorientierte Programmiersprache Aktuelle  …   Deutsch Wikipedia

  • Programmiersprache Eiffel — Eiffel ist eine universelle, rein objektorientierte Programmiersprache und wurde 1985 von dem französischen Informatiker Bertrand Meyer und seiner Firma Interactive Software Engineering Inc. (Goleta, Kalifornien) als Alternative zu C++ entworfen …   Deutsch Wikipedia

  • Programmiersprache D — D Paradigmen: imperativ, objekt orientiert, generisch, modular Erscheinungsjahr: 2007 Entwickler: Walter Bright Aktuelle  …   Deutsch Wikipedia

  • Programmiersprache Pascal — Pascal Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Niklaus Wirth Dialekte: UCSD Pascal …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”