Einzelnen Beitrag anzeigen
Ungelesen 02.01.11, 18:22   #9
Banghard
Newbie
 
Registriert seit: Jun 2009
Beiträge: 74
Bedankt: 26
Banghard ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von m3zz0w1x Beitrag anzeigen
1. Natürlich ist Java eine imperative Programmiersprache. Was soll es denn bitte sonst sein?
Du hattest gesagt: "OOP-Sprachen wie Java haben so etwas wie "Befehle" nicht". Und das stimmt nicht. Wie oft schon hatte ich so Situationen wie jetzt, wo jemand etwas schreibt, dann korrigiert man die Aussage und dann heißt es "Was soll es denn bitte sonst sein?". Ja, das widerlegt einfach deine Aussage, die du vorher gemacht hast. Sonst soll das gar nix sein. Wenn eine Sprache imperativ ist, dann baut sie auf "Befehle", besser gesagt Anweisungen. Von daher ist ""OOP-Sprachen wie Java haben so etwas wie "Befehle" nicht" falsch, sorry.

Zitat:
Zitat von m3zz0w1x Beitrag anzeigen
2. Den Gegensatz zu imperativen Programmiersprachen stellen DEKLARATIVE Programmiersprachen dar!
> Imperativ bedeutet, dass man den Ablauf der Anweisungen selbst bestimmt!
> Deklarativ bedeutet, dass man das Problem vorgibt und logisch erläutert. Die deklarative Programmiersprache benutzt dann Methoden, um eine Lösung ohne Vorgabe des Ablaufes (Algorithmus) zu finden! Solche Sprachen haben keinen einzigen echten Befehl!
Das musst du mir nicht erklären. Aber nicht nur deklarative Programmierung ist ein Gegensatz zur imperativen Programmierung. Wie ich schon gesagt habe, sind auch viele funktionale Programmiersprachen nicht imperativ. Ich sage extra nicht "alle", da viele Sprachen einfach Multiparadigmensprachen sind. Imperative Programmiersprachen sind "verwandt" mit Turing-Maschinen, rein funktionale Programmiersprachen hängen dagegen mit dem Lamda-Kalkül zusammen. Das heißt dort besteht ein Programm nur aus Funktionsdefinition, Funktionsanwendung und Funktionskomposition. Nicht aus Anweisungen/Befehlen.

Zitat:
Zitat von m3zz0w1x Beitrag anzeigen
3. In Java werden ALLE Anweisungen (Befehle) von Objekten zur Verfügung gestellt werden, die man endlos erweitern und neu erstellen kann. Der "Befehlssatz" ist damit unendlich. (Syntaktische "Befehle", wie z.B. for-Schleifen, Operator-Anweisungen etc. mal ausgenommen).
Ich kann mich nicht so ganz mit deinem Vokabular anfreunden. Unter Befehlssatz versteht man allgemein eine Menge von Maschinenbefehlen für Prozessoren. Natürlich weiß ich was du damit aussagen willst. Wenn ich die genannten syntaktischen Anweisungen aneinander hänge, beispielsweise in Java in einer Methode eines Objektes oder in C in einer Prozedur, habe ich dadurch aber nicht meinen "Anweisungssatz" in der Sprache erweitert, sondern diese "nur" strukturell zusammengefasst.

Ich kann dann diese "Struktur" dann wie einen einzelnen Befehl aufrufen, aber es sollte klar sein, dass das intern nur ein wie auch immer gearteter Sprungbefehl ist, die eigentlichen Sprachanweisungen ausgeführt werden und dann ein Rücksprung stattfindet. Nur weil mir eine Sprache die strukturelle Zusammenfassung von Anweisungen erlaubt, habe ich dadurch nicht einen unendlichen "Befehlssatz". Hau so Dinger bloß nicht bei deinem Consulting raus.

Ich zähle auch die umfangreiche Klassenbibliothek bzw. API von Java oder beispielsweise C# nicht zur SPRACHE Java bzw. C#.
Banghard ist offline   Mit Zitat antworten