Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Skuld

Erfahrener Schreiberling

  • "Skuld" is male
  • "Skuld" started this thread

Posts: 344

Date of registration: Oct 2nd 2007

Occupation: Student

1

Tuesday, September 14th 2010, 4:22pm

PSUE - Fragen

Hey zusammen, kann zwar nicht zur Lerngruppe erscheinen, habe aber eine kleine Frage bezüglich Konflikten in einer action/goto Tabelle. Woran kann ich festmachen, was für Prioritäten/Assoziativitäten eine gegebene Tabelle mit Konflikten und Konfliktlösungen (wie in der Beispielklausur auf der PSUE Seite) besitzt? Ich sehe beispielsweise ein, dass der Konflikt im Zustand 6 beim gelesenen Zeichen ":" auf ein shift führt, da der Divisionsoperator eine höhere Priorität als "+" besitzt. Allerdings ist mir bei den anderen Konfliktlösungen nicht ganz klar, wie ich da vorgehen soll, um festzustellen, wonach jetzt entschieden wurde.

[MOD] Verschoben in einen neuen Thread

EDIT: Dachte zwar das rechtfertigt keinen neuen Thread, aber dankeschön ;)
Hello, IT, have you tried turning it off and on again?

Wo schlafen Schmetterlinge eigentlich?

This post has been edited 3 times, last edit by "Skuld" (Sep 15th 2010, 11:47am)


SunshineSunny

Sonnenscheinchen auf'm Campus

2

Tuesday, September 14th 2010, 4:52pm

Nun ja es gibt zum einen die Prioritäten und zum anderen die Links-/Rechtsrekusion... die hilft die bei gleichen Zeichen auf dem Stack und der Eingabe...

Es wäre hilfreich dein Beispiel zu posten oder zumindest den Link zur Aufgabe :)
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen.
Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.

Skuld

Erfahrener Schreiberling

  • "Skuld" is male
  • "Skuld" started this thread

Posts: 344

Date of registration: Oct 2nd 2007

Occupation: Student

3

Wednesday, September 15th 2010, 11:46am

So weit ist mir das auch klar ;) Ich beziehe mich auf die Klausur, die auf der PSUE Seite steht, Aufgabe 4a).
Hello, IT, have you tried turning it off and on again?

Wo schlafen Schmetterlinge eigentlich?

SunshineSunny

Sonnenscheinchen auf'm Campus

4

Wednesday, September 15th 2010, 11:50am

Wo genau ist dann dein Problem?

In der Übung wurde eine Tabelle zur Lösung angeboten.
In der Vergleichst du das Zeichen auf dem Stack mit dem nächsten zu lesenden. Wenn diese gleich sind... schaust du ob es rechts- oder linksassoziativ ist und wenn sie ungleich sind, dann schaust du welche die höhere Priorität hat.

Schiften heißt du schreibst das gelesene Zeichen auf den Stack und reduce heißt du reduzierst nach der Regel X (Bsp. rX) die Zeichen auf dem Stack weg...

Hilft dir das weiter?
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen.
Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.

Skuld

Erfahrener Schreiberling

  • "Skuld" is male
  • "Skuld" started this thread

Posts: 344

Date of registration: Oct 2nd 2007

Occupation: Student

5

Wednesday, September 15th 2010, 1:10pm

Mein Problem ist, woran ich in der Klausuraufgabe festmache, welche Prioritäten die Operatoren haben bzw. ob sie links/rechtsassoziativ sind. Ich habe ja gegeben, wie die Konflikte gelöst wurden, und wie fang ich dann an, um die Prioritäten/Assoziativitäten herauszufinden?
Hello, IT, have you tried turning it off and on again?

Wo schlafen Schmetterlinge eigentlich?

hyperion

Erfahrener Schreiberling

  • "hyperion" is male

Posts: 422

Date of registration: Oct 8th 2004

6

Wednesday, September 15th 2010, 1:43pm

Mein Problem ist, woran ich in der Klausuraufgabe festmache, welche Prioritäten die Operatoren haben bzw. ob sie links/rechtsassoziativ sind. Ich habe ja gegeben, wie die Konflikte gelöst wurden, und wie fang ich dann an, um die Prioritäten/Assoziativitäten herauszufinden?


Ich denke mal, dass hier die einfachen Mathematischen Prioritäten und Assoziativitäten gelten. Sprich : hat die Höchste und = die niedrigste Priorität. Wenn ich mich nicht irre, dann sind die auch alle Linksassoziativ.
"Der Klügere gibt nach! Eine traurige Wahrheit, sie begründet die Weltherrschaft der Dummheit." --Marie von Ebner-Eschenbach

Panoramix

Trainee

Posts: 115

Date of registration: Sep 12th 2008

7

Wednesday, September 15th 2010, 2:16pm

