Kontexte

Was ist eigentlich ein Sourcecode?

Die ersten Programmiersprachen unterscheiden sich deutlich von den Heutigen. Die Weiterentwicklung spiegelt sich zu großen Teilen in den Fähigkeiten des Parsers wider. Heutige Parser sind in der Lage Schlüsselworte unterschiedlicher Länge zu erkennen, beliebige Abstände zwischen Operatoren und Symbolen zu akzeptieren, verschachtelte Ausdrücke und strukturierte Algorithmen zu verarbeiten. Frühere Parser erlaubten keine Strukturierung (z.B. erste BASIC-Dialekte), geht man weiter in der Zeit zurück, verlangen Parser eine eindeutige Formatierung (vgl. Fortran-Programme). Am Anfang der Zeit fehlt der Parser vollständig, man programmiert direkt in einer binären Darstellung.

All dies sind Programmiersprachen. Ein Parser, der eine programmierbare Syntax unterstützt, muss also in der Lage sein, neue Operatoren zu definieren und vorhandene zu vergessen. Da nicht alle Sourcecodes in Plaintext vorliegen müssen, sollte die kleinste mögliche Einheit für Zeichen im Sourcecode beachtet werden. Um Befehle in binärer Darstellung erfassen zu können, wobei der binäre Befehl bereits Argumente enthalten kann, bedarf es also der Möglichkeit Zeichen in einer Breite von 1 Bit lesen zu können.

Zur Realisierung eignet sich der Baustein „Kontexte“ zur Definition von Sub-Sprachen in Verbindung mit der Information, wie groß ein einzelnes Zeichen in der zu lesenden Sprache ist, z.B.

context( char ) CPlusPlus
{
  // Definition der Statusvariblen und Operatoren
};
context( bit ) MaschinenSprache
{
  // Definition der Statusvariblen und Operatoren
};