Hallo Olli,
ich finde Deinen Compiler recht gut. Da hast Du Dir richtig viel Arbeit gemacht (ich weiß wovon ich spreche
) Auch die Tatsache, dass Dein Compiler Open Source ist spricht meiner Meinung nach für das Projekt. Mir ist jedoch aufgefallen, dass der Compiler teilweise merkwürdigen Code erzeugt.
Code:
void main(){
int[0] i = 1;
}
void x(){
int[0] i = 1; return i;
}
CCTRL-BASIC
19
20 0 1 0 26 0 0 255 20 0 1 0 26 0 0 23 0 6 6
0
Sofern die "0" nach jeder Anweisung ignoriert würde (ob das bei allen Controllern so ist, kann ich nicht sagen) ist das zusätzliche Zeichen zumindest ineffizienter.
Außerdem frage ich mich, ob der Compiler nicht innerhalb einer VOID Funktion ein RETURN mit Rückgabewert verbieten sollte.
Wie sieht es eigentlich mit Pointern und structs aus. Geht das? Ich fürchte, dass man zumindest Pointer mit unter nur mit zusätzlichen Assemblerroutienen realisieren kann.
Gruß,
Stefan
Lesezeichen