Expression Tree.. identifier + Grundaufbau?

Terry12

Aktives Mitglied
hi,
hab eine Frage zum Grundlegenden Aufbau für einen späteren Expression Tree..

wir sollen eine Symboltabelle anlegen:
"Initialisieren einer Symboltabelle durch Deklarationen: insert() der deklarierten Identifier"

was sind diese Identifier? Ich nehme mal an das sind Variablen, die eben bestimmte Operanden bzw. Operatoren zugewiesen bekommen? und diese werden vorher in der Symboltabelle deklariert?

Wieviele Operanden soll man denn als Variablen in diese Symboltabelle schreiben? Wenn der ausdruck 40 Eingaben hat, soll ich dann 20 Variablen reservieren ? Oo

strings sollen eingelesen werden.. ich habe mir das so gedacht , ich mache eine Klasse für Operanden,
und eine für OPeratoren, diese sind nur +,-,* oder / , jede der Operatoren bekommt noch einen Wert Priorität , den ich dann auch abrufen kann , (vllt kann man das sogar mit enum machen).

dann sollen wir 2 Stacks machen, einen für OPeratoren , einen für Operanden , aber ich nehme an das ist für später um den Ausdruck auszuwerten oder?

Letzte Frage: soll ich von infix direkt auswerten oder erst in postfix umwandeln und dann auswerten?
von Postfix wär einfacher oder?
 
ich sehe in diesem einen Satz nichts eindeutiges, jedes der Wörter kann je nach Kontext was anderes bedeuten..

wenn du ein Programm mit Symboltabelle, Baumstruktur usw. baust dann mache es so wie richtig ist,
deklariere die Variablen, die man dabei braucht oder auch nicht,
ein Satz irgendwo an der Wand muss dich nicht allzu sehr festsetzen

> dann sollen wir 2 Stacks machen, einen für OPeratoren , einen für Operanden
es kann glaube ich nur einen Baum mit allen darin geben (*)

> Letzte Frage: soll ich von infix direkt auswerten oder erst in postfix umwandeln und dann auswerten?
> von Postfix wär einfacher oder?

ein Baum ist und bleibt ein Baum, Infix oder Postfix ist nur die Darstellung flach hintereinander,
gut in deinem Stack mag das der Fall sein wenn du keine zweidimensionale Objektstruktur, eben einen verzweigten Baum hast,

insofern magst du hier recht haben, kann ich leider nicht genau sagen, und meine Antwort bei (*) kann auch wieder fraglich werden,
der Informationsgehalt des ganzen Postings begrenzt sein 😉
 
Identifier sind die Variablennamen, Funktionsnamen und Schlüsselwörter. Operanden gehören nicht dazu.
Der Sinn der Symboltabelle ist es ja zusätzliche Informationen zu Speichern, z.B. Rückgabe/Datentyp, Sichtbarkeit, ob bereits deklariert, etc. Das braucht man alles für Operatoren nicht.
 

Zurück
Oben