Was ist eine objektorientierte Programmiersprache, bzw. was ist eine funktionale?

... komplette Frage anzeigen

1 Antwort

Was ist denn für Dich der Unterschied?

Antwort bewerten Vielen Dank für Deine Bewertung

grtgrt 26.02.2017, 15:59

Die modernste - und am meisten durchdachte - aller objektorientierten Sprachen ist Java.

Aber auch C++ oder C# sind objektorientierte Sprachen.

Funktionale Programmiersprachen orientieren sich am Beispiel von LISP und finden sich genannt auf Seite https://de.wikipedia.org/wiki/Kategorie:Funktionale_Programmiersprache

In funktionalen Programmiersprachen ist jedes Rechenergebnis Funktionswert einer Funktion, die ihrerseits als geschachtelter Aufruf beliebig vieler andere Funktionen definiert ist.

Direktes Gegenstück zu funktionalen Programmiersprachen sind prozedurale Programmiersprachen: Sprachen also, bei deren Nutzung der Programmierer Schritt für Schritt vorzugeben hat, wie ein gewünschtes Rechenergebnis zustande kommt. 

Mit anderen Worten:

  • Beim Gebrauch einer prozeduralen Programmiersprache (sie kann, muss aber nicht objektorientiert sein), definiert der Programmierer das Rechenergebnisse durch eine Folge von Rechenschritten.
  • Beim Gebrauch einer funktionalen Programmiersprache aber definiert er das Rechenergebnis als Ergebnis eines geschachtelten Aufrufs von Funktionen, von denen er nicht wissen muss, durch welche Folge von Prozeduraufrufen sie zu ihrem Rechenergebnis kommen.

Mit anderen Worten:

Funktionale Programmierung ist abstrakter als prozedurale.

In funktionalen Programmiersprachen geschriebener Code wird durch einen Compiler oder Interpreter auf in einer prozeduralen Programmiersprache geschriebenen Code abgebildet.

Objektorientierte Programmierung aber ist nur eine ganz spezielle Form prozeduraler Programmierung: Sie dient dem Zweck, Code so redundanzfrei wie nur irgend möglich zu machen.

2
W00dp3ckr 26.02.2017, 16:05
@grtgrt

Sehr schön. Ich wollte den Fragensteller dazu bringen, sich nicht von einem wie Dir die Frage beantworten zu lassen, sondern selbst mal drüber nachzudenken.

1
grtgrt 26.02.2017, 16:15
@W00dp3ckr

Naja: Ich habe mich halt in die Lage des Fragestellers versetzt, dem es darum ging eine aussagekräftige Antwort auf seine Frage zu erhalten. 

Mein Standpunkt: Man frägt, um Antworten zu bekommen (und nicht, um gesagt zu bekommen man solle sich die Antwort selbst ausdenken).

Dein eher pädagogisch orientierter Standpunkt macht nur Sinne, wenn man genau weiß, welchen Wissensstand der Fragende schon haben sollte. Hier auf gutefrage.net allerdings kann man dieses Wissen ja wohl nicht voraussetzen. 

1
W00dp3ckr 26.02.2017, 16:21
@grtgrt

Bei Dingen, die Hausaufgaben sind, frage ich ganz gern nach einem ersten Wurf. Anhand des ersten Wurfs, erfährt man dann nämlich die relevanten Teile des Wissensstandes. Und dann kann man an den entsprechenden Stellen Wissen hinzufügen ohne alles doppelt zu tippen.

1
weberdo1 26.02.2017, 17:09
@grtgrt

Danke für deine Antwort! Hat mir wirklich geholfen, jetzt werde ich es gut erklären können. Und lass dich nicht von Leuten wie W00dp3ckr beeinflussen, diese Website ist da, um Fragen zu beantworten, so wie du es gemacht hast! Nochmals Danke.

1

Was möchtest Du wissen?