- 7370
enverzeichnis
n Bayer
analytiker, T-Systems GmbH r. Thomas Fuchß
or für Informatik, FH Karlsruhe ng Gruber
ruber und Hufnagel Softwareentwicklung GmbH r. Peter A. Henning
3r für Informatik, FH Karlsruhe Keller
ichaftlicher Mitarbeiter, Forschungszentrum Karlsruhe st Keller
eentwicklung, SAP AG Walldorf t Kreis
[GmbH r. Norbert Link
>r für Informatik, FH Karlsruhe tfehne
diger EDV-Berater r. Britta Nestler
irin für Informatik, FH Karlsruhe brischewski
chaftlicher Mitarbeiter, FH Karlsruhe o Schindlmayr
tive Analyst, EnBW Gesellschaft für Sttromhandel mbH Supp
:entwickler, .riess applications gmbh . Holger Vogelsang
r für Informatik, FH Karlsruhe Wagner
sfuhrer, quartis GmbH
Taschenbuch Programmier- sprachen
herausgegeben von
Prof. Dr. Peter A. Henning und Prof. Dr. Holger Vogelsang
Mit zahlreichen Tabellen
FACHBUCHVERLAG LEIPZIG
im Carl Hanser Verlag
Inhaltsverzeichnis
1 Einleitung 17
1.1 Definition und Geschichte 17 1.2 Programmentwicklung 19 1.2.1 Industrielle Software-Entwicklung 19 1.2.2 Open Source-Software 20 1.2.3 Normung 21 1.3 Programmierung 21 1.3.1 Vorgehensweise 21 1.3.2 Regeln guter Programmierung 22 1.4 Klassifizierung von Programmiersprachen 22 1.5 Glossar Programmiersprachen 25
2 C 50
2.1 Übersicht 50 2.2 Organisation der Sprache 51 2.2.1 Modularisierung des Quelltextes 51 2.2.2 Kommentare, Namen und üterale 51 2.2.3 Präprozessor 52 2.2.4 Genereller Quelltextaufbau 56 2.3 Imperative Aspekte 56 2.3.1 Primitive Datentypen 56 2.3.2 Eigene und zusammengesetzte Datentypen 57 2.3.3 Speicherung von Daten 61 2.3.4 Ausdrücke 63 2.3.5 Operatoren und ihre Reihenfolgen 63 2.3.6 Anweisungen 64 2.4 Funktionen 66 2.4.1 Variable Parameteranzahl 66 2.4.2 Programmstart 67 2.5 Zeiger 68 2.5.1 Zeiger auf Strukturen und Unions 69 2.5.2 Zeiger, Arrays und Zeigerarithmetik 69 2.5.3 Zeiger auf Funktionen 70 2.5.4 Dynamische Speicherverwaltung 70 2.6 Vordefinierte oder wichtige Funktionen 71 2.6.1 Strings 71 2.6.2 Arrays und Speicher 72 2.6.3 Mathematik 72
3 C++ 74
3.1 Übersicht 74 3.2 Organisation der Sprache 74 3.2.1 Modularisierung des Quelltextes 75 3.2.2 Kommentare, Namen und Literale 76 3.2.3 Präprozessor 76 3.2.4 Genereller Quelltextaufbau 77 3.3 Imperative Aspekte 77 3.3.1 Primitive Datentypen 77 3.3.2 Eigene und zusammengesetzte Datentypen 77 3.3.3 Speicherung von Daten 78 3.3.4 Ausdrücke 78 3.3.5 Operatoren und ihre Reihenfolgen 78 3.3.6 Anweisungen 80
3.4 Funktionen 3.4.1 Generische Funktionen 3.4.2 Programmstart 3.5 Zeiger und Referenzen 3.5.1 Zeiger auf Objekte 3.5.2 Zeiger auf Methoden 3.5.3 Referenzen
3.5.4 Dynamische Speicherverwaltung 3.6 Objekte und Klassen 3.6.1 Deklaration und Aufbau 3.6.2 Erzeugung und Löschung 3.6.3 Attribute
3.6.4 Initialisierung und Freigabe 3.6.5 Methoden
3.6.6 Zugriffsrechte 3.6.7 Geschachtelte Klassen 3.7 Vererbung
3.7.1 Konstruktoren und Initialisierung 3.7.2 Destruktoren und Freigabe 3.7.3 Überschreiben von Methoden 3.7.4 Abstrakte Klassen 3.7.5 Mehrfachvererbung 3.8 Überladen von Operatoren 3.8.1 Elementoperatoren 3.8.2 Nichtelementoperatoren 3.8.3 Vordefinierte Operatoren 3.9 Generische Klassen
3.10 Vordefinierte oder wichtige Klassen ..
3.10.1 Strings 3.10.2 Arrays 3.10.3 Mathematik
4 Java
4.1 Übersicht
4.2 Organisation der Sprache 4.2.1 Modularisierung des Quelltextes 4.2.2 Kommentare, Namen und Literale 4.2.3 Genereller Quelltextaufbau 4.3 Imperative Aspekte 4.3.1 Primitive Datentypen
4.3.2 Eigene und zusammengesetzte Datentypen 4.3.3 Speicherung von Daten
4.3.4 Ausdrücke
4.3.5 Operatoren und ihre Reihenfolgen 4.3.6 Anweisungen
4.4 Referenzen
4.4.1 Dynamische Speicherverwaltung 4.5 Objekte und Klassen 4.5.1 Deklaration und Aufbau 4.5.2 Klassenrechte 4.5.3 Erzeugung und Löschung 4.5.4 Attribute
4.5.5 Initialisierung und Freigabe 4.5.6 Methoden
4.5.7 Methodenrechte 4.5.8 Getter und Setter 4.6 Geschachtelte Klassen 4.7 Vererbung
4.7.1 Konstruktoren und Initialisierung 4.7.2 Destruktor (finalize) und Freigabe
Inhaltsverzeichnis
Itsverzeichnis
Einleitung 17
Definition und Geschichte 17 Programmentwicklung 19 Industrielle Software-Entwicklung 19 Open Source-Software 20 Normung 21 Programmierung 21 Vorgehensweise 21 Regeln guter Programmierung 22 Klassifizierung von Programmiersprachen 22 Glossar Programmiersprachen 25
C 50
Übersicht 50 Drganisation der Sprache 51 Modularisierung des Quelltextes 51
<ommentare, Namen und Literale 51
Dräprozessor 52
Senereller Quelltextaufbau 56 mperative Aspekte 56
3rimitive Datentypen 56 Eigene und zusammengesetzte Datentypen 57 Speicherung von Daten 61
\usdrücke 63 Dperatoren und ihre Reihenfolgen 63 Anweisungen 64
runktionen 66
/ariable Parameteranzahl 66
Drogrammstart 67
feiger 68 feiger auf Strukturen und Unions 69 teiger, Arrays und Zeigerarithmetik 69 feiger auf Funktionen 70 Dynamische Speicherverwaltung 70 /ordefinierte oder wichtige Funktionen 71 strings 71
\rrays und Speicher 72 Mathematik 72
> + 74
Jbersicht 74 Drganisation der Sprache 74 dodularisierung des Quelltextes 75 Commentare, Namen und Literale 76 'räprozessor 76 Genereller Quelltextaufbau 77 mperative Aspekte 77 'rimitive Datentypen 77 Eigene und zusammengesetzte Datentypen 77 ipeicherung von Daten 78 Ausdrücke 78 )peratoren und ihre Reihenfolgen 78 Anweisungen 80
3.4 Funktionen 81 3.4.1 Generische Funktionen 82 3.4.2 Programmstart 83 3.5 Zeiger und Referenzen 83 3.5.1 Zeiger auf Objekte 83 3.5.2 Zeiger auf Methoden 83 3.5.3 Referenzen 84 3.5.4 Dynamische Speicherverwaltung 85 3.6 Objekte und Klassen 86 3.6.1 Deklaration und Aufbau 86 3.6.2 Erzeugung und Löschung 86 3.6.3 Attribute 89 3.6.4 Initialisierung und Freigabe 90 3.6.5 Methoden 91 3.6.6 Zugriffsrechte 92 3.6.7 Geschachtelte Klassen 93 3.7 Vererbung 94 3.7.1 Konstruktoren und Initialisierung 94 3.7.2 Destruktoren und Freigabe 95 3.7.3 Überschreiben von Methoden 96 3.7.4 Abstrakte Klassen 97 3.7.5 Mehrfachvererbung 98 3.8 Überladen von Operatoren 99 3.8.1 Elementoperatoren 99 3.8.2 Nichtelementoperatoren 101 3.8.3 Vordefinierte Operatoren 101 3.9 Generische Klassen 102 3.10 Vordefinierte oder wichtige Klassen 103 3.10.1 Strings 103 3.10.2 Arrays 104 3.10.3 Mathematik 104
4 Java 105
4.1 Übersicht 105 4.2 Organisation der Sprache 105 4.2.1 Modularisierung des Quelltextes 106 4.2.2 Kommentare, Namen und Literale 107 4.2.3 Genereller Quelltextaufbau 109 4.3 Imperative Aspekte 109 4.3.1 Primitive Datentypen 109 4.3.2 Eigene und zusammengesetzte Datentypen 110 4.3.3 Speicherung von Daten 112 4.3.4 Ausdrücke 112 4.3.5 Operatoren und ihre Reihenfolgen 113 4.3.6 Anweisungen 114 4.4 Referenzen 116 4.4.1 Dynamische Speicherverwaltung 117 4.5 Objekte und Klassen 117 4.5.1 Deklaration und Aufbau 117 4.5.2 Klassenrechte 118 4.5.3 Erzeugung und Löschung 118 4.5.4 Attribute 119 4.5.5 Initialisierung und Freigabe 120 4.5.6 Methoden 120 4.5.7 Methodenrechte 123 4.5.8 Getter und Setter 124 4.6 Geschachtelte Klassen 125 4.7 Vererbung 127 4.7.1 Konstruktoren und Initialisierung 127 4.7.2 Destruktor (finalize) und Freigabe 128
Inhaltsverzeichnis
4.7.3 Überschreiben von Methoden 128 4.7.4 Abstrakte Klassen 129 4.7.5 Schnittstellen 130 4.8 Vordefinierte oder wichtige Klassen 131 4.8.1 Strings 131 4.8.2 Arrays 131 4.8.3 Mathematik 131
5 C# 133
5.1 Übersicht 133 5.1.1 Laufzeitumgebung CLR 133 5.1.2 Compiler 133 5.2 Organisation der Sprache 134 5.2.1 Modularisierung 134 5.2.2 Die Einsprungstelle (main) 135 5.2.3 Kommentare, Namen und Literale 135 5.2.4 Compiler-Direktiven 136 5.3 Value Types 137 5.3.1 Vordefinierte Value Types 137 5.3.2 Benutzerdefinierte Value Types 139 5.4 Reference Types 140 5.4.1 Vordefinierte Reference Types 140 5.4.2 Benutzerdefinierte Reference Types 140 5.4.3 Arrays (System.Array) 145 5.4.4 Pointer 146 5.5 Typ-Konvertierungen 147 5.6 Attribute 148 5.6.1 Deklaration von Attributen 148 5.6.2 Zugriff auf Attribute 149 5.6.3 Vordefinierte Attribute 149 5.7 Imperative Aspekte 150 5.7.1 Variablen und Parameter 150 5.7.2 Ausdrücke (Expressions) 151 5.7.3 Anweisungen (Statements) 152 5.8 Wichtige Klassen 155 5.8.1 Ein- und Ausgabe in C# 155 5.8.2 Stream, TextReader und TextWriter 155
6 Pascal 157
6.1 Übersicht 157 6.2 Organisation der Sprache 157 6.2.1 Quelltypen 157 6.2.2 Kommentare und Symbole 158 6.2.3 Bezeichner 158 6.2.4 Reservierte Schlüsselwörter 159 6.2.5 Literale 159 6.2.6 Aufbau eines Pascal-Programms 160 6.2.7 Aufbau einer Unit 161 6.2.8 Aufbau des Pascal-Quelltextes 161 6.3 Imperative Aspekte 163 6.3.1 Primitive Datentypen 163 6.3.2 Arrays 167 6.3.3 Selbstdefinierte Datentypen 168 6.3.4 Speicherbereiche von Code und Variablen 168 6.3.5 Ausdrücke 168 6.3.6 Operatoren und Reihenfolgen 169 6.3.7 Anweisungen 170 6.3.8 L-Value, R-Value 172 6.4 Prozedurale Elemente und Funktionen 173 6.5 Referenzen auf Funktionen/Prozeduren 174
6.6 Vordefinierte oder wichtige Funktionen 6.6.1 File-IO
6.6.2 Mathematische und String-Funktionen
7 Object Pascal
7.1 Übersicht
7.2 Organisation der Sprache 7.3 Imperative Aspekte 7.3.1 Primitive Datentypen 7.4 Funktionen
7.5 Zeiger und Referenzen 7.5.1 Zeiger auf Objekte und Methoden 7.5.2 Referenzen
7.6 Objekte und Klassen
7.6.1 Deklaration und Aufbau von Objekten/Klassen 7.6.2 Erzeugung und Löschen von Objekten/Klassen 7.6.3 Attribute
7.6.4 Initialisierung und Freigabe 7.6.5 Methoden
7.6.6 Zugriffsrechte 7.7 Vererbung
7.7.1 Konstruktoren und Initialisierung 7.7.2 Destruktoren und Freigabe 7.7.3 Überschreiben von Methoden 7.7.3 Abstrakte Klassen und Interfaces 7.8 Besondere Klasseneigenschaften
8 MODULA-2
8.1 Organisation der Sprache 8.2 Imperative Aspekte 8.2.1 Typen und Variablen 8.2.2 Coroutinen 8.2.3 Operatoren
8.3 Prozedurale Elemente und Funktionen 8.4 Zeiger, Referenzen und Objekte 8.5 Vordefinierte oder wichtige Funktionen
9 Ada
9.1 Einleitung
9.2 Allgemeine Aspekte zur Programmentwicklung 9.2.1 Programmarchitektur
9.2.2 Compiler und Übersetzung 9.2.3 Portabilität von Ada-Programmen 9.2.4 Einsatzgebiete und Wartbarkeit 9.3 Algorithmen und Datenstrukturen 9.3.1 Typen in Ada
9.3.2 Anweisungen 9.3.3 Unterprogramme 9.3.4 Ausnahmebehandlung
9.4 Modulkonzept und Objektorientierung 9.4.1 Pakete
9.4.2 Generische Pakete 9.4.3 Objektorientierte Konzepte 9.5 Echtzeitfähigkeit und Multitasking 9.6 Einbettung der Sprache, Umgebung
10 FORTRAN
10.1 Übersicht
Inhaltsverzeichnis Inhaltsverzeichnis
Überschreiben von Methoden 128 Abstrakte Klassen 129 Schnittstellen 130 Vordefinierte oder wichtige Klassen 131 Strings 131 Arrays 131 Vlathematik 131
C# 133
Übersicht 133 .aufzeitumgebung CLR 133 Compiler 133 Drganisation der Sprache 134 vlodularisierung 134 Die Einsprungstelle (main) 135
<ommentare, Namen und Literale 135 Dompiler-Direktiven 136
*/alue Types 137 i/ordefinierte Value Types 137 Benutzerdefinierte Value Types 139 Reference Types 140 /ordefinierte Reference Types 140 Benutzerdefinierte Reference Types 140 Arrays (System.Array) 145 'ointer 146 ryp-Konvertierungen 147
\ttribute 148 )eklaration von Attributen 148 Zugriff auf Attribute 149 /ordefinierte Attribute 149 mperative Aspekte 150 /ariablen und Parameter 150 Vusdriicke (Expressions) 151 Anweisungen (Statements) 152 Wichtige Klassen 155 Ein- und Ausgabe in C# 155 Stream, TextReader und TextWriter 155 3
ascal 157
Übersicht 157 Drganisation der Sprache 157 3uelltypen 157 Commentare und Symbole 158 Jezeichner 158 Reservierte Schlüsselwörter 159 .iterale 159 Aufbau eines Pascal-Programms 160 Aufbau einer Unit 161 Vufbau des Pascal-Quelltextes 161 mperative Aspekte 163 'rimitive Datentypen 163 Arrays 167 ielbstdefinierte Datentypen 168 Speicherbereiche von Code und Variablen 168 Ausdrücke 168 )peratoren und Reihenfolgen 169 Anweisungen 170 .-Value, R-Value 172 'rozedurale Elemente und Funktionen 173 Referenzen auf Funktionen/Prozeduren 174
6.6 Vordefinierte oder wichtige Funktionen 174 6.6.1 File-IO 174 6.6.2 Mathematische und String-Funktionen 176
7 Object Pascal 178
7.1 Übersicht 178 7.2 Organisation der Sprache 178 7.3 Imperative Aspekte 179 7.3.1 Primitive Datentypen 179 7.4 Funktionen 179 7.5 Zeiger und Referenzen 179 7.5.1 Zeiger auf Objekte und Methoden 179 7.5.2 Referenzen 180 7.6 Objekte und Klassen 180 7.6.1 Deklaration und Aufbau von Objekten/Klassen 180 7.6.2 Erzeugung und Löschen von Objekten/Klassen 181 7.6.3 Attribute 182 7.6.4 Initialisierung und Freigabe 184 7.6.5 Methoden 184 7.6.6 Zugriffsrechte 185 7.7 Vererbung 185 7.7.1 Konstruktoren und Initialisierung 186 7.7.2 Destruktoren und Freigabe 186 7.7.3 Überschreiben von Methoden 186 7.7.3 Abstrakte Klassen und Interfaces 187 7.8 Besondere Klasseneigenschaften 188
8 MODULA-2 189
8.1 Organisation der Sprache 189 8.2 Imperative Aspekte 190 8.2.1 Typen und Variablen 190 8.2.2 Coroutinen 191 8.2.3 Operatoren 191 8.3 Prozedurale Elemente und Funktionen 192 8.4 Zeiger, Referenzen und Objekte 192 8.5 Vordefinierte oder wichtige Funktionen 193
9 Ada 195
9.1 Einleitung 195 9.2 Allgemeine Aspekte zur Programmentwicklung 196 9.2.1 Programmarchitektur 196 9.2.2 Compiler und Übersetzung 196 9.2.3 Portabilität von Ada-Programmen 197 9.2.4 Einsatzgebiete und Wartbarkeit 197 9.3 Algorithmen und Datenstrukturen 198 9.3.1 Typen in Ada 198 9.3.2 Anweisungen 201 9.3.3 Unterprogramme 203 9.3.4 Ausnahmebehandlung 204 9.4 Modulkonzept und Objektorientierung 205 9.4.1 Pakete 205 9.4.2 Generische Pakete 207 9.4.3 Objektorientierte Konzepte 209 9.5 Echtzeitfähigkeit und Multitasking 211 9.6 Einbettung der Sprache, Umgebung 214
FORTRAN 215
Übersicht 215
10.2 Organisation der Sprache 215 10.2.1 Quellcode 215 10.2.2 Struktur eines FORTRAN-Programms 216 10.2.3 Kommentare, Namen und Literale 216 10.2.4 Primitive Datentypen 217 10.2.5 Abgeleitete Datentypen 218 10.3 Imperative Aspekte 218 10.3.1 Arrays 218 10.3.2 Dynamische Arrays 220 10.3.3 Initialisierung 220 10.3.4 EQUIVALENCE-Anweisung 220 10.3.5 Zuweisungen und Operatoren 221 10.3.6 Kontrollstrukturen 222 10.3.7 Array-Anweisungen 224 10.4 Prozedurale Elemente 224 10.4.1 Parameterübergabe 225 10.4.2 Besonderheiten von Unterprogrammen 226 10.4.3 Besonderheiten von Funktionen 226 10.4.4 Module 226 10.4.5 Operatordefinitionen und Überladung 227 10.4.3 COMMON-Blöcke 227 10.5 Input und Output in FORTRAN 228 10.5.1 Listengesteuerte Ein- und Ausgabe 228 10.5.2 Formatierte Ein- und Ausgabe 228 10.5.3 FORMAT-Anweisung 229 10.5.4 Ein- und Ausgabe auf Dateien 230 10.6 Zeigervariablen und dynamischer Speicher 231 10.6.1 POINTER und TARGET 231 10.6.2 Dynamischer Speicher 231 10.7 Intrinsische Funktionen 232 10.7.1 Mathematische Funktionen 232 10.7.2 String-Funktionen 233 10.7.3 Array-Funktionen 234 10.7.4 POINTER-Funktionen 235
11 COBOL 236
11.1 Übersicht 236 11.2 Organisation der Sprache 237 11.2.1 Quellcode 237 11.2.2 Struktur eines COBOL-Programms 237 11.2.3 Elemente der Sprache 239 11.3 DATA DIVISION 240 11.3.1 COBOL-Stufennummern 242 11.3.2 COBOL-Datentypen 243 11.3.3 Tabellen in COBOL 246 11.3.4 Weitere Klauseln der DATA DIVISION 246 11.4 PROCEDURE DIVISION 247 11.4.1 Arithmetische und logische Ausdrücke 248 11.4.2 Zuweisungen 249 11.4.3 Arithmetische Anweisungen 251 11.4.4 Bedingte Anweisungen 251 11.4.5 Unterprogramme 252 11.4.6 String-Manipulationen 254 11.4.7 Dateiverarbeitung 254 11.4.8 Tabellenverarbeitung 255 11.4.9 Sortieren und Mischen 255 11.5 Weitere Elemente von COBOL 256 11.5.1 Reports 256 11.5.2 Eingebaute Funktionen 256
12 BASIC
12.1 Übersicht
12.2 Organisation der Sprache 12.2.1 Quelltext
12.2.2 Prozedurale Elemente und Funktionen 12.2.3 Identifier, Literale
12.3 Imperative Aspekte 12.3.1 Primitive Datentypen 12.3.2 Arrays
12.3.3 Zuweisungen, Ausdrücke und Operatoren 12.3.4 Kontrollstrukturen
12.4 Vordefinierte oder wichtige Funktionen. ..
12.4.1 String-Funktionen 12.4.2 Array-Funktionen 12.4.3 Mathematische Funktionen
13 VisualBasic.NET
13.1 Übersicht
13.2 Organisation der Sprache 13.2.1 Quelltext
13.2.2 Logische Programmeinheiten
13.2.3 Identifier, Literale, Seperatoren und Operatoren 13.3 Imperative Aspekte
13.3.1 Einfache Datentypen 13.3.2 Aufzählungstypen
13.3.3 Konstanten, Variablen und Arrays 13.3.4 Ausdrücke
13.3.5 Prozeduren (procedures) 13.3.6 Kontrollstrukturen 13.3.7 Schleifen
13.3.8 Ausnahmebehandlung (Error Messages) 13.4 Weitere Details zu VB.NET
14 JavaScript und ECMAScript
14.1 Übersicht
14.2 Organisation der Sprache 14.2.1 Kommentare, Namen und Literale 14.2.2 Interpretationsschema 14.3 Imperative Aspekte 14.3.1 Eingebaute Datentypen 14.3.2 Ausdrücke und Operatoren 14.3.3 Anweisungen
14.4 Funktionen und Objekte 14.5 Eingebaute Objekte 14.5.1 String-Objekt 14.5.2 Math-Objekt 14.5.3 Array-Objekt 14.5.4 Date-Objekt 14.5.5 RegExp-Objekt 14.5.6 JavaScript und Java 14.6 Browser-API 14.6.1 Browser-Objekte 14.6.2 Event-Handling
15 Perl
15.1 Übersicht
15.2 Organisation der Sprache 15.2.1 Quellcode und Programmstruktur
Inhaltsverzeichnis
Organisation der Sprache 215 Quellcode 215 Struktur eines FORTRAN-Programms 216 Kommentare, Namen und Literale 216 Primitive Datentypen 217 Abgeleitete Datentypen 218 Imperative Aspekte 218 Arrays 218 Dynamische Arrays 220 Initialisierung 220 EQUIVALENCE-Anweisung .220 Zuweisungen und Operatoren 221 Kontrollstrukturen 222
<\rray-Anweisungen 224 Prozedurale Elemente 224
3arameterübergabe 225 Besonderheiten von Unterprogrammen 226 Besonderheiten von Funktionen 226 Module 226 Dperatordefinitionen und Überladung 227
;OMMON-Blöcke 227 nput und Output in FORTRAN 228 Jstengesteuerte Ein- und Ausgabe 228
:ormatierte Ein- und Ausgabe 228
:ORMAT-Anweisung 229 Ein- und Ausgabe auf Dateien 230 leigervariablen und dynamischer Speicher 231 'OINTER und TARGET 231 tynamischer Speicher 231 ntrinsische Funktionen 232 /lathematische Funktionen 232 String-Funktionen 233 irray-Funktionen 234 'OINTER-Funktionen i 235
;OBOL 236
Jbersicht 236 )rganisation der Sprache 2 3 7 iuellcode 237 Itruktur eines COBOL-Programms 237 Elemente der Sprache 239 )ATA DIVISION .'....".'..'.'.'." 240 lOBOL-Stufennummern 242 :OBOL-Datentypen 243 abellen in COBOL 246 /eitere Klauseln der DATA DIVISION 246 'ROCEDURE DIVISION ... . . . . [ . . . 247 rithmetische und logische Ausdrücke 248 uweisungen 249 rithmetische Anweisungen 251 edingte Anweisungen 251 nterprogramme 252 tring-Manipulationen 254 ateiverarbeitung 254 abellenverarbeitung 255 ortieren und Mischen 255 /eitere Elemente von COBOL 256 eports 256 ingebaute Funktionen 256
Inhaltsverzeichnis
I IBASIC 257
Übersicht 257 Organisation der Sprache 258 Quelltext 258 Prozedurale Elemente und Funktionen 259 Identifier, Literale 261 Imperative Aspekte 262 Primitive Datentypen 262 Arrays 264 Zuweisungen, Ausdrücke und Operatoren 265 Kontrollstrukturen 270 Vordefinierte oder wichtige Funktionen 273 String-Funktionen 273 Array-Funktionen 273 Mathematische Funktionen 274
Visual Basic.NET 277
Übersicht 277 Organisation der Sprache 277 Quelltext 277 Logische Programmeinheiten 278 Identifier, Literale, Seperatoren und Operatoren 282 Imperative Aspekte 283 Einfache Datentypen 283 Aufzählungstypen 285 Konstanten, Variablen und Arrays 285 Ausdrücke 287 Prozeduren (procedures) 288 Kontrollstrukturen 292 Schleifen 293 Ausnahmebehandlung (Error Messages) 294 Weitere Details zu VB.NET 296
JavaScript und ECMAScript 297
Übersicht 297 Organisation der Sprache 298 Kommentare, Namen und Literale 299 Interpretationsschema 299 Imperative Aspekte 300 Eingebaute Datentypen 300 Ausdrücke und Operatoren 300 Anweisungen 301 Funktionen und Objekte 302 Eingebaute Objekte 303 String-Objekt 304 Math-Objekt 305 Array-Objekt 306 Date-Objekt 307 RegExp-Objekt 307 JavaScript und Java 308 Browser-API 308 Browser-Objekte 308 Event-Handling 314
Perl 316
Übersicht 316 Organisation der Sprache 316 Quellcode und Programmstruktur 316
Inhaltsverzeichnis Inhaltsverzeichnis
15.2.2 Kommentare, Namen und Literale 317 15.2.3 Datentypen 317 15.2.4 Referenzen 318 15.3 Imperative Aspekte 319 15.3.1 Operatoren 319 15.3.2 Reguläre Ausdrücke 320 15.3.3 Anweisungen 321 15.3.4 Kontrollstrukturen 322 15.3.5 Input/Output in Perl 323 15.4 Prozedurale Aspekte 325 15.4.1 Funktionen 325 15.4.2 Packages und Module 325 15.5 Objektorientierte Aspekte 326 15.5.1 Klassendefinition 326 15.5.2 Vererbung 327 15.6 Eingebaute Funktionen und Objekte 327 15.6.1 Kontroll- und Dateifunktionen 328 15.6.2 Mathematische Funktionen 329 15.6.3 String-Funktionen 329 15.6.3 Funktionen für Listen und Hashes 330 15.7 Perl/Tk 331 15.7.1 Programmstruktur 331 15.7.2 Widget-Methoden im Detail 333 15.7.3 Ereignissteuerung 336
16 Tcl/Tk 337
16.1 Übersicht 337 16.2 Organisation der Sprache 337 16.2.1 Quellcode und Programmstruktur 337 16.2.2 Kommentare, Namen und Literale 338 16.2.3 Datentypen 338 16.3 Imperative Aspekte 339 16.3.1 Anweisungen, Ausdrücke und Operatoren 339 16.3.2 Glob Style Patterns 340 16.3.3 Reguläre Ausdrücke 341 16.3.4 Kontrollstrukturen 342 16.3.5 Input/Output in Tel 344 16.4 Prozedurale Aspekte 346 16.4.1 Prozeduren 346 16.4.2 Parameterübergabe 347 16.5 Eingebaute Funktionen und Objekte 347 16.5.1 Kontroll- und Dateifunktionen 347 16.5.2 Mathematische Funktionen 349 16.5.3 Anweisungen für Strings 349 16.5.4 Anweisungen für Listen 350 16.6 Tcl/Tk 352 16.6.1 Programmstruktur und Widgets 352 16.6.2 Geometrie-Management in Tk 353
17 PHP 356
17.1 Übersicht 356 17.2 Organisation der Sprache 356 17.2.1 Quellcode und Programmstruktur 356 17.2.2 Kommentare, Namen, Literale 357 17.2.3 Datentypen 358 17.2.4 Referenzen 359 17.2.4 Vordefinierte Variablen 359 17.3 Imperative Aspekte 360 17.3.1 Operatoren 360 17.3.2 Anweisungen 361
17.3.3 Kontrollstrukturen
17.4 Prozedurale Elemente und Funktionen.
17.4.1 Funktionen 17.4.2 Parameterübergabe 17.5 Objektorientierte Aspekte 17.5.1 Klassendefinition
17.5.2 Vererbung
17.5.3 Klassen- und Objekt-Funktionen 17.6 Wichtige Funktionen 17.6.1 Strings
17.6.2 Funktionen für Arrays 17.6.3 Mathematische Funktionen 17.6.4 Kontrollfunktionen 17.6.5 Zeit- und Datumsfunktionen 17.6.6 Dateifunktionen
18 Python
18.1 Übersicht
18.2 Organisation der Sprache 18.2.1 Quellcode-Struktur 18.2.2 Quellcode-Dateien 18.2.3 Modularisierung 18.2.4 Namensräume 18.2.5 Interpreter 18.2.6 Kommentare 18.2.7 Dokumentations-Strings 18.2.8 Bezeichner und Namen 18.2.9 Literale
18.3 Imperative Aspekte 18.3.1 Operatoren 18.3.2 Variablen 18.3.3 Objekte/Typen 18.3.4 Standard-Datentypen 18.3.5 Elementare Anweisungen 18.3.6 Zusammengesetzte Anweisungen 18.4 Ausnahmebehandlung 18.4.1 Benutzerdefinierte Ausnahmen 18.4.2 Finalize-Anweisung 18.5 Funktionen 18.5.1 Funktionsparameter 18.5.2 Funktionsaufruf 18.5.3 Rückgabewerte 18.5.4 Anonyme Funktionen 18.6 Klassen 18.6.1 Klasseninstanzen 18.6.2 Methoden 18.6.3 Vererbung 18.6.4 Datenkapselung 18.6.5 Überladen von Operatoren 18.7 Speicherverwaltung 18.8 Erweiterungen
19 Lisp
19.1 Übersicht 19.1.1 Entwicklung von LISP 19.1.2 Einsatz von LISP 19.1.3 Aufbau der Sprache 19.2 Datentypen und Variablen 19.2.1 Zahlen
19.2.2 Symbole und Variablen
Inhaltsverzeichnis
Kommentare, Namen und Literale 317 Datentypen 317 Referenzen 318 Imperative Aspekte 319 Operatoren 31 g Reguläre Ausdrücke 320 Anweisungen 321 Kontrollstrukturen 322 Input/Output in Perl 323 Prozedurale Aspekte 325 Funktionen 325 Packages und Module 325 Objektorientierte Aspekte 326 Klassendefinition 326 Vererbung 327 Eingebaute Funktionen und Objekte 3 2 7 Kontroll- und Dateifunktionen 328 Mathematische Funktionen 329 String-Funktionen 329 Funktionen für Listen und Hashes 330 Perl/Tk '.'.' 331 Programmstruktur 33I Widget-Methoden im Detail 333 Ereignissteuerung 336
Tcl/Tk 337
Übersicht 337 Organisation der Sprache 337 Quellcode und Programmstruktur 337 Kommentare, Namen und Literale 338 Datentypen 333 Imperative Aspekte 339 Anweisungen, Ausdrücke und Operatoren 339 Glob Style Patterns 340 Reguläre Ausdrücke 341 Kontrollstrukturen 342 Input/Output in Tel 344 Prozedurale Aspekte 346 Prozeduren 34g Parameterübergabe 347 Eingebaute Funktionen und Objekte 347 Kontroll- und Dateifunktionen 347 Mathematische Funktionen 349 Anweisungen für Strings 349 Anweisungen für Listen 350 Tcl/Tk .".'.'.'''. V 352 Programmstruktur und Widgets 352 Geometrie-Management in Tk 353
PHP 356
Übersicht 356 Organisation der Sprache 356 Quellcode und Programmstruktur 356 Kommentare, Namen, Literale 357 Datentypen 358 Referenzen 35g vordefinierte Variablen 35g Imperative Aspekte 360 Operatoren 360 Anweisungen 361
Inhaltsverzeichnis 13
17.3.3 Kontrollstrukturen 361 17.4 Prozedurale Elemente und Funktionen 363 17.4.1 Funktionen 363 17.4.2 Parameterübergabe 364 17.5 Objektorientierte Aspekte 365 17.5.1 Klassendefinition 365 17.5.2 Vererbung 365 17.5.3 Klassen- und Objekt-Funktionen 366 17.6 Wichtige Funktionen 366 17.6.1 Strings 367 17.6.2 Funktionen für Arrays 369 17.6.3 Mathematische Funktionen 370 17.6.4 Kontrollfunktionen 371 17.6.5 Zeit- und Datumsfunktionen 372 17.6.6 Dateifunktionen 373
18 Python 375
18.1 Übersicht 375 18.2 Organisation der Sprache 375 18.2.1 Quellcode-Struktur 375 18.2.2 Quellcode-Dateien 376 18.2.3 Modularisierung 376 18.2.4 Namensräume 377 18.2.5 Interpreter 377 18.2.6 Kommentare 378 18.2.7 Dokumentations-Strings 378 18.2.8 Bezeichner und Namen 378 18.2.9 Literale 379 18.3 Imperative Aspekte 381 18.3.1 Operatoren 381 18.3.2 Variablen 383 18.3.3 Objekte/Typen 384 18.3.4 Standard-Datentypen 384 18.3.5 Elementare Anweisungen 386 18.3.6 Zusammengesetzte Anweisungen 387 18.4 Ausnahmebehandlung 388 18.4.1 Benutzerdefinierte Ausnahmen 389 18.4.2 Finalize-Anweisung 389 18.5 Funktionen 389 18.5.1 Funktionsparameter 389 18.5.2 Funktionsaufruf 390 18.5.3 Rückgabewerte 390 18.5.4 Anonyme Funktionen 390 18.6 Klassen 391 18.6.1 Klasseninstanzen 391 18.6.2 Methoden 392 18.6.3 Vererbung 392 18.6.4 Datenkapselung 392 18.6.5 Überladen von Operatoren 392 18.7 Speicherverwaltung 393 18.8 Erweiterungen 393
19 Lisp 395
19.1 Übersicht 395 19.1.1 Entwicklung von LISP 395 19.1.2 Einsatz von LISP 395 19.1.3 Aufbau der Sprache 396 19.2 Datentypen und Variablen 396 19.2.1 Zahlen 396 19.2.2 Symbole und Variablen 397
Inhaltsverzeichnis Inhaltsverzeichnis
19.2.3 19.2.4 19.2.5 19.2.6 19.2.7 19.3 19.3.1 19.3.2 19.3.3 19.3.4 19.4 19.4.1 19.4.2 19.4.3 19.4.4 19.5 19.5.1 19.5.2
19.6
19.6.1 19.6.2 19.6.3
20 20.1
20.1.1 20.1.2 20.1.3
20.2
20.2.1 20.2.2 20.2.3 20.2.4 20.2.5
20.3
20.3.1 20.3.2 20.3.3 20.3.4 20.4 20.4.1 20.4.2 20.4.3
20.5
20.5.1 20.5.2 20.6 20.6.1 20.6.2
21 21.1 21.2
21.2.1 21.2.2 21.2.3 21.2.4
21.3
21.3.1 21.3.2
Listen 398 Arrays und Vektoren 398 Characters und Strings 399 Streams 400 Functions 400 Funktionen und Prädikate 400 Definition benannter Funktionen 400 Funktionen als Variablen 402 Lambda-Ausdrücke 402 Prädikate 403 Programmsteuerung 403 Neue Variablenumgebung 403 Bedingungen 404 Iteration 405 Mapping 406 Arbeiten mit Zahlen und Listen 406 Mathematische Funktionen 406 Funktionen für Listen, Vektoren und Strings 407 Input/Output und Dateien 407 Character Input/Output 407 Formatierter Output 408 Dateien 408
PROLOG 410
Übersicht 410 Entwicklung von PROLOG 410 Einsatz der Sprache 410 Aufbau der Sprache 411 Syntax 411 Allgemeine Syntax 411 Konstanten 412 Variablen 412 Strukturen 412 Operatoren 413 Programmstruktur 413 Fakten 413 Fragen 414 Regeln 414 Matching 416 Datenstrukturen und Arithmetik 417 Darstellung von Listen 417 Arbeiten mit Listen 417 Arithmetik 418 Backtracking und Cut 419 Zielerfüllung und Backtracking 419 Der Cut-Befehl 420 Eingabe und Ausgabe 422 Dateien 422 Befehle zur Ein- und Ausgabe 423
Smalltalk 424
Übersicht 424 Grundlagen der Syntax 425 Allgemeine Merkmale 425 Anweisungen 426 Variablen 428 Konstruktion neuer Instanzen 429 Klassen und Methoden 429 Klassen 429 Methoden 430
21.4 Blöcke, Verzweigungen und Iterationen . ..
21.4.1 Blöcke 21.4.2 Verzweigungen 21.4.3 Iterationen
21.5 Beschreibung elementarer Klassen 21.5.1 Klassen für einfache Objekte 21.5.2 Klassen für komplexe Objekte 21.6 Sonstiges
21.6.1 Events 21.6.2 Haltepunkte
21.6.3 Methodenaufruf beim Programmstart 21.6.4 Zeiger und Referenzen
22 Mathematica
22.1 Grundlagen 22.1.1 Packages 22.1.2 Online-Hilfe
22.2 Einfache Berechnungen 22.3 Variablen und Gleichungen 22.3.1 Nummerische Daten 22.3.2 Differenzialrechnung
22.4 Grafik und Sound in Mathematica 22.4.1 Funktionsplots
22.4.2 Grafikobjekte in Mathematica 22.4.4 Sound-Objekte in Mathematica 22.5 Programmieren mit Mathematica 22.5.1 Kontrollstrukturen
22.5.2 Zeichenketten 22.5.3 Bereiche und Listen 22.5.4 Vektoren und Matrizen 22.5.5 Definition von Funktionen 22.6 Ausgabe und Speicherung 22.6.1 Ausgabeformate
22.6.2 Export
22.7 Interna und Ergänzungen
23 Maple
23.1 Grundlagen 23.1.1 Online-Hilfe
23.2 Einfache Berechnungen 23.3 Variablen und Gleichungen
23.4 Grafische Darstellung von Funktionen . . . . 23.5 Programmieren mit Maple
23.5.1 Kontrollstrukturen 23.5.2 Zeichenketten
23.5.3 Bereiche, Listen und Mengen 23.5.4 Felder und Matrizen 23.5.5 Tabellen
23.5.6 Definition von Funktionen 23.6 Fehlersuche
23.7 Ausgabe und Speicherung
24 Matlab
24.1 Einfache Berechnungen
24.2 Datenspeicherung und Steuerungsbefehle 24.2.1 Speicherung von Sitzungen
24.2.2 Skriptfiles 24.2.3 Steuerungsbefehle
2 4 . 3 G r a f i s c h e D a r s t e l l u n g v o n F u n k t i o n e n . . . .
Inhalts
Listen 398 Arrays und Vektoren 398 Characters und Strings 399 Streams 400 Functions 400 Funktionen und Prädikate 400 Definition benannter Funktionen 400 Funktionen als Variablen 402 Lambda-Ausdrücke 402 Prädikate 403 Programmsteuerung 403 Neue Variablenumgebung 403 Bedingungen 404 teration 405 Mapping 406 Arbeiten mit Zahlen und Listen 406 Mathematische Funktionen 406
:unktionen für Listen, Vektoren und Strings 407 nput/Output und Dateien 407 Character Input/Output 407
:ormatierter Output 408 Jateien 408
>ROLOG 410
Ibersicht 410 ntwicklung von PFIOLOG 410 insatz der Sprache 410 ufbau der Sprache 411 yntax 411 llgemeine Syntax 411 onstanten 412 ariablen 412 rukturen 412 peratoren 413 rogrammstruktur 413 ikten
Inhaltsverzeichnis 15
a g e n . sgeln.
413 414 414 ätching 416 ätenstrukturen und Arithmetik 417 irstellung von Listen 417 aeiten mit Listen 417 thmetik 418 icktracking und Cut 419 ilerfüllung und Backtracking 419 r Cut-Befehl 420 igabe und Ausgabe 422 teien 422 'ehle zur Ein- und Ausgabe 423
nalltalk 424
ersieht 424 jndlagen der Syntax 425 lemeine Merkmale 425 veisungen 426 iablen 428 istruktion neuer Instanzen 429 ssen und Methoden 429
»sen 429 hoden 430
21.4 Blöcke, Verzweigungen und Iterationen 432 21.4.1 Blöcke 432 21.4.2 Verzweigungen 433 21.4.3 Iterationen 434 21.5 Beschreibung elementarer Klassen 436 21.5.1 Klassen für einfache Objekte 436 21.5.2 Klassen für komplexe Objekte 438 21.6 Sonstiges 440 21.6.1 Events 440 21.6.2 Haltepunkte 440 21.6.3 Methodenaufruf beim Programmstart 441 21.6.4 Zeiger und Referenzen 441
22 Mathematics 442
22.1 Grundlagen 442 22.1.1 Packages 443 22.1.2 Online-Hilfe 444 22.2 Einfache Berechnungen 444 22.3 Variablen und Gleichungen 446 22.3.1 Nummerische Daten 447 22.3.2 Differenzialrechnung 447 22.4 Grafik und Sound in Mathematica 448 22.4.1 Funktionsplots 448 22.4.2 Grafikobjekte in Mathematica 451 22.4.4 Sound-Objekte in Mathematica 453 22.5 Programmieren mit Mathematica 453 22.5.1 Kontrollstrukturen 453 22.5.2 Zeichenketten 454 22.5.3 Bereiche und Listen 455 22.5.4 Vektoren und Matrizen 456 22.5.5 Definition von Funktionen 457 22.6 Ausgabe und Speicherung 458 22.6.1 Ausgabeformate 458 22.6.2 Export 459 22.7 Interna und Ergänzungen 460
23 Maple 461
23.1 Grundlagen 461 23.1.1 Online-Hilfe 462 23.2 Einfache Berechnungen 463 23.3 Variablen und Gleichungen 464 23.4 Grafische Darstellung von Funktionen 465 23.5 Programmieren mit Maple 467 23.5.1 Kontrollstrukturen 467 23.5.2 Zeichenketten 469 23.5.3 Bereiche, Listen und Mengen 470 23.5.4 Felder und Matrizen 472 23.5.5 Tabellen 474 23.5.6 Definition von Funktionen 474 23.6 Fehlersuche 475 23.7 Ausgabe und Speicherung 476
24 Matlab 478
24.1 Einfache Berechnungen 478 24.2 Datenspeicherung und Steuerungsbefehle 480 24.2.1 Speicherung von Sitzungen 480 24.2.2 Skriptfiles 481 24.2.3 Steuerungsbefehle 481 24.3 Grafische Darstellung von Funktionen 482
Inhaltsverzeichnis
24.3.1 Einfache Plots 482 24.3.2 Grafikbefehle 484 24.3.3 Zeichnen von Oberflächen 485 24.4 Vektoren und Vektoroperationen 486 24.5 Matrizen 488 24.6 Vergleiche und Kontrollstrukturen 490 24.6.1 Logische Operatoren 490 24.6.2 for-Schleife 491 24.6.3 while -Schleife 491 24.6.4 if...then...else...end -Anweisungen 491 24.7 Funktion m-files 492 24.8 Verschiedene Funktionen 493 24.9 Zeitnahme 494