3. Aufgabenblatt

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

Re: 3. Aufgabenblatt

Beitrag von LordHoto » 2. Feb 2013 15:55

Toa hat geschrieben:In welchem Format sind denn diese *.tam files? Wenn ich mit notepad++ für Aufgabe 3.2 den Quellcode als *.tam speichere kann der Disassembler die Datei nicht einlesen. Grüße T0a
Die *.tam Dateien enhalten den Binärcode der TAM-Befehle eines Programmes. Du musst den Quellcode erstmal durch den Compiler laufen lassen und auf die erzeugte *.tam Datei dann den Disassembler laufen lassen.
Compiler 1 Tutor WS 12/13

d_glenz
Neuling
Neuling
Beiträge: 6
Registriert: 15. Jul 2011 16:36

Re: 3. Aufgabenblatt

Beitrag von d_glenz » 3. Feb 2013 16:34

Hallo,

liegt denn der Sinn von Aufgabe 3.4 einzig darin, mehr als 360 Felder zu zeichnen, jeweils mit Basistyp, benutzerdefiniertem Typ und Record-/Array-Zugehörigkeit?
Wenn ja wären das ja geschätzte 5 Seiten mit jeweils gleichem Inhalt, nämlich den board-Einträgen.

Anders gefragt: Sollen wir jedes Feld zeichnen oder reichen Auslassungszeichen? Und ist die Aufgabe wirklich so einfach, wie es auf den ersten Blick scheint?

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

Re: 3. Aufgabenblatt

Beitrag von Toa » 3. Feb 2013 16:51

Hey,

ich hab auch nur den ersten Eintrag und letzten mit Index angegeben und dazwischen mit "..." gearbeitet. Ich denke das ist vollkommen ok und zeigt das man es verstanden hat. Grüße T0a

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

Re: 3. Aufgabenblatt

Beitrag von LordHoto » 3. Feb 2013 16:53

d_glenz hat geschrieben:Hallo,

liegt denn der Sinn von Aufgabe 3.4 einzig darin, mehr als 360 Felder zu zeichnen, jeweils mit Basistyp, benutzerdefiniertem Typ und Record-/Array-Zugehörigkeit?
Wenn ja wären das ja geschätzte 5 Seiten mit jeweils gleichem Inhalt, nämlich den board-Einträgen.

Anders gefragt: Sollen wir jedes Feld zeichnen oder reichen Auslassungszeichen? Und ist die Aufgabe wirklich so einfach, wie es auf den ersten Blick scheint?
Bei Arrays reicht es den ersten und letzten Eintrag zu zeichnen. Dazwischen können Auslassungszeichen verwendet werden.
Compiler 1 Tutor WS 12/13

d_glenz
Neuling
Neuling
Beiträge: 6
Registriert: 15. Jul 2011 16:36

Re: 3. Aufgabenblatt

Beitrag von d_glenz » 3. Feb 2013 17:43

Ok, vielen Dank für eure Hilfe!

himbaer
Mausschubser
Mausschubser
Beiträge: 98
Registriert: 28. Apr 2010 19:29
Kontaktdaten:

Re: 3. Aufgabenblatt

Beitrag von himbaer » 19. Feb 2013 22:43

Hier habe ich nochmal zwei Fragen zur Musterlösung zur Aufgabe 3.5.
1 : Erstmal habe ich in meiner Lösung den Stack von oben nach unten wachsend gezeichnet. Wäre das falsch?
Soweit ich weiß, wächst der Stack normalerweiße eben auch genau von oben nach unten. Bei der TAM aber genau umgekehrt. Wie sollen wir das in der Klausur machen?

2: In dem Bild Listing 6: before mfib(3, var a) aus der Musterlösung ist mir nicht so ganz ersichtlich, wann ein Wert auf dem Stack liegt und wann eine Adresse auf dem Stack liegt.
In dem aktuellen Stack frame wurde dort erstmal Platz für die Variablen a,b gemacht und dann wurden die Parameter auf den Stack gelegt. Also zuerst der WERT 3 und dann die Adresse der Variable a. Hier frage ich mich dann erstens woran man in der Musterlösung unterscheiden kann, wann ein Wert auf dem Stack liegt und wann eine Adresse auf dem Stack liegt. Außerdem frage ich mich, wieso die Variable a relativ zum SB auf dem Stack gelegt worden ist? Wäre es dort nich auch ok gewesen, die Variable relativ zum LB auf dem Stack abzulegen??? Oder wird da einfach die Adresse von der Stackadresse |6| auf dem Stack platziert? Dann frage ich mich aber wieder wieso die |3| darunter steht. Wäre schon dazu nochmal eine erklärung zu bekommen, wie genau wir das in der Klausur handhaben sollen.
meine Testsignatur :!:

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

