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.

Weiterlesen

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.

Weiterlesen

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.

Weiterlesen

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.

Weiterlesen

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.

Weiterlesen

Nützliche online Tools für Webentwickler

Für meine Programmiertätigkeiten im Web nutze ich gelegentlich einige äußerst nützliche Helferlein im Netz. Es handelt sich dabei um kostenfreie Tools, die entweder bei der Fehlersuche, oder aber auch einfach bei der Vorbereitung zur Veröffentlichung eines Projekts nützlich sind. Einige meiner liebsten Tools zum Thema Kompression von Skriptcode sowie Tester für Reguläre Ausdrücke möchte ich in diesem Beitrag kurz vorstellen und zur Nutzung empfehlen.

Weiterlesen

JavaScript Codeschnipsel: Farbwechsel im Sonnenlauf

Ich mag es, wenn auf der Webseite dynamische Elemente basierend auf kalendarischen Ereignissen verankert sind, also zum Beispiel der das Hintergrundbild automatisch an die Jahreszeiten angepasst werden. Da ich ein fauler Mensch bin, programmiere ich lieber einen Algorithmus, anstatt von Hand bei jeder Gelegenheit Bilder oder CSS Code auszutauschen. Aktuell lasse ich die Farbe des Hintergrunds auf meiner Webseite durch das Jahr hinweg anders erscheinen, dabei soll es so sein, dass zum Zeitpunkt der Wintersonnenwende, also rund um den 21./22. Dezember der Hintergrund passend dunkel, hier: schwarz sein soll, wohingegen im Sommer, zur Sommersonnenwende dann natürlich ein helles weiß erstrahlen soll. Der Hintergrund der Webseite passt sich also in den Grautönen der vermeintlichen Helligkeit oder Sonnenstunden am jeweiligen Tag an. […]

Weiterlesen

Einen besseren Taschenrechner programmieren

Im ersten Beitrag hatte ich gezeigt, wie man mit Hilfe der Postfix, bzw. Polnischen Notation einen einfachen Taschenrechner programmieren kann. Dieser hatte allerdings einige Schwächen, da er einige allgemein anerkannte Rechenregeln wie Punkt-vor-Strich nicht respektiert, mit negativen Zahlen nicht sauber zurecht kommt und auch noch andere Schwächen besitzt. In diesem zweiten Teil sollen diese Mängel ausgebügelt werden und der Taschenrechner deutlich ausgebaut werden. Die Beispiele zur Programmierung eines Taschenrechners auf dieser Seite sind in JavaScript programmiert. Eine PHP Version folgt.

Weiterlesen
1 2