FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Praktische Informatik

P2/P3 - Fragebox

P2/P3 - Fragebox 2006-02-10 14:05
Anonymer User
1. Frage zu Folie I-15 P3 Teil 1 :

Was macht die Grundoperation rest ?
Da steht nur:

rest: list =>list

Kann mich nicht mehr erinnern und nichts dazuvorstellen/finden..

Re: P2/P3 - Fragebox 2006-02-10 14:06
Viciarg
ohne die Folie je gesehen zu haben: Kann des sein, daß die die Liste abzüglich des ersten (der ersten n) Elements zurückgibt?

Re: P2/P3 - Fragebox 2006-02-10 14:13
Anonymer User
mmhh, wäre möglich - also wie ein first, nur das die Liste im Mittelpunkt steht..

Re: P2/P3 - Fragebox 2006-02-10 14:21
Anonymer User
Andere Frage, wann lohnt es sich abstrakte Klassen oder Interfaces zu referenzieren - kann mich an kein Beispiel erinnern.. - und warum ist das möglich, weil beide einen Typ definieren?

Re: P2/P3 - Fragebox 2006-02-10 14:22
Fred
und warum ist das möglich
Polymorphie, dynamisches Binden.

Re: P2/P3 - Fragebox 2006-02-10 14:42
Anonymer User
und warum ist das möglich
Polymorphie, dynamisches Binden.

Kenn ich noch - dank Polymorphie kann ich Objekte einer Unterklasse an einem Bezeichner vom Typ einer Oberklasse binden - doch was bringt mir das im Endeffekt ?

Oder wie schon gefragt das referenzieren von Interfaces - um noch mehr zu verbergen?

Re: P2/P3 - Fragebox 2006-02-10 16:08
Lazy
In einer der Gedächtnisprotokolle habe ich die Frage gefunden:
Erklären sie den Begriff Prozess und Datenabstraktion. Wie werden diese in Java realisiert?

Was Datenabstraktion ist weiss ich, und auch wie die Java umgesetzt wird. Aber was genau ist Prozessabstraktion?

Re: P2/P3 - Fragebox 2006-02-10 16:26
BangBang
Kenn ich noch - dank Polymorphie kann ich Objekte einer Unterklasse an einem Bezeichner vom Typ einer Oberklasse binden - doch was bringt mir das im Endeffekt ?
Eine Schnittstelle kann somit verschieden implementiert werden, ohne dass ein Klient das zu wissen braucht. Er benutzt nur den Typ der Oberklasse und braucht sich drum zu kümmern, ob oder wie die Operation in Subklassen implementiert ist.

Re: P2/P3 - Fragebox 2006-02-10 22:16
Anonymer User
In einer der Gedächtnisprotokolle habe ich die Frage gefunden:
Erklären sie den Begriff Prozess und Datenabstraktion. Wie werden diese in Java realisiert?

Was Datenabstraktion ist weiss ich, und auch wie die Java umgesetzt wird. Aber was genau ist Prozessabstraktion?


Umsetzung der Datenabstraktion in Java = Objekte an sich + Verwendung von abstrakten Klassen + Interfaces ?
oder soll ich da Referenzsemantik vs. Wertesemantik einbringen ?

Prozessabstraktion - Threads und Monitore..?

Re: P2/P3 - Fragebox 2006-02-10 22:22
Anonymer User
Oder Datenabstraktion KApselung der Implementation, Klient sieht nur Schnittstelle -> information hidding

Re: P2/P3 - Fragebox 2006-02-10 22:25
Anonymer User
Ist in I-55 P3 Teil 1 ein Fehler im dritten Beispiel zu der
Einordnungsreihenfolge von binären Suchbäumen oder hab ich was falsch verstanden:

715:


7
/
1
/ \
4 5

^
|_ ?

Re: P2/P3 - Fragebox 2006-02-10 23:10
Lazy
Ja, das ist ein Fehler. Die 4 gehört links an die 5.

