ebook img

Einführung in ALGOL 60: Skriptum für Hörer aller Fachrichtungen ab 1. Semester PDF

119 Pages·1972·2 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Einführung in ALGOL 60: Skriptum für Hörer aller Fachrichtungen ab 1. Semester

Harry Feldmann Einflihrung in ALGOL 60 Harry Feldmann EinfOhrung in ALGOL 60 Skriptum fUr Harer aller Fachrichtungen ab 1. Semester Friedr. Vieweg + Sohn . Braunschweig Dr. rer. nat. Harry Feldmann ist Abteilungsdirektor am Rechenzentrum der Universitiit Hamburg Quellennachweis Seiten 86 bis 89 "Wiedergegeben mit Genehmigung des Deutschen Normenausschusses. Ma1.\gebend ist die jeweils neueste Ausgabe des Normblattes im Normformat A4, das bei der Beuth-Vertrieb GmbH., 1 Berlin 30 und 5 Koln, erhiiltlich ist" ISBN-13: 978-3-528-03315-6 e-ISBN-13: 978-3-322-85512-1 001: 10.1007/ 978-3-322-85512-1 AIle Rechte vorbehalten Copyright © 1972 by Friedr. Vieweg + Sohn GmbH, Verlag, Braunschweig Die Vervielfiiltigung und Obertragung einzelner Textabschnitte, Zeichnungen oder Bilder, auch fUr Zwecke der Unterrichtsgestaltung, gestattet das Urheberrecht nur, wenn sie mit dem Verlag vorher vereinbart wur!ien. 1m Einzelfall mu1\ tiber die Zahlung einer Gebtihr fUr die Nutzung fremden geistigen Eigentums entschieden werden. Das gilt fUr die Vervielfiiltigung durch aIle Verfahren einschlie11.lich Speicherung und jede Ubertragung auf Papier, Transparente, Filme, Bander, Platten und andere Medien. Vorwort Ein Programm einer Rechenanlage zur LOsung einer bestimmten Art von Problemen injeweils endlich vielen Schritten he~t Algorithmus und ist in Form einer end lichen Zeichenkette gegeben. Eine Sprache ist die Menge alIer Zeichenketten, die nach der Grammatik der Sprache erzeugt werden konnen. ALGOL 60 ~rithmic language, herausgegeben fUr 1960 von Naur) ist eine Sprache, deren Zeichenketten slimtlich Algorithmen sind, d.h. eine Programm-oder Program miersprache. Die ALGOL-60-Grammatik ist die erste Grammatik, die weitgehend aus (klaren) Formeln, sogenannten Semi-Thue-Produktionen (nach Thue 1914, spater Post 1943, Chomsky 1956, Backus 1959), und nicht aus (unklaren) verbalen Formulierungen besteht. Die Produktionen der ALGOL-60-Grammatik sind in graphischer Darstellung als Produktionsschemata (vgl. 2.7, 3.2 ft) fUr Horer alIer Fachrichtungen und sogar fUr SchUler ohne weiteres verstandlich. Beispiel eines Produktionsschemas (vgl. 2.3): Bezeichnung \ Buchstabe} ... {Buchstabe} Buchstabe { Ziffer Ziffer d.h. eine Bezeichnung ist eine endliche Zeichenkette aus Buchstaben bzw. Ziffern (und keinen sonstigen Zeichen wie etwa Komma), beginnend mit einem Buchstaben. Unterschlangeltes darf entfalIen. ~ Neben den formalen Produktionsschemata enthiilt die ALGOL-60-Grammatik noch zuslitzliche verbale Regeln, die im folgenden "Zusatzregeln" genannt werden. Dem Leser, der einen moglichst schnellen Zugang zu ALGOL 60 sucht, wird empfoh len, mit Kapite12 von 2.2 an zu beginnen, in dem eine ALGOL-60-Teilmenge (Aus zug) erzeugt wird, die fUr die Programmierung einfacher Beispiele ausreicht. Diese Teilmenge wird in den Kapiteln 3-6 auf den vollen ALGOL-60-Umfang erweitert. In Kapitel 7 werden die komfortablen Ein/ Ausgabeprozeduren INPUT/OUTPUT mit wiihlbaren Formaten besprochen, die von Knuth 1964 herausgegeben wurden und die ALGOL 60 auch fUr umfangreiche Ein/Ausgabeintensive Probleme der Datenverarbeitung verwendbar machen. ALGOL-60-Programme sind weitgehend in Ublicher mathematischer Formelschreib weise abgef~t und werden wegen ihrer kurzen, Ubersichtlichen und prazisen Dar stellung nicht nur zum Programmieren, sondem auch zum Formulieren mathema tisch beschriebener Algorithmen verwendet (insbesondere in Veraffentlichungen). Bei nichtnumerischen Problemen, wie z.B. Textverarbeitung, ist ALGOL 60 schwer filliger, da Textzeichen erst in Zahlen umcodiert werden mUssen. Umfassender (aber komplizierter) als ALGOL 60 ist ALGOL 68 (herausgegeben fUr 1968 von van Wijngaarden), das jedoch zur Zeit noch nicht flir Rechenanlagen zur Verfligung steht. Herm G. Lamprecht (Bremen) m6chte ich fUr die Anregung danken, diese EinfUhrung zu schreiben. Meinen Harem und insbesondere Herm M. Kniebel bin ich flir die kri tische Durchsicht des zugrundegelegten Vorlesungs-Skriptums und flir Xnderungsvor schlage zu Dank verpflichtet. FUr Beitrage zu den Obungsaufgaben danke ich den Herren R. Nicolovius (Hamburg), H. Schauer (Wien) und R. Ziegler (Stuttgart). Frau E. Schmidt danke ich flir ihre Miihe beim Schreiben der Druckvorlagen. Hamburg H. Feldmann Inhaltsverzeichnis 1 Einleitung 1 1.1 Struktur von Rechenanlagen 1 1.2 Darstellung von Algorithrnen durch FluMiagramme 2 1.3 Beispiele 4 2 ALGOL-60-Auszug 8 2.1 Zeichenvorrat und Grammatik-Notation 8 2.2 Vorzeichenlose ZaWen 11 2.3 Bezeichnungen 12 2.4 Vereinfachte arithrnetische Ausdriicke 12 2.5 Vereinfachte logische Ausdriicke 14 2.6 Vereinfachte Typvereinbarungen 16 2.7 Programm, Blacke, Anweisungen 17 2.8 Beispiele 24 3 Ausdriicke 28 3.1 Standardfunktionsprozeduren 28 3.2 Arithrnetische -, logische - und Zielausdrticke 30 3.3 Beispiele 36 4 Felder 38 4.1 Variablen 38 4.2 Vereinbarungen 39 4.3 Verteileraufrufe 42 4.4 Beispiele mit Hinweis auf INARRA Y JOUT ARRAY 43 5 Blockstruktur 47 5.1 Strukturblocke 47 5.2 GraBen in einer Blockstruktur 48 5.3 Beispiel 50 6 Prozeduren 52 6.1 Prozedurveretnbarung 52 6.2 Prozeduraufruf 57 6.3 Beispiele 59 7 Standard-E/A /Fonnat-Prozedur-Anweisungen INPUT/OUTPUT 66 7.1 Produktionsschema 67 7.2 Zahlenfonnat, Beispiele 70 7.3 Logisches Fonnat, Beispiele 71 7.4 'INTEGER'-Zeichenkettenfonnat und EQUIV, Beispiele 72 7.5 Zeichenkettenformat, Beispiele 73 7.6 Parameterloses Zeichenkettenformat, Beispiele 74 7.7 Maschtnenformat, Beispiele 75 7.8 Beispiele mit Htnweis auf INLIST /OUTLIST 76 8 Vbungsaufgaben 78 A Anhang Al Darstellung von ALGOL-Symbolen auf 5-Spur-Lochstreifen und 80-spaltigen Lochkarten, DIN 66006 86 A2 Kontextfreie Semi-Thue-Produktionen fur ALGOL 60. Schema tn Englisch mit Vbersetzung tn Deutsch 90 A3 Kontextfreie Semi-Thue-Produktionen fur Formate von INPUT/OUTPUT. Schema in Englisch mit Vbersetzung tn Deutsch 94 Literaturverzeichnis 96 Alphabetischer Index 100 Einleitung Einleitung Die auf die Grundlagen und das Prinzipielle hingerichteten Fragen "Was ist eigentlich eine Rechenanlagel" und "Was ist eigentlich ein Programm bzw. ein Algorithmusl" werden in der ~u!0~a!e~the2r!e beantwortet durch Angabe eines moglichst einfachen Prototyps einer Rechenanlage, der "Turingmaschine" (Turing 1936), und Aufstellung der These, daB jede Rechenanlage der Turingmaschine und jedes Rechen anlagenprogramm einem Turingprogramm aquivalent sind. Die Begriffe Programm (mit Halt nach endlich vielen Schritten) und Algorithmus werden gleichgesetzt. In dieser Einleitung kann auf die Automatentheorie ver standlicherweise nicht naher eingegangen werden, vielmehr werden Rechenanlagen nur kurz hinsichtlich ihrer Funktion, ihrer Hauptbestandteile und ihrer Benutzung besprochen und einige einfache Programme bzw. Algorithmen in graphi scher Darstellung (FluBdiagramme) als Beispiele angegeben. 1.1. Struktur von Rechenanlagen Wurde bisher von Rechenanlagen gesprochen, so waren stets programmgesteuerte, digitale, elektronische Rechenanlagen gemeint. Nicht gemeint waren Rechenlagen mit unverander lichem Programm wie z.B.ProzeBrechner zur Steuerung von Fabrikationsvorgangen oder Rechenanlagen mit nichtdigita ler Informationsdarstellung wie z.B. Tourenzahler in Auto mobilen oder nichteleketronische Rechenlagen wie z.B. Zahnrad-Tischrechner. Hauptbestandteile einer Rechenlage sind der Speicher, das Rechenwerk und das Befehlswerk, die in Abb.l.la zusammen mit den Richtungen des Informationsflusses dargestellt sind. 2 1.2 FluSdiagramme Rechenwerk Befehlswerk Abb.I.la: Hauptbestandteile und Informations fluS in einer Rechenanlage Das Programm und die Eingabedaten werden (etwa von Loch karten) in den Speicher eingelesen. Dann werden die Befeh le des Programms aus dem Speicher ihrer Reihenfolge nach ins Befehlswerk gebracht und ausgefuhrt. GemiS diesen Be fehlen werden die Eingabedaten vom Speicher ins Rechenwerk transportiert, dort umgerechnet und Ergebnisse in den Spei cher zurucktransportiert. Am Ende des Programms werden die resultierenden Ausgabedaten aus dem Speicher(etwa uber Drucker) ausgegeben. 1.2 Darstellung von Algorithmen durch FluSdiagramme Noch einfacher als die Darstellung eines Algorithmus in ALGOL 60 ist die Darstellung eines Algorithmus graphisch durch FluSdiagramme (1945 durch von Neumann und Goldstine eingefuhrt). Dies gilt zumindest fur kurze Algorithmen; fur lingere Algorithmen werden FluSdiagramme unubersicht licher. Als Vorubung zum Programmieren in ALGOL 60 und zur Erarbei tung einiger kurzer Beispiele (siehe 1.3) erliutern wir daher den sehr leicht (fast intuitiv) verstindlichen Auf bau von FluSdiagrammen. Dabei lassen wir Ein/Ausgabevor ginge zur Vereinfachung auSer Betracht und benutzen zum Teil von der Norm (DIN 66001 Ittformationsverarbeitung: Sinnbilder fur DatenfluS- und Programmablaufpline incl. 1.2 FluBdiagramme 3 Zeichenschablone. Berlin,Koln: Beuth-Vertrieb 1969) ab weichende Sinnbilder (siehe Abb.I.2a) vereinfachte Ergibtanweisung mit T Eingang und T Ausgang. v Variable, av vereinfachter arithmet.Ausdruck y'eE..&l~i£h mit 1 Eingang und 2 Ausgangen. aV1,aV2 vereinf.arithm.Ausdruck, o Vergleichsoperator: <,~,=,~,>,* ZusammenfluB mit mindestens 2 Eingangen und 1 Ausgang Abb.I.2a: Sinnbilder fUr FluBdiagramme Eine vereinfachte Ergibtanweisung mit 1 Eingang und 1 Aus gang weist der Variablen mit dem Namen V den Wert des ver einfachten arithmetischen Ausdrucks (Ublicher mathemati scher arithmetischer Ausdruck, genauere Definitionen in 2.4,3.2) mit dem Namen av zu. Z.B. bedeutet X:=X+Y mit derzeitigen Werten 1 fUr X und 2 fUr Y, daB X den neuen Wert 3 erhalt. Ein Vergleich mit 1 Eingang und 2 Ausgangen vergleicht die Werte der vereinfachten arithmetischen AusdrUcke, die die Namen aV1 ,aV2 besitzen, und aktiviert den "ja"Ausgang, wenn der Vergleich "ja" ergibt, sonst den anderen ("nein") Ausgang. Z.B. bedeutet X+ISY+2 mit derzeitigen Werten 1 fUr X und 2 fUr Y, daB der "ja"Ausgang aktiviert wird. Ein FluBdiagramm besteht aus endlich vielen vereinfachten Ergibtanweisungen, Vergleichen und ZusammenflUssen und hat genau 1 freien Eingang (Start) und endlich viele freie Ausgange (Halts).

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.