Suchen und Finden

Titel

Autor/Verlag

Inhaltsverzeichnis

Nur eBooks für mein Endgerät anzeigen:

 

Newsletter

Programmierung - eine Einführung in die Informatik mit Standard ML

Programmierung - eine Einführung in die Informatik mit Standard ML

von: Gert Smolka

Oldenbourg Wissenschaftsverlag GmbH, 2008

ISBN: 9783486586015, 386 Seiten

Format: PDF, OL

Mac OSX,Windows PC Apple iPad, Android Tablet PC's Online-Lesen für: Linux,Mac OSX,Windows PC

Preis: 29,80 EUR

Ersparnis: 5,00 EUR

  • Marketing - Grundlagen für Studium und Praxis
    Moderne Marketingpraxis
    Graphentheorie - Eine anwendungsorientierte Einführung
    Praktische Informationstechnik mit C#
    Marketing und Marktforschung. Lehr- und Arbeitsbuch für die Aus- und Weiterbildung

     

     

     

     

 

Mehr zum Inhalt

Programmierung - eine Einführung in die Informatik mit Standard ML


 

Vorwort

6

Inhaltsverzeichnis

10

1 Schnellkurs

16

1.1 Programme

16

1.2 Interpreter

17

1.2.1 Mehrfachdeklaration

19

1.2.2 Ergebnisbezeichner

19

1.2.3 Fehlermeldungen

20

1.3 Prozeduren

20

1.4 Vergleiche und Konditionale

22

1.5 Lokale Deklarationen und Hilfsprozeduren

23

1.6 Tupel

24

1.7 KartesischeMuster

25

1.8 Ganzzahlige Division: Div undMod

27

1.9 Rekursion

28

1.10 Natürliche Quadratwurzeln und Akkus

31

1.11 Endrekursion

33

1.12 Divergenz

34

1.13 Festkomma- und Gleitkommazahlen

36

1.13.1 Festkommazahlen

36

1.13.2 Gleitkommazahlen

37

1.13.3 Rundungsfehler

38

1.13.4 Beispiel: Newtonsches Verfahren

39

1.14 Standardstrukturen

39

2 Programmiersprachliches

44

2.1 Darstellung und Aufbau von Phrasen

44

2.2 Syntaxübersicht

46

2.2.1 Wörter

47

2.2.2 Phrasen

47

2.3 Klammern

50

2.4 Freie Bezeichner und Umgebungen

52

2.5 Tripeldarstellung von Prozeduren

53

2.6 Semantische Zulässigkeit

55

2.7 Ausführung

56

2.7.1 Ausführung von Ausdrücken

57

2.7.2 Ausführung von Prozeduraufrufen

57

2.7.3 Ausführung von Deklarationen

58

2.7.4 Ausführung von Programmen

58

2.8 Verarbeitungsphasen eines Interpreters

59

2.9 Semantische Äquivalenz

60

3 Höherstufige Prozeduren

64

3.1 Abstraktionen und kaskadierte Prozeduren

64

3.2 Tripeldarstellung und Rekursion

66

3.3 Höherstufige Prozeduren

67

3.3.1 Bestimmte Iteration: Iter

69

3.3.2 Unbestimmte Iteration: First

70

3.4 Bestimmte Iteration: Polymorphes Iter

71

3.5 Polymorphe Typisierung

72

3.5.1 Monomorphe und polymorphe Bezeichner

74

3.5.2 Ambige Deklarationen

75

3.6 Typinferenz

77

3.7 Typen und Gleichheit

79

3.8 Bezeichnerbindung

80

3.8.1 Lexikalische Bindungen

80

3.8.2 Konsistente Umbenennung und Bereinigung

81

3.8.3 Statische und dynamische Bindungen

82

3.9 Spezifikation polymorpher Prozeduren

83

3.10 Abgeleitete Formen: Andalso, Orelse, Op

84

3.11 Beispiel: Primzahlberechnung

85

3.12 Komposition von Prozeduren

86

3.13 Bestimmte Iteration: Iterup und Iterdn

87

4 Listen und Strings

90

4.1 Die Datenstruktur der Listen

90