Re: 3. Aufgabenblatt

Beitrag von LordHoto » 19. Feb 2013 23:17

himbaer hat geschrieben:Hier habe ich nochmal zwei Fragen zur Musterlösung zur Aufgabe 3.5.
1 : Erstmal habe ich in meiner Lösung den Stack von oben nach unten wachsend gezeichnet. Wäre das falsch?
Soweit ich weiß, wächst der Stack normalerweiße eben auch genau von oben nach unten. Bei der TAM aber genau umgekehrt. Wie sollen wir das in der Klausur machen?
Solang erkennbar ist, wohin die Adressen größer werden, ist es eigentlich egal. Trotzdem würde ich empfehlen von unten anch oben zu zeichnen, da es der TAM entspricht.
himbaer hat geschrieben:2: In dem Bild Listing 6: before mfib(3, var a) aus der Musterlösung ist mir nicht so ganz ersichtlich, wann ein Wert auf dem Stack liegt und wann eine Adresse auf dem Stack liegt.
In dem aktuellen Stack frame wurde dort erstmal Platz für die Variablen a,b gemacht und dann wurden die Parameter auf den Stack gelegt. Also zuerst der WERT 3 und dann die Adresse der Variable a. Hier frage ich mich dann erstens woran man in der Musterlösung unterscheiden kann, wann ein Wert auf dem Stack liegt und wann eine Adresse auf dem Stack liegt.
Das ist wie in der Realität: Es ist i.A. nicht möglich zu unterscheiden ob es ein Wert oder eine Adresse ist, wenn man sich nur den Speicher anschaut. Hier musst du auf den Code zurückgreifen um zu schaun was es ist.
himbaer hat geschrieben:Außerdem frage ich mich, wieso die Variable a relativ zum SB auf dem Stack gelegt worden ist? Wäre es dort nich auch ok gewesen, die Variable relativ zum LB auf dem Stack abzulegen??? Oder wird da einfach die Adresse von der Stackadresse |6| auf dem Stack platziert?
Es wird die Adresse der Daten auf den Stack gelegt, was hier 6 ist.
himbaer hat geschrieben:Dann frage ich mich aber wieder wieso die |3| darunter steht.
Da das der Inhalt des Stacks vor dem Callkommando zu mfib(3, var a) ist, ist hier die 3 der Wert von n.
himbaer hat geschrieben:Wäre schon dazu nochmal eine erklärung zu bekommen, wie genau wir das in der Klausur handhaben sollen.
Im Zweifel sollte man sich an die Musterlösung halten. Jedoch ist es in der Klausur hoffentlich beschrieben, wie es zu handhaben ist bei Unklarheiten. Zur Not kann man auch in der Klausur eine Frage stellen.
Compiler 1 Tutor WS 12/13

himbaer
Mausschubser
Mausschubser
Beiträge: 98
Registriert: 28. Apr 2010 19:29
Kontaktdaten:

Re: 3. Aufgabenblatt

Beitrag von himbaer » 20. Feb 2013 10:39

Super vielen dank. Nur eine kleine Sache noch :D
Wie wurde dort die retourn Adresse berechnet?
meine Testsignatur :!:

Jens Huthmann
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 192
Registriert: 10. Nov 2011 19:42

Re: 3. Aufgabenblatt

Beitrag von Jens Huthmann » 20. Feb 2013 10:59

himbaer hat geschrieben:Wie wurde dort die retourn Adresse berechnet?
Mit Magie... oder einer umgebauten Version des Interpreters :wink:

Da diese aber nicht ohne konkrete Erzeugung des TAM Codes berechnet werden kann, fließt diese nicht in die Bewertung mit ein, außer das der Platz vorhanden sein muss.

Antworten

Zurück zu „Archiv“