|
1.3. Entwicklung und Einteilung der Programmiersprachen
Da man noch nicht in natürlicher Sprache
mit einem Rechner kommunizieren kann, wurden im Laufe der Jahre
verschiedene Programmiersprachen entwickelt.
Der Unterschied zwischen gesprochenen Sprachen und
Programmiersprachen liegt darin, dass die Worte einer
Programmiersprache nur eine Bedeutung zulassen, während der
Sinngehalt mancher Worte der Umgangssprache erst aus dem Kontext
heraus deutlich werden kann. Ein Rechner benötigt aber stets
eindeutig formulierte Anweisungen zur Bearbeitung.
Wie viele Programmiersprachen und
Programmiersysteme es heute weltweit gibt, lässt sich nicht
beantworten. Es können einige hundert sein, da viele Sprachen nur
für spezielle Aufgaben und Einsatzgebiete konzipiert wurden. Die
bekanntesten Programmiersprachen lassen sich in Auszügen in folgende Hauptgruppen unterteilen:
1. Generation: Maschinensprachen |
Die ersten EDV-Anlagen (Ende der 40er Jahre) ließen sich nur maschinennah programmieren. Der Programmcode musste bitweise in den Speicher des Rechners geschrieben werden. Der Vorteil der maschinennahen Programmierung liegt bis heute darin, dass diese Art von Programm direkt von einem Computer ausgeführt werden kann. Allerdings sind sehr genaue Rechnerkenntnisse erforderlich, da alle Anweisungen in Form von elementaren Befehlen sehr kleinschrittig beschrieben werden müssen. Problematisch gestaltet sich die Fehlersuche, wenn ein Programm überhaupt nicht läuft oder falsche Ergebnisse liefert.
Beispiel: | 11001011
00110101 |
11100011
10111101 |
|
2.
Generation: Assemblersprachen |
Die Assemblersprachen, deren Befehlsvorrat
speziell für jeden Rechnertyp zugeschnitten ist, verwenden
anstelle des Binärcodes leichter verständliche Symbole,
Mnemonics genannt. Ein Assemblerprogramm ist auf einem
Computer nicht mehr direkt ablauffähig, sondern muss erst
in ein entsprechendes Maschinenprogramm übersetzt werden.
Ein Programm, das dies automatisch durchführt, bezeichnet
man als Assembler, den Übersetzungsvorgang als
assemblieren. Der Nachteil von Assemblerprogrammen besteht
darin, dass sie auf eine ganz bestimmte Hardware
zugeschnitten sind und sich nur schwer auf andere
Computertypen übertragen lassen. Bei größeren Problemlösungen
werden die Programme sehr umfangreich und damit
wartungsunfreundlich. Daher werden Assemblersprachen hauptsächlich
nur noch da, wo Programme und Programmsysteme schnell
reagieren müssen, und für Teile des Betriebssystems
eingesetzt.
Beispiel: |
ADD FELD_2 FELD_3
MOV BX, OFFSET FELD_3 |
|
3.
Generation: Prozedurale Programmiersprachen |
Diese Sprachengeneration, der die überwiegende
Mehrheit der heute gebräuchlichen Programmiersprachen angehört,
ist unabhängig von einem Computersystem. Lediglich der Übersetzer
(Interpreter oder Compiler) muss an das jeweilige System
angepasst sein und den entsprechenden Maschinencode
erzeugen. Prozedurale Sprachen besitzen einen speziellen,
der menschlichen Sprache angenäherten Befehlssatz, um
Probleme aus einem bestimmten Anwendungsbereich zu lösen.
Sie lehnen sich somit an die Denkweise des Programmierers
an. Auch ohne fundamentierte Programmierkenntnisse lassen
sich diese Programme leicht nachvollziehen. Die Bezeichnung
"prozedural" kennzeichnet den modularen Aufbau der
entsprechenden Programme in Prozeduren oder Funktionen.
Beispiel: |
Write('Fahrstrecke='); Readln(kilometer);
Write('Benzin='); Readln(liter);
verbrauch := liter/kilometer * 100;
Writeln('Sie verbrauchten auf 100 km ',verbrauch);
if verbrauch > 7 then writeln "Verbrauch
zu hoch!"; |
|
4.
Generation: Nichtprozedurale Programmiersprachen |
Bei nichtprozeduralen Programmiersprachen
wird nicht mehr festgelegt, wie ein Problem gelöst
wird, sondern der Programmierer beschreibt lediglich, was
das Programm leisten soll. Danach werden diese Angaben von
dem Programmiersystem in ein Programm umgesetzt. Der Vorteil
dieser Sprachen besteht darin, dass für diese Art der
Programmierung keine umfangreiche Programmierausbildung
notwendig ist. Nichtprozedurale Programmiersprachen werden
z.B. für Datenbankabfragen oder Tabellenkalkulationen
eingesetzt.
In Delphi verwendet man z.B. die visuellen
Komponenten, um eine Benutzerschnittstelle zu erstellen.
Beispiel: |
select KUNDE from TABLE_1 where ALTER
> 18
create ERWACHSENE |
|
5.
Generation: Programmiersprachen der künstlichen Intelligenz |
Die Programmierung der künstlichen
Intelligenz (KI) dient der fortgeschrittenen Programmierung.
Es wird versucht, die natürliche Intelligenz des Menschen
(z.B. seine Lernfähigkeit) durch entsprechend konstruierte
Computer nachzuvollziehen. Hierbei fließt beispielsweise
auch die natürliche Sprache in die Programmierung ein.
KI-Programme werden überwiegend zu Forschungszwecken
eingesetzt und beschreiben Schlussfolgerungen aus
Forschungsergebnissen. Erfolgreich werden derartige Systeme
zur Spracherkennung eingesetzt.
Beispiel: Berechnung auswerten.
|
Einordnung von Delphi:
- die von Delphi verwendete Programmiersprache Object
Pascal ordnet man in der 3.
Generation ein.
- die visuellen und
SQL-Komponenten gehören der 4.
Generation an.
Aufgrund dieser Einordnung wird Delphi auch als eine hybride
Programmiersprache bezeichnet.
Die Kombination der Funktionalität zweier Generationen
von Programmiersprachen mit visuellen
Programmiertechniken führen zu einer hohen
Bedienerfreundlichkeit bei der Programmerstellung
gepaart mit einer enormen Mächtigkeit der erzeugbaren
Programme.
|
|
|
|