Visualisierung funktionaler programme
This presentation is the property of its rightful owner.
Sponsored Links
1 / 19

Visualisierung funktionaler Programme PowerPoint PPT Presentation


  • 74 Views
  • Uploaded on
  • Presentation posted in: General

Visualisierung funktionaler Programme. Ljudmila Nekrasova. Inhalt. Einleitung Ansätze der Visualisierung Abarbeitung imperativer Programme Abarbeitung funktionaler Programme Visualisierung funktionaler Programme Auswertung funktionaler Programme Ersetzungsstrategien

Download Presentation

Visualisierung funktionaler Programme

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Visualisierung funktionaler programme

Visualisierung funktionaler Programme

Ljudmila Nekrasova

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Inhalt

Inhalt

  • Einleitung

  • Ansätze der Visualisierung

    • Abarbeitung imperativer Programme

    • Abarbeitung funktionaler Programme

    • Visualisierung funktionaler Programme

  • Auswertung funktionaler Programme

    • Ersetzungsstrategien

  • Die von KIEL unterstützte Teilsprache von ML

  • Unterschiede zwischen Berechnungsregeln am Beispiel von Morris-Funktion mit Anwendung von KIEL

  • Visualisierung von Quicksort in KIEL

  • Zusammenfassung

  • Literatur

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Abarbeitung funktionaler programme

Abarbeitung funktionaler Programme

  • Ein funktionales Programm besteht aus der Definition von einem oder mehreren Rechenvorschriften

  • Ausführung eines funktionalen Programms bedeutet Auswertung eines Ausdrucks. Ein Ausdruck bzw. Term ist ein gewisser Aufruf des Rechenvorschrifts, wobei die formalen Parameter durch die jeweiligen Argumente substituiert werden

  • Die Auswertung geschieht durch Termersetzung. Mit jedem Ersetzungsschritt wird der Ausdruck immer mehr bis zum seinen Wert reduziert. Also besteht die Auswertung aus einer Folge von Reduktionsschritten, die am Ende , wenn keine Reduktion mehr möglich ist, zum Ergebnis (Wert des Ausdrucks) führt.

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Visualisierung funktionaler programme1

Visualisierung funktionaler Programme

  • Ein möglicher Ansatz der Visualisierung funktionaler Programme ist die Visualisierung der Termersetzung

  • Dazu wird ein Term als Baum dargestellt. Es wird also eine Graph-Repräsentation des Programms erstellt, die mittels Graph-Reduktion die Termersetzung nachbildet

    Beispiel:

    f ( x ) = (x + 1) * (x – 1 )

    Die Auswertung des Terms

    f ( 4 )

    Kann wie folgt dargestellt werden:

    @ * *

    f 4  + -  5 3  15

    4 1 4 1

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Visualisierung funktionaler programme2

Visualisierung funktionaler Programme

  • Es gibt zwei Arten von Auswertung:strikteundnicht strikteAuswertung

    @

    f x Funktion f wird auf Argument x angewandt

  • Strikte Auswertung: Das Argument x wird reduziert, bevor die Definition von f eingesetzt und weiter reduziert wird

  • Nicht-strikte Auswertung: Die Expansion der Definition von f, bevor das Argument x ausgewertet wird, kann unnötige Berechnungen ersparen. Ein Argument wird erst dann ausgewertet, wenn eine Funktion tatsächlich auf das Argument zugreifen muss

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Visualisierung funktionaler programme3

Visualisierung funktionaler Programme

Beispiel: nicht-strikte Funktion

fac (x) = if x = 0 then 1

else x * fac(x – 1)

fac (0) ist auszuwerten

@ if

@

 = 1 f -  1

f 0 0 0 0 1

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Auswertung funktionaler programme