4.1.1 Listentypen

91

4.1.2 Nil und Cons

92

4.1.3 Regelbasierte Prozeduren

93

4.2 Append, Rev, Concat und Tabulate

94

4.3 Map, Filter, Exists und All

96

4.4 Faltung

98

4.5 Hd, Tl, Null, Nth und dasWerfen von Ausnahmen

101

4.6 Regelbasierte Prozeduren undMusterabgleich

103

4.6.1 Disjunkte und überlappende Regeln

105

4.6.2 Erschöpfende Regeln

106

4.6.3 Regelbasierte Abstraktionen und Case-Ausdrücke

107

4.6.4 Kaskadierte Prozedurdeklarationenmitmehreren

107

Regeln

107

4.7 Strings

108

4.7.1 Zeichenstandards

109

4.7.2 Lexikalische Ordnung

111

5 Sortieren

114

5.1 Sortieren durch Einfügen

114

5.2 Polymorphes Sortieren

116

5.3 Inverse und lexikalische Ordnungen

117

5.4 Sortieren durchMischen

118

5.5 EndlicheMengen und strikte Sortierung

120

5.6 Primzerlegung

123

5.7 Ein überraschender Laufzeitunterschied

125

6 Konstruktoren und Ausnahmen

128

6.1 Konstruktoren

128

6.2 Enumerationstypen

130

6.3 Typsynonyme

131

6.4 Darstellung arithmetischer Ausdrücke

132

6.4.1 Komponenten und Teilausdrücke

133

6.4.2 Darstellung von Umgebungen

134

6.5 Ausnahmen

137

6.5.1 Werfen von Ausnahmen

138

6.5.2 Fangen von Ausnahmen

138

6.5.3 Ausführungsreihenfolge und Sequenzialisierung

139

6.5.4 Konvention für die Spezifikation von Ausnahmen

140

6.5.5 Beispiel: Test aufMehrfachauftreten

140

6.6 Typkonstruktoren

141

6.7 Optionen

142

7 Bäume

146

7.1 Reine Bäume

146

7.1.1 Unterbäume

148

7.1.2 Gestalt arithmetischer Ausdrücke

148

7.1.3 Lexikalische Baumordnung

149

7.2 Teilbäume

150

7.3 Adressen

151

7.3.1 Nachfolger und Vorgänger

153

7.4 Größe und Tiefe

154

7.5 Faltung

156

7.6 Präordnung und Postordnung

156

7.6.1 Teilbaumzugriffmit Pränummern

158

7.6.2 Teilbaumzugriffmit Postnummern

159

7.6.3 Linearisierungen

159

7.7 Balanciertheit

160

7.8 FinitäreMengen und gerichtete Bäume

161

7.9 Markierte Bäume

164

7.10 Projektionen

166

8 Mengenlehre

170

8.1 Mengen

170

8.2 Aussagen

173

8.3 Tupel

175

8.4 Gerichtete Graphen

177

8.5 Binäre Relationen

181

8.5.1 Umkehrrelationen

182

8.5.2 Funktionale und injektive Relationen

182

8.5.3 Totale und surjektive Relationen

183

8.5.4 Komposition von Relationen

183

8.5.5 Reflexivität, Transitivität und Ordnungen

184

8.6 Funktionen

185

8.6.1 Lambda-Notation

186

8.6.2 Funktionsmengen

186

8.6.3 Klammersparregeln

187

8.6.4 Adjunktion

187

8.6.5 Bijektionen und Darstellungen

188

8.7 Terminierende Relationen

188

8.8 Strukturelle Terminierungsfunktionen

190

9 Mathematische Prozeduren

194

9.1 Beschreibung

194

9.2 Ausführung

196

9.3 Rekursionsfunktionen

199

9.4 Rekursionsbäume

200

9.5 Rekursionsrelationen

201

9.6 Ergebnisfunktionen

203

9.7 Der Korrektheitssatz

205

9.7.1 Endrekursive Bestimmung von Potenzen

206

9.7.2 Endrekursive Bestimmung von Fakultäten

206

9.8 Größte gemeinsame Teiler

208

9.9 Gaußsche Formel

