Sie sind nicht angemeldet.

Skuld

Erfahrener Schreiberling

  • »Skuld« ist männlich
  • »Skuld« ist der Autor dieses Themas

Beiträge: 344

Registrierungsdatum: 02.10.2007

Beruf: Student

1

14.09.2010, 16:22

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?

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Skuld« (15.09.2010, 11:47)


2

14.09.2010, 16:52

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« ist männlich
  • »Skuld« ist der Autor dieses Themas

Beiträge: 344

Registrierungsdatum: 02.10.2007

Beruf: Student

3

15.09.2010, 11:46

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?

4

15.09.2010, 11:50

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« ist männlich
  • »Skuld« ist der Autor dieses Themas

Beiträge: 344

Registrierungsdatum: 02.10.2007

Beruf: Student

5

15.09.2010, 13:10

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« ist männlich

Beiträge: 422

Registrierungsdatum: 08.10.2004

6

15.09.2010, 13:43

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

Beiträge: 115

Registrierungsdatum: 12.09.2008

7

15.09.2010, 14:16

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

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Panoramix« (15.09.2010, 14:19)


Skuld

Erfahrener Schreiberling

  • »Skuld« ist männlich
  • »Skuld« ist der Autor dieses Themas

Beiträge: 344

Registrierungsdatum: 02.10.2007

Beruf: Student

8

15.09.2010, 14:27

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« ist männlich
  • »Skuld« ist der Autor dieses Themas

Beiträge: 344

Registrierungsdatum: 02.10.2007

Beruf: Student

9

16.09.2010, 11:13

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?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Skuld« (16.09.2010, 11:13)


Arne

ThI

  • »Arne« ist männlich

Beiträge: 1 798

Registrierungsdatum: 07.10.2002

Wohnort: Hannover :)

Beruf: Lecturer ThI

10

16.09.2010, 11:37

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

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Arne« (16.09.2010, 11:43)


Skuld

Erfahrener Schreiberling

  • »Skuld« ist männlich
  • »Skuld« ist der Autor dieses Themas

Beiträge: 344

Registrierungsdatum: 02.10.2007

Beruf: Student

11

16.09.2010, 11:43

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« ist männlich
  • »Skuld« ist der Autor dieses Themas

Beiträge: 344

Registrierungsdatum: 02.10.2007

Beruf: Student

12

16.09.2010, 15:10

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?