Start | Familie | Info | Kontakt

Informatik - Skript zum Unterricht

(II) Software

 

 

2. Programmiersprachen

2.1 Definition

Um einen Computer zu programmieren, muss ein gemeinsamer Code gefunden werden, auf dessen Basis man mit der Maschine kommuniziert. Je mehr man sich der Sprache des Rechners nähert, um so schwieriger und umständlicher wird im Allgemeinen die Kommunikation.

Eine Programmiersprache ist eine formale Sprache, die es ermöglicht, einen Algorithmus (d.h. eine Folge von Anweisungen zur Lösung eines Problems) in eine für den Computer verständlichen Form zu formulieren.

Seit der Geburtsstunde der Computer haben sich die Programmiersprachen stark entwickelt, von vollständig maschinenabhängigen Sprachen bis zu maschinenunabhängigen Sprachen wie z.B. Java.

Pfeil nach oben

 

2.2 Generationen der Programmiersprachen

Zur Programmierung werden 5 verschiedene Generationen von Programmiersprachen unterschieden:

 

Maschinen- bzw. Assemblersprachen haben folgende Eigenschaften:

Höhere Programmiersprachen haben folgende Eigenschaften:

 

Eine weiter Klassifizierung ergibt sich durch unterschiedliche Paradigmen in den Programmiersprachen:

Imperatives Paradigma (Prozedurales Paradigma):
Ein Programm besteht aus einer Folge von Anweisungen zur Manipulation von Daten, welche das gewünschte Ergebnis liefern (die meisten traditionellen Programmiersprachen).

Deklaratives Paradigma:
Der Programmierer muss beschreiben "Was ist zu lösen?" und nicht "Wie ist das Problem zu lösen?". Das System selber implementiert einen allgemeinen Problemlöser, der die vom Benutzer formulierten Aufgaben löst.

Funktionales Paradigma:
Funktionen mit Input und Output bilden die primitiven Programmierkonstrukte; ein Programm besteht demnach aus einer Menge von verschachtelten Funktionen.

Objektorientiertes Paradigma:
Im Unterschied zum imperativen Paradigma, sind in objekt-orientierten Programmiersprachen Daten aktive Objekte mit Methoden zur Manipulation der Daten. Ein Programm besteht aus einer Menge von Objekten, welche gegenseitig Nachrichten austauschen (Methoden aufrufen).

Pfeil nach oben

 

2.3 Grundversionen der Programmiersprachen

Es werden drei Grundversionen unterscheiden:

Assembler Es hat sich für das Übersetzungsprogramm von Mnemonics (Assemblersprache) zurück in Maschinensprache (leider) ebenfalls das Fachwort Assembler eingebürgert.
Interpreter Dies sind Übersetzer, die nach dem Start eines Quellprogramms jeweils eine einzige Anweisung bzw. Deklaration in Maschinenbefehle übersetzen, die Syntax prüfen und sofort ausführen. Erst dann wird die nächste Anweisung bearbeitet (Beispiel: QBasic).
Vorteil: Man kann ein Programm bis zu Fehlerstelle im Quelltext testen.
Nachteil: Da immer nur eine Zeile übersetzt wird, liegt das Programm nie komplett übersetzt vor. Man muss bei jedem Start den Quelltext neu übersetzen, was sehr lange dauert. Der Interpreter muss dazu ständig im Speicher verbleiben.
Compiler Ein Compiler (zu Deutsch: Übersetzer) ist ein Programm, das in einer Sprache A (Quellsprache) dargestellte Quelltexte in äquivalente Programme in einer anderen Sprache B (Zielsprache) übersetzt. Die Quellsprache ist im Allgemeinen eine höhere Programmiersprache. Die Zielsprache ist in den meisten Fällen eine Maschinensprache, deren Befehle direkt vom Computer ausgeführt werden können.
Die Zielmaschine eines Compilers muss nicht unbedingt die Maschinensprache eines Computers sein, sondern kann auch eine abstrakte/virtuelle Maschine sein. Das kompilierte Programm wird dann von einem so genannten Interpreter für diese abstrakte Maschine interpretiert.
Compiler übersetzen ein fehlerfreies Quelltextprogramm komplett auf einmal in die Zielsprache und können das Ergebnis auf Datenträger oder in den RAM als selbstständig lauffähiges Maschinenspracheprogramm ablegen (Beispiel: Turbo-Pascal).
Vorteil: Sie brauchen das Programm nur ein einziges mal zu übersetzen; anschließend läuft es als ausführbare Datei (EXE, exequte) - in Maschinensprache - sehr schnell ab.
Nachteil: Ein Maschinenspracheprogramm ist nicht mehr ohne weiteres zu verändern. Außerdem ? und das ist das Problem ? übersetzt ein Compiler Ihr Programm nur dann, wenn es fertig durchdacht ist und - von Logikfehlern abgesehen - fehlerfrei vorliegt. Testen von Programmteilen ist für Ungeübte fast nicht möglich.

Pfeil nach oben

 

2.4 Historische Entwicklung der Programmiersprachen

Jahr Sprache
1954 FORTRAN(1921 entwickelt)
1958 ALGOL
1959 COBOL, ALGOL 60
1960 BASIC
1962 APL, LISP
1964 SNOBOL, PL/1
1967 SIMULA
1968 ALGOL 68 Pascal, PL/M (PL/1 für Mikrocomputer)
1972 C, PROLOG
1976 Smalltalk, SQL
1977 MODULA
1978 ADA
1979 VAL, ELAN
1982 C++
1983 Turbo Pascal
1986 Oberon
1990 JAVA
1991 Visual Basic, Python
1992 Perl
1995 Delphi
 2000 C#, .net

Pfeil nach oben

 

256MB RAM (Laptop)


__ eberhardt | KÖNIG ___