Ich denke mal, dass hier die einfachen Mathematischen Prioritäten und Assoziativitäten gelten

Wenn die Aufagebe lautet, man soll die Prioritäten/Assoziativitäten von Operatoren herausfinden, dann würde ich davon ausgehen, daß gerade nicht die allgemein üblichen Regeln gelten ... ;) (was hier natürlich auch der Fall ist ...)

Die Reduce-Regeln, die Anwendung finden könnten, zeigen ja an, was gerade oben auf dem Stack liegt. Beispiel: Im Fall von Zustand 6 ist dies r1, also steht oben auf dem Stack "E = E". Wenn nun als nächstes ein "=" wird gelesen, dann ist die Frage wie das entstehende Gebilde zu lesen ist: "(E = E) = E" (dies wäre der Fall, wenn "reduce" Anwedung findet) oder "E = (E = E)" (dies wäre der Fall, wenn "shift" Anwendung findet)? Da letzteres Zutrifft, ist das "=" in diesem Fall also rechtsassoziativ.

Weiteres Beispiel: Zustand 7, r2 sagt, daß "E + E" auf dem Stack steht. Nun wird ein ":" gelesen. Wieder die Frage: "(E + E) : E" oder "E + (E : E)"? Da nach r2 reduziert wird, trifft hier also der erste Fall zu, "+" hat eine höhere Priiorität als ":". Usw., usw.

Viele Grüße
Carsten

This post has been edited 2 times, last edit by "Panoramix" (Sep 15th 2010, 2:19pm)


Skuld

Erfahrener Schreiberling

  • "Skuld" is male
  • "Skuld" started this thread

Posts: 344

Date of registration: Oct 2nd 2007

Occupation: Student

8

Wednesday, September 15th 2010, 2:27pm

Danke Carsten, das hat mir geholfen :D
Hello, IT, have you tried turning it off and on again?

Wo schlafen Schmetterlinge eigentlich?

Skuld

Erfahrener Schreiberling

  • "Skuld" is male
  • "Skuld" started this thread

Posts: 344

Date of registration: Oct 2nd 2007

Occupation: Student

9

Thursday, September 16th 2010, 11:13am

Noch eine Frage zum entfernen linksrekursiver Produktionen (gleiche Klausur, s.o., Aufgabe 2b)

Folgende Produktion soll verändert werden:


Das wandel ich um in:



Kann man das dann nicht theoretisch vereinfachen zu


? Das wäre doch äquivalent, oder? Geht natürlich nur hier in dem Spezialfall, da B nur eine Produktion (abgesehen vom leeren Wort) hat, bei C würde es zum Beispiel nicht gehen.
Hello, IT, have you tried turning it off and on again?

Wo schlafen Schmetterlinge eigentlich?

This post has been edited 1 times, last edit by "Skuld" (Sep 16th 2010, 11:13am)


Arne

ThI

  • "Arne" is male

Posts: 1,798

Date of registration: Oct 7th 2002

Location: Hannover :)

Occupation: Lecturer ThI

10

Thursday, September 16th 2010, 11:37am

Ja sollte hinhauen die Vereinfachung. Allgemeiner würde ich dann eher an dem üblichen Verfahren festhalten, wo man den Zwischenschritt mit der Variablen B' macht.
"NP - The class of dashed hopes and idle dreams." Complexity Zoo

This post has been edited 3 times, last edit by "Arne" (Sep 16th 2010, 11:43am)


Skuld

Erfahrener Schreiberling

  • "Skuld" is male
  • "Skuld" started this thread

Posts: 344

Date of registration: Oct 2nd 2007

Occupation: Student

11

Thursday, September 16th 2010, 11:43am

Ah, wollte gerade widersprechen, da seh ich deinen Edit ;) Alles klar, danke!
Hello, IT, have you tried turning it off and on again?

Wo schlafen Schmetterlinge eigentlich?

Skuld

Erfahrener Schreiberling

  • "Skuld" is male
  • "Skuld" started this thread

Posts: 344

Date of registration: Oct 2nd 2007

Occupation: Student

12

Thursday, September 16th 2010, 3:10pm

Noch eine weitere Frage, dieses mal zu Typ-Inferenz. Ist das folgende Vorgehen so richtig? Ebenfalls die Aufgabe aus der verlinkten Klausur:

x :
factorial :
factorial(x) : - Schlussfolgerung:

x :
= : integer x integer boolean
0 : integer
x = 0 : boolean - Schlussfolgerung: = integer
1 : boolean
x :
factorial(x-1) : - Frage: Muss ich hier noch mal ausführlich 1 : integer, - : integer x integer = boolean usw. hinschreiben?
* : integer x integer integer - Schlussfolgerung: = integer

Also insgesamt: factorial = integer integer
Hello, IT, have you tried turning it off and on again?

Wo schlafen Schmetterlinge eigentlich?