Henrik's blog

SimpleVM #8: Details & Loading from File

Category: 

In diesem Artikel vervollständigen wir unsere SimpleVM und erweitern sie außerdem um die Möglichkeit ein Programm aus einer Datei zu laden.

SimpleVM #7: Operator overloading

Category: 

Durch Operator overloading kann man eigene Typen um Operatoren erweitern. Dadurch ist man in der Lage, Objekte direkt mit +, -, etc. zu Verarbeiten. In diesem Artikel wollen wir unsere Tables um dieses Feature erweitern.

SimpleVM #6: Globals & Java Funktionen

Category: 

In diesem Artikel werden wir die VM um globale Variablen erweitern, wodurch verschiedene Scripte auf gemeinsame Daten zugreifen können. Außerdem werden wir die Möglichkeit schaffen, Java Funktionen aus unserem Bytecode heraus aufzurufen.

SimpleVM #5: OOP

Category: 

Heute werden wir die String Unterstützung der VM etwas verbessern und außerdem die Objektorientierte Programmierung einführen.

SimpleVM #4: Funktionen

Category: 

In diesem Artikel erweitern wir die VM um Funktionen. Außerdem erweitern wir die VM um lokale Variablen, wodurch der Bytecode etwas effektiver wird.

SimpleVM #3: Bedingte Sprünge

Category: 

Dieses Mal geht es darum, die VM um bedingte Sprünge zu erweitern. Dadurch erhalten wir endlich mehr dynamik in unserer VM.

SimpleVM #2: Prototyp

Category: 

In diesem Artikel soll es darum gehen, einen simplen Prototypen einer virtuellen Maschine zu entwickeln. Als grundlegende Befehle reichen uns vorerst Rechenoperationen und die Ausgabe auf der Konsole.

Simple Virtual Machine #1

Category: 

Virtuelle Maschinen dienen als Schnittstelle zwischen virtuellen Instruktionen und der tatsächlichen Maschine. Grundsätzlich gibt es verschiedene Einsatzmöglichkeiten für sie. Beispielsweise kann man eine Scriptengine darauf aufbauen und somit (Spiel-)logik in Assets auslagern und ggf. auch zur Laufzeit ändern.

Compiler Entwicklung mit Coco/R

Category: 

Coco/R ist ein Compiler Generator, welcher eine attributierte Grammatik als Eingabe erhält und daraus einen Scanner und Parser erzeugt. Der Scanner arbeitet als deterministischer, endlicher Automat und zerlegt die Eingabe in Tokens. Der Parser ist ein sogenannter recursive descent parser.

Compiler Grundlagen

Category: 

Ein Compiler übersetzt den Code einer Sprache in den einer anderen Sprache. Klassische Compiler übersetzen dabei den Programmcode in Maschinencode, welcher direkt vom Computer ausgeführt werden kann. Manche Sprachen, wie z.B. Java und C# erzeugen Bytecode, welcher von einer virtuellen Maschine ausgeführt wird oder auch beim ersten starten in Maschinencode übersetzt wird.

Pages

Subscribe to RSS - Henrik's blog