Compiler-Diskussion

Du brauchst Grafiken, gute Programme oder Leute die dir helfen? Frag hier.
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Compiler-Diskussion

Beitrag von remi_meier »

Hallo alle zusammen :)
Mein letzter Post über meinen Compiler ging leider verloren und ich bin zu
faul... Ich hoffe es hat jeder mitbekommen, dens interessiert.

Auf jeden Fall hätte ich da mal ein paar Fragen an diejenigen, mit mehr
Erfahrung! Da es kein Theorie- und Konzeptionsforum mehr gibt (bitte Rob
es gibt doch schon genug Stimmen, die laut wurden!), schreib ichs jetzt
mal hier hin, weil es doch um ein Projekt geht...

1. Frage
Ich habe ja hier schonmal einige Prozeduren zum Thema Infix2Postfix ge-
postet, die ich auch in meinem Compiler verwende. Nun ist das Ganze
aber ziemlich ineffizient bei solchen Codes:
a+a+b*(a+b)
Da wird ja 3x 'a' gepusht, wobei dieser Wert doch nur einmal geladen
werden müsste... Mit umständlichen Optimierungen könnte man das viel-
leicht verbessern, jedoch wäre es wahrscheinlich besser, wenn man
irgendwie intelligenter vorgehen könnte!
Was gibts da noch für Methoden?

2. Frage
Beim Parsen und Syntaxchecken hab ich ja so eine simple Prozedur (auch
zu sehen bei den Infix2Postfix-Prozeduren), welche nicht das Muster
erkennt, sondern nur einzelne Symbole der Reihe nach durchgeht. Es gibt
jedoch auch rekursive Definitionen einer Syntax, die man ev. sehr
allgemein implementieren könnte. Meine Frage ist nun, ob sich eine
rekursive Implementierung lohnen würde und was es da für Algorithmen
gibt (ev. Links?).

Danke schonmal, ich bin gespannt, was ihr dazu sagt!
greetz
Remi :)
Benutzeravatar
Hades
Beiträge: 100
Registriert: 21.05.2005 11:54

Beitrag von Hades »

Ich beschäftige mich erst seit kurzem mit dem Compilerbau, also hast Du mit Sicherheit mehr Ahnung davon als ich. Egal, ich geb trotzdem mal meinen Senf dazu. :mrgreen:

Frage 1:
Ich würde mich auf den Optimizer konzentrieren, um solche Probleme zu lösen, denn sonst verzettelst Du Dich warscheinlich in Speziallösungen für einzelne Situationen.
Ein gut gemachter Optimizer würde den mehrmaligen Zugriff auf ein und die selbe Variable auch erkennen, wenn dies in verschiedenen Zeilen geschieht.

Frage 2:
Willst Du einen Compiler-Compiler bauen? Wenn Deine Sprache nicht enorm umfangreich werden soll, oder Du zig Sprachen damit entwickeln willst, wird sich das denke ich nicht lohnen.
Kannst ja mal unter "Compiler Compiler" Googeln. Ist teilweise recht interessant, aber im Endeffekt fällt das wohl auch wieder unter verzetteln. :(


Viel Glück bei Deinem Compiler. :allright:
Antworten