Home-Produkte-Testarea-Kontakt-Datenschutz-Aktualisiert: 18-Jun-2009
< Voriger Tag   Nächster Tag >

Donnerstag, 18. Juni 2009

Lx0: Prototyp -- Verzeichnisstruktur

Der Lx0-Prototyp dient dazu den grundsätzlichen Aufbau der Sprache und des Compilers meiner Lx-Programmiersprache für den eigenen Gebrauch auszuprobieren.

Er ist darauf ausgelegt möglichst schnell programmiert zu werden, um möglichst viel in kurzer Zeit auszuprobieren. Wenn er wie gedacht funktioniert wird er verworfen und mit der beim Prototyp gesammelten Erfahrung der eigentliche Compiler programmiert.

Weil er möglichst schnell programmiert wird, ist der Quelltext nicht sonderlich gut -- Unittests werden ganz fehlen, die Fehlerbehandlung ist nur minimal und die Struktur wird auch viele Wünsche offen lassen, diese Feature sind dann dem eigentlichen Compiler überlassen.

Problem ist dabei das geeignete Mittelmaß zwischen schneller Programmierung und noch genug viel an Fehlerbehandlung und Struktur zu finden, um sich dann nicht doch noch Stolpersteine in den Weg zu legen, wodurch die zu Anfang gewonnene Zeit wieder verlorengeht, weil man zu lange nach einen Fehler sucht oder sich ein neues Feature auf Grund der schlechten Struktur nur schwer oder gar nicht einbauen lässt.

Die ersten Quelltextzeilen legen anhand eines Hello World's die Verzeichnisstruktur fest -- sie liegen im Moment nur in Subversion (die svn. Subdomain ist neu. Kann sein, dass sie noch nicht von überall erreichbar ist). Wenn ANT, ANTLR 3, Java 5 und gcc vorhanden sind und man die ANTLR .jars ins /lib-Verzeichnis von lx0prototype kopiert, kann das Hello World-Programm mit ant crun nach C konvertiert, mit gcc compiliert und anschließend als Binary ausgeführt werden.

>> ant crun

jar:
Building jar: Lx0Prototype/dist/lx0prototype.jar
compile-lx0:
#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("Hello World!\n");

    return 0;
}

cmake:
gcc -o ../cbin/helloworld helloworld.c
crun:
Hello World!
ERSTELLEN ERFOLGREICH (Gesamtzeit: 0 Minuten 7 Sekunden)

Verzeichnisstruktur

src               -- Java Quelltexte
grammar           -- ANTLR 3 Grammatik
templates         -- StringTemplates (ANTLR 3)
examples          -- .lx0 Beispiele
ctools            -- Makefile
lib               -- Benötigte .jars
dist              -- Zielverzeichnis für das fertige Programm
build             -- Buildverzeichnis (.class, .c, .o, ...)
build.xml         -- Ant Buildfile
build.properties  -- Ant Properties

[Direktlink]

< Voriger Tag   Nächster Tag >

  RSS V0.91

<Juni 2009 >
01020304050607
08091011121314
15161718192021
22232425262728
2930     

Home-Produkte-Testarea-Kontakt-Datenschutz-Aktualisiert: 18-Jun-2009
(C) 2000-2018 by Sven Drieling