222
 
   
   
clemens clemens clemens
Referat

TitelAlgol 68 im Aspekt einer modernen Programmiersprache 
Anzahl Worte1110 
SpracheDeutsch 
ArtReferat 
Schlagworte 
Downloads+++++++ 
Bewertung++ 

Download Zip (6.1kB)
Download Pdf (82.9kB)


Auszug aus dem Referat (ohne Grafiken)

ALGOL 68 im Aspekt einer modernen Programmiersprache???


General-purpose-Programmiersprache:

Ein sehr wichtiges Kriterium ist die Möglichkeit, alle Algorithmen (=Lösungsverfahren) in einer Programmiersprache realisieren zu können.
Dies ist bei Algol 68 gegeben, da die Sprache bereits als general-purpose-Sprache entworfen wurde und auch keine besonderen Schwerpunkte auf spezielle Verfahren aufweist.


Modularisierung:

Die Sprache Algol 68 ist eine modulare Sprache, d. h. der Code wird in Modulen (=besteht aus einem oder mehreren Unterprogrammen, die ein zusammengehöriges Programmstück darstellen) gespeichert bzw. durch sie strukturiert.
Dies ist eine wichtige Eigenschaft einer modernen Programmiersprache, da sie die Wiederverwendung von Code und den Aufbau von Funktionsbibliotheken (=z.B.: conio.h; iostream.h; .....) ermöglicht.
In der ursprünglichen Sprachdefiniton waren die Module allerdings noch nicht enthalten, sondern sie wurden erst von verschiedenen Realisierern der Sprache implementiert (=umgesetzt; Vom Struktogramm in ein Programm umgewandelt).


Strukturierungsmöglichkeiten:

Algol 68 ist eine blockorientierte Sprache, und der Programmablauf kann durch Kontrollanweisungen wie for oder if gesteuert werden. Die Blockorientierung drückt sich unter anderem dadurch aus, daß Variablen und Konstanten in jedem Block deklariert werden können. Man kann sagen, daß alle Programmblöcke "gleichberechtigt" sind.


Objektorientierung:

Algol 68 enthält keine objektorientierten Elemente, da das objektorientierte Konzept erst später entwickelt wurde.
Dies ist natürlich ein großer Nachteil der Sprache, da gerade objektorientierte Konzepte bei den modernen Programmiertechniken sehr wichtig sind. Dies betrifft gerade größere Programme für die Erweiterbarkeit und Wiederverwendung notwendig sind.


Datenstrukturen und Typen:

In Algol 68 wurden alle für moderne Programme wichtige Datentypen (=int; float; char; .....) und -Strukturen definiert, wie Pointer (=Zeigervariablen), Arrays (=typdef) und Records (=Felder). Diese wichtige Voraussetzung für eine moderne Programmiertechnik wurde in der Sprache erstmals realisiert.



Zusammenfassende Beurteilung:

Man kann zusammenfassend sagen, daß Algol 68 viele Konzepte moderner Programmiersprachen beinhaltet, ja manche sogar erstmals eingeführt hat (Zeiger, Typsystem). Weiters war noch beispielhaft, daß die Sprache die erste war, die formal definiert wurde. Außerdem stellt sie einen wichtigen Meilenstein in der Geschichte der Programmiersprachen dar.
Andererseits werden gerade die Anforderungen der modernen Softwaretechnik, wie beispielsweise OOP noch nicht unterstützt. Es sind dies vor allem die Anforderungen, die unter das Stichwort "programming in the large" fallen.
Das ist wohl der Hauptgrund warum die Sprache in ihrer ursprünglichen Definition in der Zukunft nicht mehr im industriellen Einsatz verwendet werden wird.

Es gibt zur Zeit allerdings einen neu entwickelten Compiler für OS/2. Bei dessen Implementierung wurden einige Aspekte der Sprache angepasst, um den modernen Anforderungen zu genügen.


















Vergleich Oberon - Algol 68



Gemeinsamkeiten:

Die beiden Programmiersprachen Oberon und Algol 68 sind sich von der Syntax (=Grammatik eines Programms) her ziemlich ähnlich, was auch daran liegt, daß Algol 68 ein Vorläufer von Oberon war.

Die Struktur der Programme der beiden Programmiersprachen ist sehr ähnlich, vor allem werden die selben Anweisungen für die Ablaufkontrolle in den Programmen unterstützt.

Die Definition eigener Typen wie z.B. Recordtypen ist in beiden Sprachen möglich.


Unterschiede:

Zu den Unterschieden zwischen den Sprachen ist zu sagen, daß viele der Unterschiede ihren Grund in der Entwicklung der Informatik in der Zeit zwischen dem Entwurf von Algol 68 und von Oberon haben.

Der objektorientierte Aufbau wird in Algol 68 noch nicht unterstützt, da sich das Konzept erst nach dem Entwurf von Algol 68 durchgesetzt hatte.

Viele Unterschiede haben ihren Grund auch darin, das Algol 68 einige Sprachkonstruktionen enthält, die in Oberon vereinfacht wurden. Ein Beispiel dafür ist die Schleifenkonstruktion:
for...from...by...while...do...

