Wie entwickelt sich eine Programmiersprache

Amr0d

Erfahrenes Mitglied
Hallo,

mich würde mal interessieren, wie man eine Programmiersprache entwickelt. Ich meine wenn man ein Programm schreiben möchte dann fällt einem ja nicht einfach plötzlich ein das er C++ nutzen soll, sondern der Befehl den der User eingibt muss ja auch von irgendjemand vorher erfunden worden sein das er auch das bewirkt was er soll. Eine Sprache ist ja nicht auf einmal einfach so da.

Gruß

Philipp
 
Amr0d hat gesagt.:
Eine Sprache ist ja nicht auf einmal einfach so da.

Nicht? ;)
Naja, ich denke, dass halt viele viele Assembler-Anweisungen zu lustigen, aber praktischen Befehlen gruppiert werden und somit die Programmiersprache heranwaechst.
Der Compiler setzt den Sourecode dann in ein Binaerformat, z.B. ELF, um welches dann von der CPU ausgefuehrt werden kann.
 
Ich habe noch nie was mit Programmieren zu tun gehabt und würde deshalb um eine etwas vereinfachte Sprachweise zurückzuführen. Die Frage kam mir lediglich gerade spontan in den Sinn, ich bin also kein Programmierer :) habt verständnis ;-)
 
Programmiersprachen entwickeln sich aufgrund geänderter Anforderrungen.
Aber Programmiersprachen entwickeln dann ein Eigenleben.

Ich will mal das Beispiel Java nehmen. Java wurde eigentlich entwickelt
um Kühlschränke, SetTop Boxen, Microwellen und was weiss ich noch
programmierbar zu machen.

Sprich eigentlich nicht grundsätzlich um ein neues Office, Grafikprogramm,
oder gar Server Anwendungen zu schreiben.

Es wurde also eine Sprache benötigt die auf diesen verschiedenen Geräten
eingesetzt werden kann, deshalb wurde das Prinzip der virtuellen Mashiene
für Java eingesetzt.
C++ erschien aufgrund seiner Möglichkeiten sich selber in den Fuss zu schiessen
für solche kleinen Geräte unpassend.

Diese ehemaligen Anforderrungen existieren noch immer( mann siehe Java auf
den Handys, PDAs, SmartCards usw) und sind mittlerweile ein wichtiger
Einsatzbereich von Java.

Aber im laufe der Jahre haben sich andere Einsatzgebiete gezeigt, die bei der
Entwicklung der Sprache nicht angedacht war. So war das Internet noch nicht
so wichtig wie jetzt als Java entwicklet wurde, aber das Internet puschte
auch Java.
So war früher es absolut üblich Applets einzusetzen (was heute gemieden wird,
und was gut so ist). Gleichzeit wurde Java auf dem Server immer wichtiger, und
ist mittlerweile Einsatzgebiet nr 1 (siehe Ebay).

Das Einsatzgebiet Java auf dem Desktop ist aufgrund trägem Swing gescheitert. Aber
ein neuer Anlauf (siehe IBM Lotus Workplace u. ähnlichem) kann diesmal sehr
wohl gelingen, nicht zuletzt dank Eclipse, SWT & JFace und den bemühungen
von Sun Swing performant zu bekommen.

Die Sprache ansich (Java ist Sprache und Technologie) entwickelt sich anhand
von Paradigmen und anhand der Technologie die sie bedienen muss.
So erlaubte die VM das sie sich darauf verlassen konnte das alle Objecte von
Object abgeleitet sind, und die Sprache hat um diese Eigenschaft "herumentwickelt".
Auch dinge wie das Dynamische Laden von Klassen und innere Klassen
wurde in die Sprache integriert weil die VM es erlaubte.

Sprachen ähneln sich weil sie alle mehr oder weniger Dinge von vergangene Sprachen
abschauen.
Weniger: Java schaute sich die Syntax bei C++ ab, ohne C++ zu gleichen. Die Technik ist Smalltalk sehr ähnlich.
Mehr: Microsofts C# ist in vielem syntaktisch fast gleich mit Java, und hat auch die Technik auf ziemlich gleiche Art und weise nachgebildet.

So kommt es das .net / C# auch ein Nachfahre (wenn nicht direkt) von Smalltalk ist.
Smalltalk hat wiederrum eigenschaften von Ada usw.

Programmiersprachen_2_large.gif
 
Hallo!

Ich will mal das Beispiel Java nehmen. Java wurde eigentlich entwickelt
um Kühlschränke, SetTop Boxen, Microwellen und was weiss ich noch
programmierbar zu machen.
Stichwort Star 7 ;-)

Es wurde also eine Sprache benötigt die auf diesen verschiedenen Geräten
eingesetzt werden kann, deshalb wurde das Prinzip der virtuellen Mashiene
für Java eingesetzt.
Es gibt auch noch andere Gründe für VM's -> Sicherheit durch Abschottung der Laufzeit vom unterliegenden System (keine Direkten Speicherzugriffe etc.). Bei einem Fehler wird in der Regel das unterliegende System nicht beeinflusst.

C++ erschien aufgrund seiner Möglichkeiten sich selber in den Fuss zu schiessen
für solche kleinen Geräte unpassend.
hoffen wir mal das das mit Java nicht auch noch passiert...

So war früher es absolut üblich Applets einzusetzen (was heute gemieden wird,
und was gut so ist). Gleichzeit wurde Java auf dem Server immer wichtiger, und
ist mittlerweile Einsatzgebiet nr 1 (siehe Ebay).
Was heute IMHO (Gott sei dank) vermieden wird ist Applets dort einzusetzen wo sie keinen Nutzen bringen. Anwendungen wie etwa Routenplaner (Map 24) sind meiner Meinung in Form eines Applets prima gelöst.

Aber im laufe der Jahre haben sich andere Einsatzgebiete gezeigt, die bei der
Entwicklung der Sprache nicht angedacht war. So war das Internet noch nicht
so wichtig wie jetzt als Java entwicklet wurde, aber das Internet puschte
auch Java.
Genauer gesagt waren es die Applets die damals die Leute so extrem faszinierten.

Das Einsatzgebiet Java auf dem Desktop ist aufgrund trägem Swing gescheitert. Aber
ein neuer Anlauf (siehe IBM Lotus Workplace u. ähnlichem) kann diesmal sehr
wohl gelingen, nicht zuletzt dank Eclipse, SWT & JFace und den bemühungen
von Sun Swing performant zu bekommen.
Ich denke man könnte heute sogar schon sagen, dass Swing bei richtiger Anwendung SWT/JFace ebenbürdig wenn nicht sogar überlegen ist. Gerade mit Java 5 hat Swing wiedermal einiges an Performance gewonnen. SWT/JFace kommt mir nach "intensiverer" Auseinandersetzung doch noch recht träge vor....

Schick an SWT ist jedoch das man damit ganz easy Zugriff auf WIndows Interner bekommt... das betont jedoch die Krux an der Sache. SWT ist nun mal mehr oder weniger für Windows Systeme optimiert.

Auch dinge wie das Dynamische Laden von Klassen und innere Klassen
wurde in die Sprache integriert weil die VM es erlaubte.
Innere Klassen waren in der Version 1.0 nicht von der JVM unterstützt... Das kam erst mit Java 1.1 somit wurde nicht nur die Sprache erweitert sondern auch die JVM.
http://java.sun.com/docs/books/jls/first_edition/html/1.1Update.html

Gruß Tom
 

Neue Beiträge

Zurück