Auswertung funktionaler Programme

  • Die im Expansionsschritt zu expandierenden Rechenvorschriftsaufrufe werden von der gewählten Ersetzungsart (Ersetzungsstrategie) bestimmt

  • Es gibt mehrere Ersetzungsarten

    Sei t ein Ausdruck . Sei b der Auswertungsbaum zu t

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Auswertung funktionaler programme1

Auswertung funktionaler Programme

  • Leftmost-Outermost-Strategie stellt nicht-strikte Auswertung dar und Leftmost-Innermost - strikte Auswertung

  • Allgemein ist die Leftmost-Innermost-Ersetzung effizienter als Leftmost-Outermost–Strategie, da Argumentausdrücke durch das Einsetzen von verdoppelt und damit mehrfach ausgewertet werden

    Beispiel: Gegeben ist folgende Funktion:

    double (x) = x + x

    Wenn der Ausdruck

    double (fac (125))

    nach Leftmost-Outermost-Strategie ausgewertet wird, dann erhalten wir folgenden Ausdruck

    fac ( 125) + fac (125)

    Also fac (125) muß doppelt ausgewertet werden

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Unterschiede zwischen berechnungsregeln am beispiel von morris funktion mit anwendung von kiel

Unterschiede zwischen Berechnungsregeln am Beispiel von Morris-Funktion mit Anwendung von KIEL

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Auswertung von morris funktion nach der leftmost innermost strategie

Auswertung von Morris-Funktion nach der Leftmost-Innermost Strategie

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Auswertung von morris funktion nach der leftmost innermost strategie1

Auswertung von Morris-Funktion nach der Leftmost-Innermost Strategie

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Auswertung von morris funktion nach der leftmost outermost strategie

Auswertung von Morris-Funktion nach der Leftmost-Outermost Strategie

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Quicksort

Quicksort

Das Quicksort –Algorithmus wird in ML wie folgt rekursiv definiert:

fun qsort (s: int list) : int list = if null(s) then s

else qsort( le (s, hd (s))) @ eq (s, hd (s)) @ qsort (gr (s, hd (s)) ;

Die Funktion qsort benutzt drei Hilfsfunktionen:

fun le (s: int list, n : int) : int list = if null (s) then nil

else if hd (s) < n then hd (s) :: le (tl (s), n)

else le (tl (s), n) ;

fun eq (s: int list, n : int) : int list = if null (s) then nil

else if hd (s) = n then hd (s) :: eq (tl (s), n)

else eq (tl (s), n) ;

fun gr (s : int list, n : int) : int list = if null (s) then nil

else if hd (s) > n then hd ( s) :: gr (tl (s), n)

else gr (tl (s), n) ;

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Visualisierung von quicksort in kiel

Visualisierung von Quicksort in KIEL

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Visualisierung von quicksort in kiel1

Visualisierung von Quicksort in KIEL

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Visualisierung von quicksort in kiel2

Visualisierung von Quicksort in KIEL

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Visualisierung von quicksort in kiel3

Visualisierung von Quicksort in KIEL

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Visualisierung von quicksort in kiel4

Visualisierung von Quicksort in KIEL

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Literatur

Literatur

  • Dr. Prof. Berghammer R. : KIEL Ein Computersystem zur Visualisierung der Auswertung von funktionalen Programmen. Inst. Für Informatik und Praktische Mathematik, Universität Kiel ( 1999)

  • Tiedt M. : Kiel interactive evaluation laboratory: Eine Arbeitsumgebung zur Visualisierung von Termersetzungssemantik. Diplomarbeit, Inst. Für Informatik und Praktische Mathematik,Universität Kiel (1999)

  • Dr. Hubwieser P. : Rekursion im didaktischen Querschnitt. Habilitationsvortrag (2000)

  • Koj J.: Eine graphische Programmierumgebung für deklarative Programmiersprachen. Diplomarbeit, Mathematisch-naturwissenschaftliche Fakultät der Rheinisch-Wesfälichen Technischen Hochschule Aachen (2000)

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


  • Login