Re: P2/P3 - Fragebox 2006-02-11 00:04
Anonymer User
Warum hat der Garbage-Collector Probleme mit zyklischen Verweisketten?

Re: P2/P3 - Fragebox 2006-02-11 00:09
UncleOwen
Je nach Implementation erkennt er dann nicht mehr, dass bestimmte Objekte nicht mehr gebraucht werden.

Der Garbage Collector von Java macht bei jedem Aufruf einen Tree Walk. Jedes dabei besuchte Objekt wird noch gebraucht, der Rest nicht.

Anders dagegen der von Python: Da wird bei jedem Objekt gezaehlt, wie viele Objekt noch darauf referenzieren. Wenn jetzt zwei Elemente zyklisch aufeinander referenzieren, wird der Referenzzaehler von keinem der beiden 0, auch wenn sonst niemand mehr darauf referenziert.

Re: P2/P3 - Fragebox 2006-02-11 13:03
Anonymer User
Je nach Implementation erkennt er dann nicht mehr, dass bestimmte Objekte nicht mehr gebraucht werden.

Der Garbage Collector von Java macht bei jedem Aufruf einen Tree Walk. Jedes dabei besuchte Objekt wird noch gebraucht, der Rest nicht.

Anders dagegen der von Python: Da wird bei jedem Objekt gezaehlt, wie viele Objekt noch darauf referenzieren. Wenn jetzt zwei Elemente zyklisch aufeinander referenzieren, wird der Referenzzaehler von keinem der beiden 0, auch wenn sonst niemand mehr darauf referenziert.

Versteh ich nicht ganz, wenn zwei Objekte zyklisch aufeinander verweisen aber keine anderen Objekte auf sie, müssten doch diese beiden Objekte beim Tree Walk gar nicht auftauchen, d.h also vom GC gelöscht werden - warum soll er dann Probleme damit haben?

Re: P2/P3 - Fragebox 2006-02-11 13:04
Anonymer User
Aber was genau ist Prozessabstraktion?

Würd ich auch gerne wissen [img]http://www.fb18.de/gfx/9.gif[/img]

Re: P2/P3 - Fragebox 2006-02-11 13:24
Anonymer User
+ Was muss man über dynamische Speicherverwaltung wissen? - im Skript hab ich nichts gefunden

+ Warum ist der ADT Stack eine Typfunktion - warum sind solche in Java nicht möglich?

Re: P2/P3 - Fragebox 2006-02-28 20:05
BangBang
Wie kann man eine "is-a"-Beziehung, also eine Generalisierung mit Vererbung, aus dem ERM im RM abbilden?

Laut Folie 64 P3-Skript ist dies ja zumindest eingeschränkt möglich…

Re: P2/P3 - Fragebox 2006-02-28 20:52
Slater
Tabelle Uni-Angesteller: Nummer, Name, Gehalt
Tabelle Professor: Nummer, Fach

sowas?

falls du genaue Begriffe suchst, dann schaue ins Skript,
z.B. im DIS-Skript Kapitel 4 Folie 21 ff
http://vsis-www.informatik.uni-hamburg.de/teaching/ss-05/dis/

Re: P2/P3 - Fragebox 2006-02-28 21:10
guiltyguy
Wie kann man eine "is-a"-Beziehung, also eine Generalisierung mit Vererbung, aus dem ERM im RM abbilden?

Laut Folie 64 P3-Skript ist dies ja zumindest eingeschränkt möglich…

So wie Slater das beschreibt + Sichten, eingeschränkt weil du es "mühsam" nachbildest und beim Löschen etc. immer mehreres berücksichtigen musst.

Re: P2/P3 - Fragebox 2006-02-28 22:57
BangBang
Danke, das DIS-Skript ist echt nützlich.

