STOIC (Stack-Oriented Interactive Compiler) ist eine im Jahr 1978 von dem US-amerikanischen Programmierer Jonathan Sachs entwickelte Stack-basierte Programmiersprache, die Ähnlichkeiten zu Forth aufweist.
Entstehungsgeschichte
Sachs entwickelte STOIC, als er für das Harvard Biomedical Engineering Centre for Clinical Instrumentation arbeitete. Man beauftragte ihn, für die dortige Produktreihe die passende Software zu schreiben.
Die Originalversion der Sprache wurde auf einem Data General Nova 16bit Minirechner geschrieben und später, nachdem es in den 1980er-Jahren unter die Bestimmungen des Public Domain gestellt wurde, auch unter CP/M lauffähig gemacht.
Eigenheiten der Sprache
Ähnlich wie Forth ist STOIC eine Stack-basierte Sprache. Zur Eingabe von Daten wird die Umgekehrte polnische Notation verwendet. In seiner grundlegendsten Form besteht STOIC aus einer Reihe von Standardoperationen, genannt Kernel.
Die Definitionen dieser Funktionen sind in einer Datenstruktur, dem Dictionary, gespeichert, die eine Thread-Liste von Einträgen, genannt Wörter, ist. Jedes Wort besteht aus einem zugehörigen Namensfeld sowie den Anweisungen, die die Funktion des Wortes definieren. Diese Anweisungen sind entweder eine Liste von weiteren Wörterbucheinträgen oder der eigentliche Maschinencode, der zur Implementierung des Wortes benötigt wird. Der Inhalt des Kernels reicht aus, um weitere Kompilierungen zu ermöglichen.
STOIC ist in der Lage, in seinem Programmcode direkt Assembler zu verarbeiten.
Neuere Entwicklungen
Mit STOICAL wurde Anfang der 2000er-Jahre versucht, der Sprache neues Leben einzuhauchen. STOICAL basiert grundsätzlich auf dem Funktionsumfang von STOIC, ist aber nach Angaben der Entwickler um viele Eigenschaften erweitert.
Siehe auch
Weblinks
Einzelnachweise
- Martin E. Fraeman u. a.: A STOIC-based application language for muscle mechanics research. Cornput. Biol. Med. Vol. 14. No. 2. pp. 179–190, 1984.
- Rafael Deliano: STOIC – Stack Oriented Interactive Compiler, Forth-Magazin ́"Vierte Dimension", 12. Jahrgang 1996, Nr. 2
- Ein Interview mit Jonathan Sachs