209

9.10 Geschachtelte Rekursion

211

10 Induktive Korrektheitsbeweise

214

10.1 Induktion

214

10.2 Bestimmte Iteration

216

10.2.1 Iterative Bestimmung von Potenzen

217

10.2.2 Iterative Bestimmung der Fakultäten

218

10.2.3 Iterative Bestimmung der Fibonacci-Zahlen

218

10.3 Unbestimmte Iteration

219

10.4 Listen und strukturelle Induktion

221

10.5 Verstärkung der Korrektheitsaussage

223

10.6 Größenverhältnisse in Bäumen

225

10.7 Binäre Charakterisierung von Bäumen

228

11 Laufzeit rekursiver Prozeduren

232

11.1 Laufzeitfunktionen

232

11.2 Beispiele

233

11.2.1 Konkatenation von Listen

233

11.2.2 Faltung von Listen

234

11.2.3 Elementtest für Listen

234

11.3 Rekursive Darstellung von Laufzeitfunktionen

235

11.4 Laufzeiten und Komplexitäten

236

11.5 Komplexität von Laufzeitfunktionen

239

11.6 Naive Komplexitätsbestimmung

241

11.7 Nebenkosten

243

11.7.1 Beispiel: Aufteilen von Listen

244

11.7.2 Beispiel: Sortieren durch Einfügen

244

11.8 Polynomieller Rekurrenzsatz

247

11.9 Exponentieller Rekurrenzsatz

248

11.10 Logarithmischer Rekurrenzsatz

249

11.10.1 Beispiel: Schnelles Potenzieren

249

11.10.2 Beispiel: Euklidscher Algorithmus

250

11.11 Linear-logarithmischer Rekurrenzsatz

252

12 Statische und dynamische Semantik

256

12.1 Abstrakte Syntax

256

12.2 Abstrakte Grammatiken

258

12.3 Statische Semantik

259

12.4 Elaborierung

262

12.5 Dynamische Semantik und Evaluierung

265

12.6 Rekursive Prozeduren

270

13 Konkrete Syntax

274

13.1 Lexikalische Syntax für Typen

274

13.2 Phrasale Syntax für Typen

276

13.2.1 Affinität

277

13.2.2 Eindeutigkeit

278

13.3 Parsing durch rekursiven Abstieg

278

13.4 Parser für Typen

281

13.5 Arithmetische Ausdrücke

284

13.5.1 Lexer

284

13.5.2 Parser

286

13.6 Konkrete Syntax für F

289

14 Datenstrukturen

294

14.1 Strukturen

294

14.2 Implementierung von Datenstrukturen

295

14.3 Abstrakte Datenstrukturen

298

14.4 Vektoren

301

14.5 Binäre Suche

303

14.6 Schlangen und Darstellungsinvarianten

305

14.7 Funktoren

307

15 Speicher und veränderliche Objekte

312

15.1 Zellen und Referenzen

313

15.2 Speichereffekte

315

15.3 Imperative Prozeduren

317

15.4 Reihungen

319

15.5 Reversieren und Sortieren von Reihungen

322

15.6 Agenden

324

15.7 Effiziente imperative Schlangen

325

15.8 Schleifen

326

15.9 Lineare Speicher

329

15.10 Lineare Darstellung von Listen

331

15.11 Lineare Darstellung von Bäumen

333

15.12 Lineare Darstellung von Ausdrücken

335

15.13 Speicherplatzbedarf bei der Programmausführung

336

16 Stapelmaschinen und Übersetzer

340

16.1 Eine Stapelmaschine

340

16.2 Arithmetische Befehle

342

16.3 Sprungbefehle und Konditionale

345

16.4 Imperative Variablen und Schleifen

346

16.5 Verwendung der Halde

348

16.6 Ein Übersetzer

350

16.7 Prozedurbefehle

354

16.8 Aufrufrahmen

356

16.9 Endaufrufe

359

16.10 Dynamische Prozeduren

361

16.11 Automatische Speicherbereinigung

362

16.12 Voll- und Halbübersetzung

364

A Klammersparregeln

368

Literaturverzeichnis

370

Index

372