next up previous contents
Nächste Seite: Lisp und Emacs-Lisp Aufwärts: Einführung Vorherige Seite: Das Zwei-Personen-Spiel Phutball   Inhalt

EMACS

Laut seinem Handbuch ist Emacs ein ``erweiterbarer, anpassbarer, selbstdokumentierender Echtzeit-Display-Editor''.

Emacs ist also ein Texteditor und mehr. Sein Kern besteht aus einem Interpreter für Emacs Lisp (kurz: Elisp), einem Lisp-Dialekt mit Erweiterungen, um das Editieren von Texten zu ermöglichen.

Emacs besteht aus fünf Komponenten: Ein- und Ausgabeprimitiven, dem Interpreter, dem Command Dispatcher, dem Library System und dem Display Processor.

Die Ein- und Ausgabeprimitiven werden verwendet, um Operationen auf Text unter der Kontrolle des Programms auszuführen. Der Interpreter führt Programme aus und verwendet dabei die Ein- und Ausgabeoperationen, wenn verlangt. Der Command Dispatcher merkt sich, welches Programm zu jeder möglichen Eingabe gehört. Er liest ein Zeichen von einem Terminal und ruft die zugehörige Funktion auf. Das Library System assoziiert Funktionen mit ihren Namen und Dokumentation und ermöglicht das Laden von Gruppen von Funktionen. Der Display Processor aktualisiert die Ausgabe um die Änderungen an dem Text sichtbar zu machen.

Ursprünglich war Emacs eine Erweiterung für den TECO (Tape Editor and Corrector) Wortprozessor. TECO ist eine Interpretersprache, welche einem die Möglichkeit bietet, auf die internen Datenstrukturen des Interpreters zuzugreifen. Tatsächlich sind dies notwendige Vorraussetzungen, um einen erweiterbaren Editor zu implementieren. Für einen solchen wird eine Interpretersprache benötigt, um auch während der Editor gestartet ist Erweiterungen hinzuzufügen. Die Möglichkeiten in Lisp, Funktionen als Daten zu behandeln, führte dazu, dass die meisten Implementierungen von Emacs einen Lisp-Dialekt als Interpretersprache verwenden.

Die Möglichkeiten zur Erweiterung führte zu einer Vielzahl von Erweiterungen von Emacs. Die einfachste und zuerst implementierte war automatisches Einrücken für Programmiersprachen, insbesondere Lisp. Im Laufe der Zeit wurden sogenannte ``Major Modes'' für eine Vielzahl von Programmiersprachen entwickelt. Ein Major Mode passt das Verhalten von Emacs an das Editieren einer bestimmten Textart an. Major Modes schliessen einander aus, ein Bearbeitungspuffer kann nur genau einen Major Mode aktiviert haben. Ein Major Mode kann die Bedeutung gewisser Tasten ändern, Syntax-Highlighting für bestimmte syntaktische Konstrukte bereitstellen, automatisch Einrücken und andere Hilfestellungen beim Bearbeiten von Texten bereitstellen wie zum Beispiel kompilieren von Quellcodes direkt aus dem Editor.

Das Emacs Handbuch unterscheidet drei Arten von Major Modes: Eine Menge von Major Modes zum Bearbeiten von normalem Text, wie zum Beispiel der HTML-Mode, Text-mode und LATEX-Mode. Die zweite Menge von Major Modes sind Modes für spezifische Programmiersprachen, zum Beispiel der Lisp-Mode, C-Mode oder Haskell-Mode. Die dritte Art von Modi sind Modes, die nicht für die Verwendung auf Dateien gedacht sind, sondern für bestimmte Anwendungen in Emacs verwendet werden. Darunter fallen der Dired-Mode, um Verzeichnisse zu verwalten, der IRC-Mode, oder Gnus, ein Mail- und Newsreader für Emacs. Auch eine Vielzahl von Spielen für Emacs fällt in diese Kategorie, darunter zum Beispiel Tetris oder Gomoku.

Lisp-Interpreter existieren für eine Vielzahl von Plattformen. Insbesondere der Display-Processor ist damit auf jeder Plattform mit einem solchen Interpreter implementierbar. Deshalb existieren für eine Vielzahl grafischer und auch text-basierter Oberflächen Implementierungen von Emacs.


next up previous contents
Nächste Seite: Lisp und Emacs-Lisp Aufwärts: Einführung Vorherige Seite: Das Zwei-Personen-Spiel Phutball   Inhalt
Robert Hoehndorf 2002-08-22