Hui, hier hat sich eine Menge bewegt.
Zitat von
alzaimar:
Zitat von
Horst_59:
Mir ist nicht klar, wer bei einem Prozeduraufruf kommuniziert?
Wer? Die aufrufende Instanz. Sonst ist ja keiner da. [..] bei der skalaren, alteingesessenen prozeduralen Sichtweise [ist] immer der Aufrufende der, der kommuniziert. und zwar mit dem Aufgerufenen.
ich würde dem auch nicht zustimmen, alzaimar. Bei einer prozeduralen Betrachtung gibt es im engeren Sinne keine Kommunikation zwischen Beteiligten. Es gibt nur Logik, die der Reihenfolge nach abgearbeitet wird und sich (in Single-Threaded-Anwendungen) jeder Zeit an genau einem Ausführungsschritt befindet, sowie Daten, die von dieser Logik manipuliert werden. Streng genommen gibt es für ein prozedurales Programm (anders als zB bei funktionaler Programmierung) keine andere Möglichkeit, sinnvoll zu agieren, als Daten zu verändern (Seiteneffekt).
Bildlich könnte man sich prozedurales Vorgehen vielleicht mit Hilfe eines Gärtners vorstellen (aktueller Ausführungspunkt), der Wege durch einen Park nimmt (Ausführungsplan), um Pflanzen zu beschneiden (verändern von Daten). Weder die Pflanzen kommunizieren miteinander und (abgesehen von etwaigen
Selbstgesprächen) Kommuniziert der Gärtner nicht auf einer lingualen Ebene mit den Gewächsen (bitte jetzt kein metakommunikatives Axiom: "Man kann nicht nicht kommunizieren"). Hat der Gärtner seinen Gang beendet und schlussendlich jeden verwinkelten Abschnitt des Parks über die vielen Verzweigungen genommen, kann er nach getaner Arbeit auf sein Werk blicken.
In einer Multi-Threaded-Anwendung würden mehrere Gärtner gleichartige Arbeiten erledigen, eine
direkte kommunikation ist allerdings auch hier (prozedural) nicht möglich. Über Hilfsmittel wie "an jedem Weg, den ich bearbeitet habe, hinterlasse ich ein Zeichen" oder "Gänge, die schon bearbeitet wurden, betrete ich nicht" bzw. "es gibt einen Arbeitsplan, der Aussschließt, dass wir uns in die Quere kommen" werden die Arbeiten der gleichzeitig Agierenden abgestimmt.
Bei einem objektorientierten System wird sowohl vom konkreten Empfänger einer Nachricht als auch von der Art der Durchführung einer Operation/Nachricht abstrahiert. Ein denkbares Szenario könnte dann so aussehen:
Gärtner an
Park "mach Dich schön".
Der Park wiederum könnte sich nun an all seine Bestandteile (Pflanzen) wenden und sie ihrerseits bitten, sich in Schale zu werfen. Er hat keine exakte Vorstellung, welche Elemente konkret im Laufe der Zeit in ihm gewachsen oder sonstwie entstanden sind, verlässt sich darauf, dass jedes Element im Park weiß, wie es
sich "schön machen" kann. Wenn später auch Skulpturen aufgestellt werden sollten, braucht weder der Park noch der Gärtner sein Verhalten ändern. Beide sagen nur "mach Dich schön". Erhält eine Skulptur direkt oder indirekt die Aufforderung, könnte sie einfach eine Gärtnerei anrufen