Home - Artikel

Hinweis: Der Inhalt dieses Artikels ist nicht für PocketPCs optimiert. Sollten grobe Darstellungsprobleme auftreten, betrachten Sie ihn bitte auf Ihrem PC.

Programmiersprachen

Was ist eine Programmiersprache und wie kann man diese einteilen?

Autor: T msdf
Datum: 30-01-2005, 23:35:53
Referenzen: Stahlknecht, Hasenkamp: Wirtschaftsinformatik
Schwierigkeit: none
Ansichten: 1617
Rating-Punkte: 7 (6x bewertet)


Einleitung

Eine Programmiersprache ist ein Sprache zum Abfassen von Computerprogrammen. Unter Sprache versteht man, wie bei natürlichen Sprachen auch, den Aufbau aus Semantik und Syntax.

  • die Syntax: Die Syntax einer Programmiersprache legt fest, wie die Äußerlichkeiten einer Sprache aussehen, welches Vokabular erlaubt ist, welche erlaubten Begriffe es gibt und wie die Programmstruktur aussieht.
  • die Semantik: Die Semantik beinhaltet die Bedeutung der Begriffe und Anweisungen. Damit wird für Programmierer und Computer verbindlich festgelegt, was zum Beispiel bei der Ausführung einer bestimmten Anweisung geschieht.
Ein Programm ist ein in einer bestimmten Programmiersprache verfasster Lösungsweg (Algorithmus) für ein Problem.

Es werden mehrere Generationen von Programmiersprachen unterschieden:
  1. Generation: Maschinensprachen
  2. Generation: maschinenorientierte Sprachen
  3. Generation: höhere oder auch prozedurale Programmiersprachen
  4. Generation: nicht prozedurale Programmiersprachen
Weiterhin ist eine Unterscheidung dieser in objektorientierte, wissensbasierte oder Scriptsprachen möglich. Manchmal werden objektorientierte Sprachen auch als 4. Generation und wissensbasierte als 5. Gerneration bezeichnet. Da diese Zuordnung aufgrund von Überschneidungen nur schwer durchzuführen ist, wird immer wieder nach anderen Klassifikationen gesucht, bei der Vielfalt der Programmiersprachen ist dies allerdings kaum möglich. Daher wird hier in dieser Generationseinteilung weiterverfahren.

1. Generation: Maschinensprache

Dies ist die interne Sprache eines bestimmten Rechnertyps. Die Befehlscodes und Speicheradressen sind dual, oktal oder hexidezimal formuliert. Für die Programmierung von Anwendungen ist diese Art der Programmiersprache aufgrund der Fehleranfälligkeit kaum geeignet, wenn aber möglich.

2. Generation: Maschinenorientierte Programmiersprachen oder auch Assembler

Auch diese Sprache ist Rechnertyp abhängig. Sie bietet allerdings Erleichterungen für den Programmierer.
Einige Befehle werden durch gedächtnisstüzende Begriffe, wie zum Beispiel ADD; SUB; MUL; DIV; abgekürzt. Feste Befehlsfolgen werden zu Makrobefehlen zusammengefasst (Reservieren von Speicherplatz, etc)

3.Generation: Höhere Programmiersprachen

Bei höheren Programmiersprachen treten an die Stelle von Befehlen von Maschinen und Assemblersprachen Anweisungen oder Folgen von Anweisungen (Algorithmen). Diese haben einen wesentlich größeren Funktionsumfang.
Höhere Programmiersprachen haben aus diesem Grunde einen geringen Änderungsaufwand und sind auch leichter zu erlernen. Sie sind weiterhin sehr rechnerunabhängig, nutzen deshalb aber auch die Hardware schlechter aus und haben dadurch eine längere Programmlaufzeit.
Zu Beginn der höheren Programmiersprachen wurde diese für bestimmte Anwendungsgebiete (kaufmännisch, technisch...) verwendet und sind deshalb auch unter dem Begriff der problemorientierten Sprachen bekannt.

4.Generation: Nichtprozedurale Programmiersprachen

Die ersten drei Programmiersprachengenerationen werden als prozedurale Sprachen bezeichnet, da die Befehle und Anweisungen in einer durch den Programmierer vorgegebenen Reihenfolge (d.h. in einer Prozedur) ausgeführt werden. Sprachen der vierten Generation arbeiten nicht mehr nach dem System "wie" etwas durchgeführt wird, sondern "was" durchgeführt wird.

Beispiel

Prozedurale Sprache
  1. Nimm Buch
  2. Prüfe, ob Titel = "YXZ"
  3. Falls ja, notiere Autor
  4. Prüfe, ob letztes Buch
  5. Falls nein, zurück zu 1.
  6. Falls ja, Ende
Nicht prozedurale Sprache:
  • Suche alle Bücher, für die gilt: Titel = "YXZ"
Die bekannteste Sprache dieser Generation ist SQL.

5. Generation: Objektorientierte Sprachen

Diese beruhen auf einem vollkommen anderem Prinzip. Hier werden die Daten zusammen mit ihren Methoden und Funktionen zusammengefasst. Zwischen diesen gekapselten "Objekten" wird dann mittels Botschaften kommuniziert.

OO-Sprachen werden nochmals unterteilt in:
  • reine unmittelbar für die objektorientierte Programmierung konzipierte Sprachen (so zum Beispiel JAVA)
  • Hybridsprachen, die durch Erweiterungen konventioneller Sprachen entstanden sind (C++)
6. Generation: Wissensbasierte Sprachen

Als wissensbasierte oder KI-Sprachen bezeichnet man Sprachen zur Entwicklung von wissensbasierten Systemen (z.B. Expertensysteme). Hierbei wird durch bestehendes Wissen und eintretende Ereignisse versucht neue Schlüsse zu ziehen. Zwei Sprachen spielen hier eine große Rolle : LISP (List Processing Language) und PROLOG (Programming in Logic).

7. Scriptsprachen

Scriptsprachen bauen auf bereits vorhandenen, in beliebigen Programmiersprachen erstellten Programmkomponenten auf. Sie werden deshalb auch als Systemintegrationssprachen charakterisiert.

[back to top]