2. Aufgabenblatt

Toa
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 121
Registriert: 16. Feb 2011 23:58

Re: 2. Aufgabenblatt

Beitrag von Toa » 20. Dez 2012 17:00

Wie erkennt man denn am schlausten, ob ein ast.E ein booleanExpression ist? Bei Integer funktioniert das beispielsweise mit instanceof IntegerExpression. Grüße T0a

LordHoto
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 135
Registriert: 14. Dez 2009 17:00

Re: 2. Aufgabenblatt

Beitrag von LordHoto » 20. Dez 2012 17:27

Toa hat geschrieben:Wie erkennt man denn am schlausten, ob ein ast.E ein booleanExpression ist? Bei Integer funktioniert das beispielsweise mit instanceof IntegerExpression. Grüße T0a
Du könntest den type, der ja ein TypeDenoter ist, von (Simple)VName überprüfen. Aber eigentlich solltest du sowas gar nicht brauchen, da du ja mit einem Vistor arbeitest und in den Funktionen weißt um was für eine Expressions es sich handelt.
Compiler 1 Tutor WS 12/13

Toa
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 121
Registriert: 16. Feb 2011 23:58

Re: 2. Aufgabenblatt

Beitrag von Toa » 20. Dez 2012 17:41

LordHoto hat geschrieben:
Toa hat geschrieben:Wie erkennt man denn am schlausten, ob ein ast.E ein booleanExpression ist? Bei Integer funktioniert das beispielsweise mit instanceof IntegerExpression. Grüße T0a
Du könntest den type, der ja ein TypeDenoter ist, von (Simple)VName überprüfen. Aber eigentlich solltest du sowas gar nicht brauchen, da du ja mit einem Vistor arbeitest und in den Funktionen weißt um was für eine Expressions es sich handelt.
Für die Optimierung wollte ich das verwenden. Wenn es ein Integer ist dann untersuche ich die Integer Operatoren. Sollte es ein Boolean sein (Vname), verwende ich shortcut evaluation mit || und &&

LordHoto
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 135
Registriert: 14. Dez 2009 17:00

Re: 2. Aufgabenblatt

Beitrag von LordHoto » 20. Dez 2012 19:05

Toa hat geschrieben:
LordHoto hat geschrieben:
Toa hat geschrieben:Wie erkennt man denn am schlausten, ob ein ast.E ein booleanExpression ist? Bei Integer funktioniert das beispielsweise mit instanceof IntegerExpression. Grüße T0a
Du könntest den type, der ja ein TypeDenoter ist, von (Simple)VName überprüfen. Aber eigentlich solltest du sowas gar nicht brauchen, da du ja mit einem Vistor arbeitest und in den Funktionen weißt um was für eine Expressions es sich handelt.
Für die Optimierung wollte ich das verwenden. Wenn es ein Integer ist dann untersuche ich die Integer Operatoren. Sollte es ein Boolean sein (Vname), verwende ich shortcut evaluation mit || und &&
Wenn du aber ein || bzw. && vorfindest, weißt du schon was die Typen der Operanden sind. Die vorgegebenen Funktionen sollten schon ausreichen sein, was Hilfsfunktionen angeht. Man muss sich vllt. nur Gedanken manchen wie man es am besten damit macht. Du kannst natürlich auch gerne es auf eine andere Art und Weise lösen.
Compiler 1 Tutor WS 12/13

jonas
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 177
Registriert: 5. Okt 2008 21:35
Wohnort: DA

Re: 2. Aufgabenblatt

Beitrag von jonas » 20. Dez 2012 19:52

LordHoto hat geschrieben:
[...]
Noch eine kleine Anmerkung zu der Regel mit den neutralen Elementen: Betrachtet man die Division so ist z.B. 1 nur ein rechtsneutrales Element der Division, d.h. x / 1 = x, aber nicht 1 / x = x, daher kein neutrales Element. Hier wird so weit ich es weiß nicht gefordert es zu handhaben. Ähnlich ist es mit Addition/Subtraktion mit 0 (EDIT: Addition mit 0 fällt natürlich unter die Regel mit dem neutralem Element!). bzw. Multiplikation mit 0. Ich werde das nochmal mit Herrn Huthmann klären, ob das auch gefordert ist oder nicht.
[...]
Was kam dabei eigentlich raus?
Ich gehe mal davon aus, dass es kein Fehler ist rechtsneutrale Elemente ebenfalls zu beachten?

LordHoto
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 135
Registriert: 14. Dez 2009 17:00

Re: 2. Aufgabenblatt

Beitrag von LordHoto » 20. Dez 2012 20:00

jonas hat geschrieben:
LordHoto hat geschrieben:
[...]
Noch eine kleine Anmerkung zu der Regel mit den neutralen Elementen: Betrachtet man die Division so ist z.B. 1 nur ein rechtsneutrales Element der Division, d.h. x / 1 = x, aber nicht 1 / x = x, daher kein neutrales Element. Hier wird so weit ich es weiß nicht gefordert es zu handhaben. Ähnlich ist es mit Addition/Subtraktion mit 0 (EDIT: Addition mit 0 fällt natürlich unter die Regel mit dem neutralem Element!). bzw. Multiplikation mit 0. Ich werde das nochmal mit Herrn Huthmann klären, ob das auch gefordert ist oder nicht.
[...]
Was kam dabei eigentlich raus?
Ich gehe mal davon aus, dass es kein Fehler ist rechtsneutrale Elemente ebenfalls zu beachten?
Ein Fehler ist es nicht, aber es ist nicht gefordert. Genau wie beim linksneutralen Element.
Compiler 1 Tutor WS 12/13

jonas
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 177
Registriert: 5. Okt 2008 21:35
Wohnort: DA

Re: 2. Aufgabenblatt

Beitrag von jonas » 31. Jan 2013 18:50

Wurden die erreichten Punkte vom 2. Aufgabenblatt eigentlich auch veröffentlicht/ausgehängt?

errt
Mausschubser
Mausschubser
Beiträge: 61
Registriert: 18. Okt 2012 19:12

Re: 2. Aufgabenblatt

Beitrag von errt » 31. Jan 2013 20:31

Vorhin hingen sie jedenfalls noch nicht aus.

LordHoto
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 135
Registriert: 14. Dez 2009 17:00

Re: 2. Aufgabenblatt

Beitrag von LordHoto » 31. Jan 2013 20:49

errt hat geschrieben:Vorhin hingen sie jedenfalls noch nicht aus.
Der Aushang sollte demächst kommen. Wann genau kann ich leider auch nicht sagen. Aber korrigiert sind die Übungsblätter schon ;-).
Compiler 1 Tutor WS 12/13

Antworten

Zurück zu „Archiv“