JASm Coding – Beispielprogramme 2 (Logik, ggT, Division und bitweises Schieben)

Für die minimalistische Programmiersprache JASm, die mit nur zwei Befehlen auskommt, wurden schon eine Reihe an Algorithmen vorgestellt. Unter anderem auch zur Addition und Multiplikation von Zahlen.

In diesem Beitrag werden die vorgestellten Codebeispiele länger, obwohl die eigentlich damit realisierten Funktionen nach wie vor eher “einfacher” Natur sind. So gehört die Division eigentlich zum Kernelement einer Programmiersprache, bei JASm, welches nur die Subtraktion (und einen Sprung) kennt, liegt dies anders.

(mehr …)

WeiterlesenJASm Coding – Beispielprogramme 2 (Logik, ggT, Division und bitweises Schieben)

JASm Compiler und Laufzeitumgebung

Nach der Theorie zu JASm, folgt nun noch etwas mehr Praxis und zwar dergestalt, dass ich hier nun einen in JavaScript implementierten “Compiler”, bzw. Interpreter präsentiere.

Das Tool liest in JASm geschriebenen Quelltext und wandelt diesen in ein für die JASm Maschine geeignetes Speicherabbild um, bzw. führt den Code auch aus und liefert eine Reihe an zusätzlicher Informationen.

(mehr …)

WeiterlesenJASm Compiler und Laufzeitumgebung

JASm Coding – Beispielprogramme 1 (Sprung, Addition, Multiplikation , Ausgabe und Funktion)

Bislang wurden die Kernelemente von JASm Core sowie einige hilfreiche Sprachelemente vorgestellt. Dies wurde an zweckdienlichen Beispielen präsentiert, doch noch steht unter anderem auch noch der Nachweis aus, dass die zwei Befehle SUB und JA tatsächlich ausreichend sind, um komplexere Aufgaben zu bewältigen.

In diesem Beitrag sollen nun einige weitergehende Codebeispiele dargestellt werden. Die Beispiele bauen in vielen Fällen aufeinander auf und nehmen so in ihrer Komplexität jeweils zu. Es ist auch in einigen Fällen nicht immer der effizienteste Lösungsansatz gewählt worden, da es hier immer noch um die Vermittlung der Sprache geht.

(mehr …)

WeiterlesenJASm Coding – Beispielprogramme 1 (Sprung, Addition, Multiplikation , Ausgabe und Funktion)

JASm Coding – Sprachkonstrukte

Im vorangegangenen Beitrag wurden die esoterische Programmiersprache JASm und die zugehörige Maschine vorgestellt. Den Kern der Sprache machen lediglich zwei Befehle aus: SUB und JA. Alle weiteren Elemente sind (wie die beiden Befehle selber eigentlich auch) nur Zahlen.

Um die Programmierung etwas zu erleichtern, werden nun noch einige Sprachkonstrukte eingeführt, die den Kern von JASm nicht berühren und auch keine Anpassung oder gar Erweiterung der Maschine bedürfen, wohl aber ein wenig Komfort für einen Programmierer bieten.

(mehr …)

WeiterlesenJASm Coding – Sprachkonstrukte

JASm Core – eine esoterische Programmiersprache

Moderne Programmiersprachen glänzen durch einen umfangreichen Befehlssatz und effizienter Programmierlogik. Komplexe Algorithmen lassen sich teilweise gut verständlich abbilden und dass tief darunter ein Maschinencode entsteht, für den es auch einmal “maschinennahe” Codiermöglichkeiten (Assembler) gab, hat man schnell vergessen.

Meine letzte Berührung mit Assembler ist – glücklicherweise – nun auch schon über 20 Jahre her und dennoch ist eine gewisses Faszination geblieben. Kombiniert für das Interesse an esoterischen Programmiersprachen ist es nicht mehr weit, bis ein über 20 Jahre altes Konzept noch einmal aus der mentalen Schublade hervorgekramt wird: JASm.

(mehr …)

WeiterlesenJASm Core – eine esoterische Programmiersprache