Ich entwerfe eine einfache OO-Programmiersprache.
Es wird statisch typisiert, kompiliert und von einer VM ausgeführt - ähnlich wie Java.
Der Unterschied ist, dass ich OOP nicht so stark betonen möchte. Der Code selbst ähnelt größtenteils C ++ (Klassen, Funktionen und Variablen, die im Dateibereich zulässig sind).
Eines der Dinge, die ich haben muss, ist ein Modulsystem. Ich habe folgendes herausgefunden:
- Jede Datei ist ein Modul (einmal kompiliert) - wie Python
- Programmierer müssen ein Modul mit dem
import
Schlüsselwort importieren , wodurch der Compiler in Standardverzeichnissen und im Dateiverzeichnis nach Modulen sucht (die VM muss dies auch zur Laufzeit tun).
Und jetzt habe ich keine Ahnung, wie ich das Konzept der Submodule und der Modulhierarchie einführen soll.
Eine Möglichkeit besteht beispielsweise darin, von der Verzeichnishierarchie abhängig zu sein, sodass import engine.graphics.renderer
erwartet wird, dass im Arbeitsverzeichnis und in einem Verzeichnis mit dem Namen "Grafik" ein Verzeichnis mit dem Namen "Renderer" gefunden wird.
Was sind die Nachteile eines solchen Designs? Vermisse ich etwas
foo.bar
foo / bar.file oder einem Modul foo
mit dem Mitglied (auch ein Modul) bar
. Etwas zu beachten
@annotations
zum Einbetten solcher Informationen einführen .