Re: P2/P3 - Fragebox 2006-03-04 15:58
Anonymer User
kleines verständnisproblem:
Aktivitäten heißen ja nebenläufig, wenn sie kausal unabhängig sind bzw. laut Skript, wenn sie u. A. in beliebiger Reihenfolge auf einem Prozessor ausgeführt werden können.
Später, wenn es um Synchronisation geht, wird jedoch davon gesprochen, dass nur nebenläufige Prozesse für uns interessant sind, die voneinander abhängen, wie wenn z. B. der eine ein Ergebnis des anderen benötigt.

Wenn ich die Definition von Nebenläufigkeit für Aktivitäten auf Prozesse übertrage, ergibt sich da für mich jedoch ein widerspruch. Denn 2 nebenläufige Prozesse lassen sich doch per Definition in beliebiger Reihenfolge ausführen.

Kann mir das mal jemand erläutern?

Re: P2/P3 - Fragebox 2006-03-04 18:45
Gunnar
kleines verständnisproblem:
Aktivitäten heißen ja nebenläufig, wenn sie kausal unabhängig sind bzw. laut Skript, wenn sie u. A. in beliebiger Reihenfolge auf einem Prozessor ausgeführt werden können.
Später, wenn es um Synchronisation geht, wird jedoch davon gesprochen, dass nur nebenläufige Prozesse für uns interessant sind, die voneinander abhängen, wie wenn z. B. der eine ein Ergebnis des anderen benötigt.

Wenn ich die Definition von Nebenläufigkeit für Aktivitäten auf Prozesse übertrage, ergibt sich da für mich jedoch ein widerspruch. Denn 2 nebenläufige Prozesse lassen sich doch per Definition in beliebiger Reihenfolge ausführen.

Kann mir das mal jemand erläutern?

Ich wuerde sagen, dass die Prozesse als sequenzielle Ausfuerung von Aktivitaeten aufgefasst werden. Nebenlaeufigkeit fuer Prozesse bedeutet dann einfach, dass die Prozesse gleichzeitig ausgefuehrt werden (wobei die Aktivitaeten atomar bleiben).


Re: P2/P3 - Fragebox 2006-03-07 02:38
Wagner Febell
Die Prozesse können schon in einer beliebiegen Reihenfolge ausgeführt werden, als ganzes betrachtet.
Es geht bei der Synchronisation aber darum die Prozesse gleichzeitig auszuführen. Dann kann es in den Atomaren Aktionen zu beeinträchtigungen untereinander kommen:

Wie zum Beispiel die Prozesse a & b die beide:
READ A
CHANGE A
WRITE A
machen.

Also wenn die Verzahnt ausgeführt werden kann sowas passieren:
a_READ A
b_READ A

a_CHANGE A
a_WRITE A

b_CHANGE A
b_WRITE A

bei diesem Beispiel wird dann nur die änderung von b übernommen, aber wenn man die Prozesse als ganzes betrachtet können sie in einer beliebigen Reihenfolge ausgeführt werden
[edit]Da beide änderungen an A vorgenommen werden und nicht nur die von b[/edit]

Re: P2/P3 - Fragebox 2006-03-07 13:11
Anonymer User
im skript steht dass die relationenalgebra mengen- und SQL tupelorientiert ist, aber was bedeutet das eigentlich?

Re: P2/P3 - Fragebox 2006-03-10 14:39
Anonymer User
weiß dazu keiner was? google sagt dazu leider auch nicht viel.

Re: P2/P3 - Fragebox 2006-03-11 13:01
Wagner Febell
im skript steht dass die relationenalgebra mengen- und SQL tupelorientiert ist, aber was bedeutet das eigentlich?

Mengenorientiert heißt das die Reihenfolge der Befehle egal ist, das dann trotzdem immer das gleiche Ergebnis rauskommt.
Also Projektion(Selektion) = Selektion(Porjektion)

Das aber bei SQL nicht gilt also es wichtig für das Ergebnis ist in welcher Reihenfolge sind.