Funktionale Programmierung: Sprachdesign und by Peter Pepper, Petra Hofstedt

By Peter Pepper, Petra Hofstedt

Dieses Werk befasst sich mit Theorie und Praxis der modernen Funktionalen Programmierung. Dabei geht es vor allem um Fragen des Sprachdesigns und der zugehörigen Programmiertechniken. Viele der behandelten Konzepte weisen aber weit über die Funktionalen Sprachen hinaus, weil sie für alle Arten von Programmiersprachen appropriate sind.

Im Vordergrund stehen die Ideen und Techniken einer eleganten, sicheren und produktiven shape der Programmierung, die heute in Sprachen wie ML, HASKELL oder OPAL schon weitgehend möglich sind. Die Autoren gehen aber über den Rahmen der heute verfügbaren Sprachen hinaus und präsentieren Konzepte und Methoden, die erst in den Sprachen der nächsten new release verfügbar sein werden.

Die konkret behandelten Themen sind vielschichtig: Zum einen werden fortgeschrittene Programmiertechniken vorgestellt, wie z.B. die Verwendung unendlicher Datenstrukturen, Parser als Funktionen höherer Ordnung, die Lösung von Gleichungssystemen durch Fixpunktbildung usw. Es wird gezeigt, dass sich damit vielfältige Arten von Problemen auch aus der Numerischen Mathematik kompakt und based lösen lassen.

Es werden aber auch fortgeschrittene Sprachkonzepte diskutiert, wie z.B. systematische Modularisierung oder besonders ausdrucksstarke und versatile Formen der Typisierung. Besonderes Gewicht legt das Buch auf die Integration der Funktionalen Programmierung mit den Paradigmen der objektorientierten, der nebenläufigen und der parallelen Programmierung. In diesem Zusammenhang wird speziell auch die Bedeutung von Monaden analysiert und kritisch hinterfragt.

Das Buch wendet sich an Leser, die bereits Grundkenntnisse in der Funktionalen Programmierung besitzen und jetzt ihre Programmierfertigkeit verbessern möchten und tiefer in die theoretischen Grundlagen vordringen wollen.

Show description

Read or Download Funktionale Programmierung: Sprachdesign und Programmiertechnik PDF

Similar data modeling & design books

Modular Ontologies: Concepts, Theories and Techniques for Knowledge Modularization

This booklet constitutes a set of study achievements mature sufficient to supply a company and trustworthy foundation on modular ontologies. It provides the reader an in depth research of the cutting-edge of the study quarter and discusses the hot recommendations, theories and methods for wisdom modularization.

Advances in Object-Oriented Data Modeling

Till lately, details structures were designed round various company capabilities, corresponding to money owed payable and stock keep an eye on. Object-oriented modeling, against this, buildings structures round the data--the objects--that make up some of the enterprise capabilities. simply because information regarding a specific functionality is restricted to at least one place--to the object--the process is protected against the results of switch.

Introduction To Database Management System

Designed in particular for a unmarried semester, first path on database platforms, there are four elements that differentiate our booklet from the remaining. simplicity - more often than not, the know-how of database structures may be very obscure. There are

Extra resources for Funktionale Programmierung: Sprachdesign und Programmiertechnik

Example text

3 Semantik und Auswertungsstrategien Bei Sprachen unterscheidet man generell zwischen ihrer Syntax, also der Schreibweise der einzelnen Sprachkonstrukte, und ihrer Semantik, also der Bedeutung der einzelnen Sprachkonstrukte. Bei funktionalen Sprachen sollte man erwarten, dass die Definition der Semantik trivial ist, weil sie sich direkt auf den mathematischen Funktionsbegriff stützt. Im Prinzip ist das auch so, aber es gibt doch ein paar Subtilitäten, die wir kurz ansprechen müssen. Wir können diese grundlegenden Fragen der Semantik hier nur skizzieren; für weitergehende Informationen verweisen wir auf Spezialliteratur, z.

Produkttypen (Tupeltypen) Mit Produkttypen (auch Tupeltypen genannt) kann man logisch zusammengehörende Daten gleichen oder verschiedenen Typs in einem neuen Datentyp zusammenfassen. Beispiel: Ein Punkt im zweidimensionalen Raum ist durch seine Koordinaten x und y charakterisiert. Wir definieren den Tupeltyp Point : type Point = Real × Real −− ohne Konstruktoren und Selektoren Will man auf die einzelnen Elemente des Tupeltyps direkt zugreifen, kann man bei der Typdefinition auch Selektoren angeben.

1 def f (0) = 1 1 def f (1) = 1 1 def f (2n) = 1 1 0 · f (n) −− lineare Rekursion 1 def f (2n + 1) = 1 0 1 · f (n) −− lineare Rekursion 1 44 1 Grundlagen der Funktionalen Programmierung Da die Matrixmultiplikation assoziativ ist und ein neutrales Element hat, könnten wir die entsprechende Transformationregel anwenden. 1, also die erste Komponente des Resultatvektors, interessieren. 1 = (1 0) · f (n) Für f (n) können wir unsere Standardrechnung durchführen (was wir dem interessierten Leser als Übung überlassen), so dass am Ende das folgende System entsteht: def def def def def fusc(n) f (0, (z1 , z2 )) f (1, (z1 , z2 )) f (2n, (z1 , z2 )) f (2n + 1, (z1 , z2 )) = f (n, (1, 0)) = z1 + z2 = z1 + z2 = f (n, (z1 + z2 , z2 )) = f (n, (z1 , z1 + z2 )) Natürlich hätten wir diese weitere Einbettung auch gleich bei der ersten Hälfte der Entwicklung mit einbauen können, so dass wir direkt von der BaumRekursion zur Tail-Rekursion gekommen wären, ohne die lineare Rekursion zwischenzuschalten.

Download PDF sample

Rated 4.15 of 5 – based on 23 votes