Visualisierung funktionaler programme
Download
1 / 19

Visualisierung funktionaler Programme - PowerPoint PPT Presentation


  • 113 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Visualisierung funktionaler Programme' - lonna


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 Strategie

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 Strategie

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Visualisierung von quicksort in kiel1
Visualisierung von Quicksort in KIEL Strategie

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Visualisierung von quicksort in kiel2
Visualisierung von Quicksort in KIEL Strategie

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Visualisierung von quicksort in kiel3
Visualisierung von Quicksort in KIEL Strategie

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Visualisierung von quicksort in kiel4
Visualisierung von Quicksort in KIEL Strategie

Seminar Softwaretechnik: Visualisierung von Softwareprozessen WS 2002/2003


Literatur
Literatur Strategie

  • 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