Programmiersprache/Entwicklung der Programmiersprachen: Unterschied zwischen den Versionen
main>Classow |
main>Classow |
||
Zeile 30: | Zeile 30: | ||
====Die ersten höheren Programmiersprachen==== | ====Die ersten höheren Programmiersprachen==== | ||
Konrad Zuse entwickelte 1945/1946 die erste höhere Programmiersprache, die er „Plankalkül“ nannte. Plankalkül umfasst Zuweisungen, Funktionsaufrufe, bedingte Anweisungen, Schleifen, Gleitkommaarithmetik, Felder und zusammengesetzte Datentypen. Erstmals wurde Plankalkül 1972 komplett veröffentlicht. Praktisch verwendet wurde Plankalkül nicht aber es hat historische Bedeutung. Denn es hat die nachfolgenden Programmiersprachen sehr beeinflusst. Die nächste Programmiersprache, die entwickelt wurde und heute in neueren Versionen immer noch benutzt wird, ist Fortran. Fortran steht für „FORmula TRANslator“. Es wurde 1954 von John W. Backus und einem Team aus Entwicklern und Programmierern entworfen. Heutzutage ist es eine objektorientierte Programmiersprache, die insbesondere für numerische Berechnungen genutzt wird. Eine Sprache, die heute auch noch verbreitet ist, ist LISP. LISP ist eine Abkürzung für „LISt Processor“. LISP wurde 1959 von John McCarthy et al. entworfen. Sie entstand am MIT (Massachusetts Institute of Technology) in Anlehnung an das Lambda-Kalkül. LISP beeinflusste eine Reihe von Sprachen, u.a. Smalltalk, Python und Haskell. | |||
Eine wichtige Programmiersprache, die den weiteren Verlauf beeinflusst hat, ist Algol 58 bzw. Algol 60. Algol kürzt „ALGOrithmic Language“ ab. Algol 58 wurde 1958 von einem internationalen Komitee während einer Tagungsreihe entworfen, die Algorithmen dienen sollte. Die Programmiersprache wurde noch einmal überarbeitet mit dem Revised Report für Algol 60. Algol schrieb gegen den Trend der Zeit Laufzeitprüfungen vor, die erst später gewürdigt und nachgeahmt wurden. | |||
Das „Hallo Welt“-Programm in Algol 60: | |||
{{Kasten blass|<tt>'COMMENT' HALLO, WELT PROGRAMM IN ALGOL 60;<br>'BEGIN'<br>OUTSTRING(2, '('HALLO, WELT')');<br>'END'</tt> }} | |||
1959 wurde die Urform der Backus-Naur-Form (BNF) dargestellt. Die BNF ist eine kompakte, formale Metasprache zur Darstellung kontextfreier Grammatiken. Fast alle Programmiersprachen, die nach der BNF entwickelt wurden, benutzten sie um ihre Programmiersprache darzustellen. Es gab das erste Mal die Möglichkeit, Gültigkeitsbereiche zu definieren. Es gibt viele Varianten der BNF. Die bekanntesten Varianten sind die erweiterte Backus-Naur-Form (EBNF) und die angereicherte Backus-Naur-Form (ABNF). IBM entwickelte in den 60er Jahren PL/I. PL/I steht für „Programming Language One“. In PL/I wurde versucht, die Sprachen Algol, Fortran und Cobol zu vereinigen. PL/I wurde v.a. auf IBM-Großrechnern eingesetzt. IBM musste vor PL/I für jeden Computer andere Sprachen verwenden. Deswegen war es ganz wichtig für IBM, dass PL/I entwickelt wurde. Es gibt aber auch Versionen für Windows und UNIX. | |||
Einen ganz anderen Grund hingegen hatten die Entwickler von BASIC. BASIC steht für „Beginner’s All-purpose Symbolic Instruction Code“. Es wurde 1964 von John C. Kemeny and Thomas E. Kurtz am Dartmouth College entworfen. Es wurde konzipiert, um den Studierenden den Einstieg in die Programmierung mit Algol und Fortran zu erleichtern. Es wurde also auch mit dem Ziel entworfen, leicht erlernen zu sein. | |||
====Objektorientierung==== | ====Objektorientierung==== | ||
====Programmiersprachen in der Welt von heute==== | ====Programmiersprachen in der Welt von heute==== |
Version vom 14. Mai 2014, 09:58 Uhr
Entwicklung der Programmiersprachen
Was findet ihr auf dieser Seite?
- Die Anfänge des Programmierens
- Die ersten Computer und ihre Instruktionen
- Die ersten höheren Programmiersprachen
- Objektorientierung
- Programmiersprachen in der Welt von heute
Die Anfänge des Programmierens
In der Zeit bevor es Computer gab, konnten die Menschen nicht anders als jeden Handgriff und jeden Arbeitsschritt selber zu machen. Um repetitive Aufgaben nicht immer wiederholen zu müssen, erfand man schon in der industriellen Revolution Maschinen. Diese Maschinen nahmen den Menschen viele Arbeiten vor allem im handwerklichen Bereich ab. So gab es z.B. auch Webstühle, die schon ein einfaches Muster in den Stoff weben konnten. Joseph-Marie Jacquard war ein französischer Erfinder, der versuchte die Musterwebtechnik zu mechanisieren, sodass diese nicht mehr durch Menschen auszuführen sei. 1804 erfand Jacquard letztendlich den ersten programmierbaren Webstuhl. Dieser Webstuhl konnte nun auch kompliziertere Muster durch seine Programmierung weben. Alle Informationen inklusive der Programmierung, die der Webstuhl brauchte, waren auf Lochkarten geschrieben, welche man in den Webstuhl steckte.
Aber nicht nur im handwerklichen Bereich schritt die Programmierung voran. Ein paar Jahre später heiratete Ada Lovelace William King. Dieser unterstützte, förderte sie und ermöglichte ihr Zugang zu Wissen in Form von Bibliotheken, die sie vorher nie hatte. Denn Frauen hatten im 19. Jahrhundert noch kein Zutritt zu jeglicher Form von Bildung. Lovelace’s Ehemann ging in Bibliotheken und schrieb für sie Artikel ab. Da Lovelace und ihr Mann in der Royal Society verkehrten, dauerte es nicht lang bis sie von dem Plan von Charles Babbage erfuhr. Babbage’s Plan war es, eine Rechenmaschine zu bauen, die heute als Vorläufer des Computers gilt. Lovelace war fasziniert und übersetzte einen Artikel über Babbage’s „Analytical Machine“. Diese Maschine wurde 1837 von Babbage veröffentlicht und war eine Differenzmaschine für die Lösung polynominaler Funktionen. Danach fing sie an, an einem Algorithmus zu arbeiten, mit dessen Hilfe diese Maschine die Bernoulli-Zahlen hätte berechnen können. Ada Lovelace schaffte es in den Jahren 1842 – 1845 den Algorithmus zur Berechnung der Bernoulli-Zahlen zu entwickeln. Obwohl Babbage’s Pläne für die „Analytical Machine“ fehlschlugen, haben wir heutzutage doch ein ziemlich genaues Bild für diese Maschine. Sie wäre doch Lochkarten wie der Webstuhl viele Jahre zuvor programmiert worden. Die Programmiersprache auf diesen Lochkarten ähnelt den bis heute verwendeten Assemblersprachen sehr. (Bild)
Die ersten Computer und ihre Instruktionen
1946 entwickelten John Mauchly und John Presper Eckert den ersten ENIAC Computer. Auf dem ENIAC waren nur Hardwareverbindungen möglich.
Der Computer wurde programmiert, in dem die Verbindungen mit Leitungen geschlossen werden. Jedes Mal, wenn die Programmierung für den Computer geändert werden sollte, musste der Programmierer gucken, wo welche Verbindungen stecken und sie umstecken. In den Speicher dieses Computers konnten nur Daten eingegeben werden. Erst nachdem der Mathematiker von Neumann eine neue Architektur beschrieben hatte, mussten keine neuen Leitungen mehr gelegt werden sondern es konnte ein Programm im Speicher gespeichert werden.
1936 entwickelten Alonzo Church und Stephen Kleene das Lambda-Kalkül (λ-Kalkül). Das Lambda-Kalkül ist eine universelle abstrakte Programmiersprache. Es lässt sich mit dem Lambda-Kalkül alles ausdrücken, was sich mit einer modernen Programmiersprache ausdrücken lässt. Es ist außerdem die formale Grundlage für viele Programmiersprachen, wie z.B. Scheme und Lisp. In den häufig verwendeten und gut ausgebauten Programmiersprachen ist er meistens zusätzlich als Modul oder Bibliothek verwendbar.
Die ersten höheren Programmiersprachen
Konrad Zuse entwickelte 1945/1946 die erste höhere Programmiersprache, die er „Plankalkül“ nannte. Plankalkül umfasst Zuweisungen, Funktionsaufrufe, bedingte Anweisungen, Schleifen, Gleitkommaarithmetik, Felder und zusammengesetzte Datentypen. Erstmals wurde Plankalkül 1972 komplett veröffentlicht. Praktisch verwendet wurde Plankalkül nicht aber es hat historische Bedeutung. Denn es hat die nachfolgenden Programmiersprachen sehr beeinflusst. Die nächste Programmiersprache, die entwickelt wurde und heute in neueren Versionen immer noch benutzt wird, ist Fortran. Fortran steht für „FORmula TRANslator“. Es wurde 1954 von John W. Backus und einem Team aus Entwicklern und Programmierern entworfen. Heutzutage ist es eine objektorientierte Programmiersprache, die insbesondere für numerische Berechnungen genutzt wird. Eine Sprache, die heute auch noch verbreitet ist, ist LISP. LISP ist eine Abkürzung für „LISt Processor“. LISP wurde 1959 von John McCarthy et al. entworfen. Sie entstand am MIT (Massachusetts Institute of Technology) in Anlehnung an das Lambda-Kalkül. LISP beeinflusste eine Reihe von Sprachen, u.a. Smalltalk, Python und Haskell. Eine wichtige Programmiersprache, die den weiteren Verlauf beeinflusst hat, ist Algol 58 bzw. Algol 60. Algol kürzt „ALGOrithmic Language“ ab. Algol 58 wurde 1958 von einem internationalen Komitee während einer Tagungsreihe entworfen, die Algorithmen dienen sollte. Die Programmiersprache wurde noch einmal überarbeitet mit dem Revised Report für Algol 60. Algol schrieb gegen den Trend der Zeit Laufzeitprüfungen vor, die erst später gewürdigt und nachgeahmt wurden. Das „Hallo Welt“-Programm in Algol 60:
1959 wurde die Urform der Backus-Naur-Form (BNF) dargestellt. Die BNF ist eine kompakte, formale Metasprache zur Darstellung kontextfreier Grammatiken. Fast alle Programmiersprachen, die nach der BNF entwickelt wurden, benutzten sie um ihre Programmiersprache darzustellen. Es gab das erste Mal die Möglichkeit, Gültigkeitsbereiche zu definieren. Es gibt viele Varianten der BNF. Die bekanntesten Varianten sind die erweiterte Backus-Naur-Form (EBNF) und die angereicherte Backus-Naur-Form (ABNF). IBM entwickelte in den 60er Jahren PL/I. PL/I steht für „Programming Language One“. In PL/I wurde versucht, die Sprachen Algol, Fortran und Cobol zu vereinigen. PL/I wurde v.a. auf IBM-Großrechnern eingesetzt. IBM musste vor PL/I für jeden Computer andere Sprachen verwenden. Deswegen war es ganz wichtig für IBM, dass PL/I entwickelt wurde. Es gibt aber auch Versionen für Windows und UNIX. Einen ganz anderen Grund hingegen hatten die Entwickler von BASIC. BASIC steht für „Beginner’s All-purpose Symbolic Instruction Code“. Es wurde 1964 von John C. Kemeny and Thomas E. Kurtz am Dartmouth College entworfen. Es wurde konzipiert, um den Studierenden den Einstieg in die Programmierung mit Algol und Fortran zu erleichtern. Es wurde also auch mit dem Ziel entworfen, leicht erlernen zu sein.