Historische Entwicklung und Klassierung von Programmiersprachen


Seminar Paper, 1999

12 Pages, Grade: 1.5


Excerpt


Inhaltsverzeichnis

1. ALLGEMEINE INFORMATIONEN
1.1. Definition der Programmiersprache
1.2. Einführung
1.3. Schematischer Ablauf eines Programmiervorgangs

2. HISTORISCHE ENTWICKLUNG DER PROGRAMMIERSPRACHEN
2.1. Einführung
2.2. Die erste Generation: Maschinensprachen
2.3. Die zweite Generation: maschinenorientierte Sprachen
2.4. Die dritte Generation: höhere Programmiersprachen
2.4.1. Einführung
2.4.2. ADA
2.4.3. ALGOL
2.4.4. BASIC
2.4.5. C
2.4.6. COBOL
2.4.7. FORTRAN
2.4.8. PASCAL
2.5. Die vierte Generation: nicht-prozedurale Sprachen

3. KLASSIERUNG DER PROGRAMMIERSPRACHEN
3.1. Einführung
3.2. Die Unterscheidung in objektorientierte und wissensbasierte Sprachen
3.3. Die Unterscheidung in imperative, funktionale und prädikative Sprachen

4. LITERATURVERZEICHNIS

1. Allgemeine Informationen

1.1. Definition der Programmiersprache

Eine Programmiersprache ist eine zum Formulieren von Verarbeitungsvorschriften für Computer geschaffene Sprache. Sie ist damit eine Schnittstelle zwischen dem EDV-System und dem Anwender.[1]

1.2. Einführung

Der Computer versteht im Grunde nur eine Sprache, die aus einer Folge von Nullen und Einsen besteht, die Maschinensprache (vgl. Kap. 2.2). Das ist darauf zurückzu- führen, dass er beim heutigen Stand der Technik nur unterscheidet zwischen Strom und Nicht-Strom (bzw. an/aus, offen/geschlossen, magnetisiert/nicht magnetisiert). Es ergibt sich also eine kleinstmögliche Informationseinheit (0 oder 1), die Bit (binary digit) genannt wird.

Zur Bildung von Zahlen, Buchstaben und Sonderzeichen benötigt man mehrere Bits. Diesen verschiedenen Bitkombinationen werden dann die einzelnen Zeichen zu- geordnet, man macht eine sogenannte Codierung der Zeichen (z.B. ASCII: American Standard Code for Information Interchange). Die ASCII-Codes belegen 8 Bits, es er- gibt sich eine neue Informationseinheit, genannt ein Byte.

Für einen Benutzer eines Computers wäre es nun sehr umständlich, seine Probleme in der Maschinensprache einzugeben. Deshalb erfand man Abkürzungen - die As- semblersprachen (vgl. Kap. 2.3.) - für eine leichtere Problemformulierung. Durch ein Übersetzungsprogramm (Assemblierer) werden diese Abkürzungen wieder in die Maschinensprache umgesetzt.

Um die Formulierung der Anwenderprobleme noch einfacher zu machen, schuf man später höhere Programmiersprachen (vgl. Kap. 2.4.), die meistens auf ein spezielles Gebiet zugeschnitten sind. Auch für diese Programmiersprachen braucht der Rech- ner ein entsprechendes Übersetzungsprogramm.

Ein wesentlicher Unterschied zwischen Programmiersprachen besteht darin, ob ein erstelltes Programm compiliert oder nur interpretiert wird. Im ersten Fall erhält man nach dem Compilieren den direkt ablaufbaren Maschinencode. Das Programm wird erst in einem weiteren Schritt gestartet. Im zweiten Fall wird jede Programmzeile ein- zeln zuerst übersetzt und dann sogleich ausgeführt. Die Interpreter-Variante ist des- wegen wohl praktisch, aber langsamer als die Compiler-Variante.

Es gibt mehrere hundert in der Literatur dokumentierte Programmiersprachen.[2]

1.3. Schematischer Ablauf eines Programmiervorgangs

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1: Schematischer Ablauf eines Programmiervorgangs

2. Historische Entwicklung der Programmiersprachen

2.1. Einführung

Die nachfolgende Gliederung der Programmiersprachen in Generationen stellt einer- seits eine mögliche Klassierung dar, weil sich jede Generation qualitativ und struktu- rell von der vorhergehenden abhebt. Andererseits zeigt der Ablauf in Generationen auch zumeist die historische Entwicklung auf. Vertieft wird darauf in den einzelnen Abschnitten eingegangen.

Dass die gleichzeitige Klassierung nach historischen und qualitativen Merkmalen be- rechtigt ist, zeigt sich auch daran, dass durch die fortschreitende historische Entwick- lung niemals eine Generation durch eine nachfolgende obsolet wurde. Je nach An- wendungsgebiet variiert der Gebrauch.

