Grundlagen der funktionalen Programmierung by Peter Thiemann

By Peter Thiemann

Das vorliegende Buch entstand aus einer Reihe von Vorlesungen, die der Autor an der Eberhard-Karls-UniversWit Tiibingen unter dem Titel "Einfiihrung in die funktionale Programmierung" gehalten hat. Die Zielgruppe der Vorlesung sind Studenten im Hauptstudium, die Informatik als Haupt-oder Nebenfach belegen. Voraussetzungen zum Verstandnis des Buches sind die Kenntnis von Grundbe griffen der Informatik und Programmierung. Die Vorlesung, wie auch das Bueh, besteht aus zwei Tellen. Der erste inform um faBt die Kapitell bis eight und ist praktisch orientiert. Er gibt eine kurze Einfiihrung in die rein-funktionale Programmiersprache Gofer mit grundlegenden application mierteehniken und Methoden der Verifikation und Transformation von software males gefolgt von einem kurzen Ausbliek auf fortgesehrittene Techniken und wei terfiihrende Konzepte. Insbesondere wird auf Typklassen, Konstruktorklassen und Monaden, sowie rein-funktionale Ein-und Ausgabe eingegangen. Typklassen und Konstruktorklassen erlauben die kontrollierte Uberladung von benutzerde finierten Funktionen. Monaden ermoglichen unter anderem die Integration von in rein-funktionale Programmierspraehen. Variablen im herkommlichen Sinn 1m zweiten Teil (Kap. nine bis 15) werden verschiedene Modelle fur Semantik und Ausfiihrung funktionaler Programmiersprachen vorgestellt. Der inform umfaBt eine Einfiihrung in die Bereichstheorie, universelle Algebra, operationelle und de notationelle Semantik, und den Lambda-Kalkiil. Ferner werden Typen und ihre Semantik, die automatisehe Rekonstruktion von Typen, sowie Grundbegriffeder abstrakten Interpretation und Striktheitsanalyse behandelt. Damit verzahnt wer den Implementierungstechniken fur funktionale Programmiersprachen auf einer abstrakten Ebene diskutiert.

Show description

Read Online or Download Grundlagen der funktionalen Programmierung PDF

Best technology books

Fabricated: The New World of 3D Printing

Fabricated tells the tale of 3D printers, humble production machines which are bursting out of the manufacturing facility and into colleges, kitchens, hospitals, even onto the style catwalk. Fabricated describes our rising international of printable items, the place humans layout and 3D print their very own creations as simply as they edit a web record.

Parametric Optimization: Singularities, Pathfollowing and Jumps

This quantity is meant for readers who, whether or not they be mathematicians, employees in different fields or scholars, are accustomed to the elemental methods and strategies of mathematical optimization. the subject material is anxious with optimization difficulties during which a few or the entire person facts concerned depend upon one parameter.

Additional info for Grundlagen der funktionalen Programmierung

Example text

15 Definieren Sie einen algebraischen Datentyp HetList mit den Datenkonstruktoren Nil und Cons, so daB das folgende Programmstiick keine Typfehler enthiilt. hetlength Nil hetlength (Cons _ x) heterogeneous = Cons =0 1 + hetlength x 1 (Cons True (Cons 'X' Nil» Geben Sie Typdeklarationen fur hetlength und heterogeneous an! 3 Funktionen hoheren Typs Die bisher betrachteten Funktionen fuhren Operationen auf Datenobjekten wie Zahlen, Zeichen, booleschen Werten oder Listen aus. Dieses Kapitel geht auf Funktionen ein, deren Argumente oder Resultate selbst wieder Funktionen sind.

Ein Beispielliefert die folgende Funktion g (wobei fac :: Num a => a -> a die Fakultatsfunktion berechnet). g y = let x = fac y in (x, x) Die Funktion g hat den Typ Num a => a -> (a, a). Das Einfiigen der Tabellen liefert: g dictNum Y = let x dictNum = fac dictNum y in (x dictNum, x dictNum) Aus dem Wert der Variablen x, der im Programmtext wie der Wert von fac y aussah, ist eine Funktion geworden, die im Rumpf des let-Ausdrucks zweimal aufgerufen wird. Bei der Benutzung von Funktionsbindungen treten die erwahnten Probleme gewohnlich nicht auf.

Nahezu uneingeschrankte Uberladungsmoglichkeiten bietet die Spezifikationssprache OBJ [GM87a]. 1 Die Fibonacci-Zahlen sind definiert durch Fo = 0, Fl = 1, Fn+2 = Fn + Fn+l. Programmieren Sie die Funktion fib :: Int -) Int, so daB fib(n) = Fn ist. 2 Programmieren Sie Funktionen ggt, kgv :: Int -) Int -) Int zur Bestimmung des groBten gemeinsamen Teilers ggt bzw. des kleinsten gemeinsamen Vielfachen kgv zweier Zahlen. 3 Geben Sie mithilfe von Musteranpassung Definitionen fur die logischen Operationen and, or, xor :: (Bool, Bool) -) Bool an.

Download PDF sample

Rated 4.59 of 5 – based on 28 votes