Allgemeines
1. Vorgeschichte
2. Definition
Einteilung nach dem Funktionsumfang
1.Generation
2. Gereration
3. Gereration
4. Gereration
5. Gereration
Übersicht über die Programmiersprachen
Vorgeschichte
1642 Blaise Pascal konstruiert die erste Addiermaschine
1822 Charles Babbage konstruiert die erste Rechenmaschine
1835 Ada Lovelance schreibt die ersten Programme
1946 Der erste Computer namens ENIAC wird gebaut
1957 Erste Hochsprache: FORTRAN von IBM
1982 PCs kommen auf den Markt. Programmiersprachen: Basic und Assembler
________________________________________
Was ist eine Programmiersprache
Eine Programmiersprache besteht aus:
. Ein/Ausgabe Funktionen für den Datenaustausch mit der CPU und der Peripherie
. Arithmetische Funktionen zur Zahlenbearbeitung
. Logische Konstrollstrukturen zur Ablaufsteuerung wie z.B. Schleifen
. Funktionen zum verschieben von Daten im Speicher
. Befehle um Konstanten, Variablen und Strukturen zu verwenden.
1. Generation
Maschinensprache wurde ab ca. 1950 eingesetzt und ist jene Sprache die vom Computer direkt \"verstanden\" wird. Es handelt sich dabei um numerisch verschlüsselte Befehle, die als binäre Information in den Computer eingegeben werden.
Vorteile Nachteile
. bei Erstellung zeitkritischer Anwendungen . nicht portable
. pro Instruktion nur ein kleiner Verarbeitungsschritt
. unübersichtlich
. zeitaufwendig und daher teuer
2. Generation
Assembler sind nur eine Vereinfachung der Maschinensprache. Die binäre Befehle der Maschinensprache werden durch symbolische entprechende Operation ersetzt z.B. Add cd,dx ersetzt die Binärfolge, die die Operation und die beiden Register anspricht. Makroprozessoren sorgen dafür, dass eine Funktion, die aus mehreren Befehlen besteht, in diese zerlegt und für den Aufruf vorbereitet werden. Erstmal besteht die Möglichkeit Programme zu teilen, diese Teile getrennt zu übersetzen und später mittels Binder und Bindelader zusammen zufügen. Man kann hier die ersten Ansätze zur Modalisierung sehen.
Eine weitere Neuerung ist der Einsatz von symbolischen Adressen und Sprungmarken.
Vorteile Nachteile
. strukturierter als die Binärsprache
. Ansätze zur Modularität
. optimale Hardwareausnutzung . nach wie vor Hardware gebunden
. landwierig; Programmierung daher teuer
. unübersichtlich
3. Generation
Symbolische Zusammenfassung von Maschinensprachenbefehlen und von den Adressen der Datenfelder. Dadurch verkürzt sich der Sourcecode um bis zu 85%. Die Einführung von Wiederholungsanweisungen und Selektion sowie die Mehrfachauswahl usw. kennzeichnen diese Generation. Durch diese Einführung wurden die Programmiersprachen lesbar, struktriert und leicht erlernbar.
Vorteile Nachteile
. gut strukturierbar
. leicht lesbar
. leicht erlernbar
. Algorithmen können leichter ausgedrückt werden
. leicht zu warten
. systemunabhängig
. Sourcecodeverminderung um 85% . benötigt mehr Speicher
. benötigt mehr Maschinenzeit
4. Generation
Werden auch als deklarative Spachen bezeichnet. Sie sind in der Syntax den natürlichen Sprachen näher als andere Programmiersprachen. Die Befehlsstruktur oder Syntax gibt nicht vor wie etwas gemacht werden soll sondern was geschehen soll. Einige dieser GL-Sprachen bauen auf dem Relationenmodell auf und wurden daher für die Verwendung in Datenbanken konzipiert.
Vorteile Nachteile
. Oberflächen für die Entwicklung von Datenstrukturen
. Softwareunterstütze Dokumentation
. Datenbankunabhängig
. Sourcecodereduktion weitere 70-80% . teurere Hardware
. langsam bei der Ausführung
Vertreter dieser Generation sind: Informix, Progress, Clipper, DBase
5. Generation
Logische Sprachen
Bei logischen Sprachen werden bei der Programmierung Audrücke aus der Prädiaktenlogik verwendet.
Vertreter: Prolog
Funktionale Sprachen
Listen bzw. Funktionen orientierte Sprachen
Name Entwicklungs-jahr Beschreibung
Ada 1978-82 Vielseitige Sprache für Echtzeitanwendungen
Wurde vom amerikanischen Verteidigunsministerium entwickelt.
Algol 1958-60
1963-68 Algorithmic Language
Vorgängersprache von Pascal, BCPL und dadurch auch C. Algol ist problemorientiert und für technisch-wissenschaftliche Aufgaben geeignet.
Basic Beginners-all-purpose-Symbolic-Instruction-Code
Wurde am Dartmore-College (USA) für den Informatiounterricht entwickelt. Wurde von FORTRAN abgeleitet. In den 80er Jahren entwickelte Microsoft für fast alle gängigen Mikrocomputer BASIC-Compiler.
C 1974-78 Stammt von BCPL ab. Wurde zum schreiben des UNIX Betriebssystems entwickelt.
Problem: Hardwarenahe Programmteile mußten in Assembler geschrieben werden, da es in den meisten Hochsprachen keine maschinennahen Befehle gab. Außerdem waren die Assemblerteile maschinenabhängig.
BCPL war die erste Sprache, die dieses Problem löste und wurde an der Cambrige University entwickelt.
Viele Konzepte von BCPL wurden von Ken Thompson in seine Programmiersprache B übernommen, mit der er das Betriebssystem UNIX schreiben wollte. Kerningham und Ritchie entwickelten daraus C und veröffentlichten 1978 die Sprachdefinition in einem Buch namens \"The C Programming Language\"
Cobol Common Business Orientated Language.
Universalsprache für kaufmännische Anwendungen.
Die erste Programmiersprache, die nicht für mathematische/naturwissenschaftliche Zwecke entwickelt wurde. Cobol ist stark geregelt, damit er leicht protierbar ist. Wird vor allem auf Großrechnern eingesetzt.
Fortran 1954-57 Formular Translator
Erste kommerzielle Hochsprache; von IBM entwickelt.
Möglichkeit von unabhängig compilierbaren Unterprogrammen. Zugriff von anderen Programmiersprachen möglich. Allerdings fehlen Fortran brauchbare Steuerstrukturen und eine ordentliche Zeichenbearbeitung.
Lisp 1961 List Processing Language
Wurde am MIT entwickelt und wird vorallem im Bereich KI eingesetzt. Beruht auf der Verarbeitung von Listen.
Java Ist wie Smalltalk völlig objektorientiert. Das neue an Java ist allerdings seine Maschinenunabhängigkeit, die kein erneutes Kompilieren erfordert, da es in einer sog. virtuellen Maschine abläuft.
Logo In den 80er Jahren weit verbreitet um Kindern das Programmieren näherzubringen.
Modula-2 1977-80 Wurde von Nikolaus Wirth entwickelt.
Modualer Aufbau; Verbesserung von Pascal
Pascal 1968-71 Wurde von Nikolaus Wirth entwickelt.
Allgemein einsetzbar; gut strukturiert.
Prolog Programming in Logic.
Prolog ist eine Erklärungssprache. Es wird nicht beschrieben wie das Problem zu lösen ist (Pascal, C) sondern dem Computer wird beschrieben woraus das Problem besteht.
Beispiel:
Programm:
. Ein Objekt namens Baum wird definiert
. Ein Nadelbau und ein Laubbaum ist von Typ Baum
. Eine Fichte und eine Tanne sind von Typ Nadelbaum
. Eine Eiche und eine Platane sind vom Typ Laubbaum
Fragen an den Computer?
. Was ist eine Eiche?
. Ist eine Eiche ein Nadelbaum?
Smalltalk 1972 Eine völlig objektorientierte Sprache, wie z.B. auch Java.
4 |