2.2. Die erste Generation: Maschinensprachen

Wie bereits in Kapitel 1.2. erwähnt, versteht jeder Computer unmittelbar nur eine be- stimmte, für sein System geschaffene Sprache. Diese Sprache ist binär verschlüsselt und besteht demnach nur aus Folgen von "1" und "0". Nur in dieser Form ausged- rückt können Algorithmen vom Rechner direkt umgesetzt werden.

Beispiel: Der Befehl "Addieren" für den Prozessor INTEL 80486 lautet: "10000110".[3]

Der immense Vorteil der Maschinensprache ist ihre Schnelligkeit in der Verarbeitung und der geringe Speicherbedarf. Jedoch überwiegen die Nachteile offensichtlich:

- Der Maschinencode ist für einen Menschen praktisch unverständlich, äusserst mühsam und zeitaufwendig zu programmieren und einmal geschriebene Prog- ramme können faktisch nicht mehr ausgebaut werden.
- Aus diesen Gründen entstehen hohe Fehlerquoten.
- Programme in Maschinensprache können nur auf einem System angewendet werden.

Dennoch erfolgte bis Mitte der fünfziger Jahre die Programmierung der Computer be- inahe ausschliesslich in Maschinensprache. Heute ist dies dank sehr effektiver Com- piler (vgl. Kap. 1.2.) zum Glück nicht mehr erforderlich.[4]

2.3. Die zweite Generation: maschinenorientierte Sprachen

Die maschinenorientierten Sprachen oder Assembler sind eine direkte Weiterent- wicklung der Maschinensprachen. Statt in Binärcodes werden hier einzelne Befehle in verständlichen Worten ausgedrückt.

Beispiel: Der in Kapitel 2.2. genannte Befehl "Addieren" lautet in Assembler "ADD M".[5]

Dennoch bestehen auch bei der Assemblersprache die Nachteile der maschinen- orientierten Sprachen (Unübersichtlichkeit, Fehlerquote, Systemgebundenheit etc.), lediglich die Verständlichkeit für den Menschen ist besser. Assembler werden heute punktuell in Programmen eingesetzt, wo ihr grosser Vorteil, die hohe Geschwindig- keit, benötigt wird. Auch der Speicherbedarf bleibt gering.

2.4. Die dritte Generation: höhere Programmiersprachen

2.4.1. Einführung

Man bezeichnet die höheren Programmiersprachen auch als problemorientierte Sprachen. Höhere Programmiersprachen bieten ein hervorragendes Ausdrucksmittel für den Programmierer. Befehle sind meistens englische Wörter oder Ableitungen davon, so dass die Anweisungen an die Maschine auch für Menschen relativ einfach nachvoll- ziehbar sind.

Beispiele: PERFORM UNTIL auswahl = "0" (COBOL), PRINT "Hello" (BASIC)

Die dritte Generation der Programmiersprachen ist erstmals systemunabhängig, ob- wohl es einzelne Dialekte gibt, die versuchen, die Kapazität eines Rechnermodells besser auszunutzen.

[...]


[1] vgl. Becker, Mario, Haberfellner, Reinhard, Liebetrau, Georg, EDV-Wissen für Anwender, Zürich, 1997, S. 43

[2] Weber, Wolfgang J., Hainer, Karl, Programmiersprachen für Mikrocomputer, Stuttgart, 1990

[3] Becker, Mario, Haberfellner Reinhard, Liebetrau, Georg, EDV-Wissen für Anwender, Zürich, 1997, S. 44

[4] vgl. Breuer, Hans, dtv-Atlas zur Informatik, München, 1995, S. 127

[5] Becker, Mario, Haberfellner Reinhard, Liebetrau, Georg, EDV-Wissen für Anwender, Zürich, 1997, S. 44

Excerpt out of 12 pages

Details

Title
Historische Entwicklung und Klassierung von Programmiersprachen
College
Zurich University of Applied Sciences  (Departement Wirtschaft und Management)
Course
Informatik
Grade
1.5
Author
Year
1999
Pages
12
Catalog Number
V123664
ISBN (eBook)
9783640311903
ISBN (Book)
9783640315925
File size
456 KB
Language
German
Keywords
Programmiersprachen, Geschichte, Entwicklung, Klassierung, Übersicht, Überblick, Generation
Quote paper
WP Markus Pfeiler (Author), 1999, Historische Entwicklung und Klassierung von Programmiersprachen, Munich, GRIN Verlag, https://www.grin.com/document/123664

Comments

  • No comments yet.
Look inside the ebook
Title: Historische Entwicklung und Klassierung von Programmiersprachen



Upload papers

Your term paper / thesis:

- Publication as eBook and book
- High royalties for the sales
- Completely free - with ISBN
- It only takes five minutes
- Every paper finds readers

Publish now - it's free