Ein weiterer wichtiger Grund für Unterschiede ist die strenge Realisierung der Orthogonalität in Algol 68, die ein Grundprinzip im Design war, wohingegen dieser Gesichtspunkt beim Entwurf von Oberon nicht mit dieser Konsequenz verfolgt wurde, da die Entwerfer von Oberon die Sprachkonstrukte eher nach ihrer Relevanz in der Praxis auswählten.
Ein gutes Beispiel dafür ist die Deklaration von Pointern (=Zeigervariable, Adresse), die in Oberon nur auf Recordtypen (=typedef) und Arrays (=Felder) anwendbar sind, wohingegen man in Algol 68 Pointer auch auf elementare Datentypen deklarieren kann.
In Algol 68 ist dies sogar notwendig, da Variablen als "konstante Pointer" auf ihren Typ deklariert werden.

In Algol 68 existiert das Konzept der flexiblen Arrays, d.h. die Länge des Arrays passt sich der Länge seines Inhalts an. Deshalb ist es auch nicht notwendig, bei der Deklaration eines Arrays die Arraygrenzen explizit anzugeben. Man kann daher jedes Array als open array deklarieren.
Eine weitere Besonderheit im Bezug auf Arrays ist es, daß man Teile eines Arrays unter einem anderen Namen noch einmal deklarieren kann. Dieses Konzept erinnert an die unions in C.

Bezüglich der Operatoren, gibt es noch den Unterschied, daß in Algol 68 die Operatoren überladbar sind, d.h man kann sich seine eigenen Operatoren definieren.

Ein weitere Unterschied ist die Generizität der E/A-Prozeduren in Algol 68.




































Vergleich C - Algol 68



Gemeinsamkeiten:


Es gibt zwischen den beiden Sprachen einige Gemeinsamkeiten, die ihre Ursache auch unter anderem darin haben, daß Algol 68 auch die Entwicklung von C beeinflußt hat.

Die beiden Sprachen C und Algol 68 sind beide blockorientierte general purpose Sprachen. Dies drückt sich vor allem darin aus, daß Variablen und Konstanten in jedem Block zu deklarieren sind.

Eine Gemeinsamkeit ist die Generizität der E/A-Prozeduren.

Die Addressierung eines Speicherplatzes über mehrere Variablen wird in C durch Unions unterstützt und in Algol 68 durch Namensgleichheit bei der Variablendeklaration.


Unterschiede:


C ist im Gegensatz zu Algol 68 eine maschinenorientierte Sprache, das heißt, daß man in C beim Programmieren weniger Reglementierungen unterworfen ist, aber auch leichter Fehler auftreten können. C ist daher eher für die systemnahe Programmierung geeignet, wohingegen Algol 68 vom Konzept her plattformunabhängig ist.
Ein Grund für diesen Unterschied ist, daß Algol 68 im Gegensatz zu C sauber definiert wurde.

Die Arraybehandlung ist in Algol 68 flexibler, da sich die Arraylänge an den Inhalt anpasst.











Vergleich C – PASCAL – ALGOL



C und Pascal sind in etwa zur gleichen Zeit entstanden. Sie galten zu ihrer Entstehungszeit als ALGOL-Sprachen, da Algol die Entwicklung beider Sprachen beeinflusste.

ALGOL-Sprachen sind erkennbar am Block-Konzept:

ALGOL, Pascal C
BEGIN {
anweisungen anweisungen
END }

In ALGOL-Sprachen kann dort, wo eine einfache Anweisung stehen darf, auch ein Block stehen, zum Beispiel:

ALGOL, Pascal C
IF ( ... ) THEN if ( ... )
anweisung; anweisung;
oder
IF ( ... ) THEN if ( ... )
block; block;

In ALGOL-68 wie in C kann ein Block - in der angegebenen Reihenfolge - aus Vereinbarungen und ausführbaren Anweisungen bestehen.
In Pascal kann ein Block nur ausführbaren Anweisungen umfassen.

C wie Pascal bieten ähnliche Möglichkeiten zum strukturierten Programmieren.
Einerseits unterstützt C umfangreicher das strukturierte Programmieren, z.B. beim verallgemeinerten Zyklus, andererseits bietet C aber auch umfangreichere Möglichkeiten zum unstrukturierten Programmieren an.

C wie Pascal übernehmen die Deklarationspflicht für Variablen aus ALGOL-68.
C läßt bei der Deklarationspflicht jedoch gewisse Lücken, zum Beispiel bei der impliziten Typannahme bei Funktionen.

C wie Pascal besitzen Ansätze zum modernen Datentyp-Konzept, die es in ALGOL-68 noch nicht gab.


HAUPTQUELLEN: www.ssw.uni-linz.ac.at
www.informatik.uni-halle.de

Ende des Auszuges


Hier hast Du die Möglichkeit dieses Referat zubewerten
und somit die Gesamtbewertung mitzubestimmen!