Repräsentation von Datenstrukturen im -Kalkül Simon Pinkel, Betreuer: Guido Tack Seminar: Theorie kommunizierender Systeme: Der -Kalkül.

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

Imperative Programmierung
der Universität Oldenburg
Datenparallele Algorithmische Skelette in Muesli
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Frame-Logik Eine Einführung Andreas Glausch.
der Universität Oldenburg
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
Computergestützte Verifikation
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Alternative Darstellungsformen für Grammatiken Richard Göbel.
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Automatentheorie „Berechnungsmodell für logische Sprachen“
von Reaktionen und chemischen Suppen
Seminar zum pi-Kalkül betreut von Andreas Rossberg
Milners Kalkül Kommunizierender Systeme (CCS)
Gliederung Anforderungen Entwurf Beispiel Implementierung
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11-3 –Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Software zur Simulation von Multitaskingalgorithmen Michael Böhm – BSZW Rodewisch.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Imperative Programmierung
DbjFileManager Paul Fruntzek Michael Stanek. Überblick Unterste Ebene im Schichtenmodell Schnittstelle zum BS (Low-Level) Aufgabenbereich: Persistente.
Das Alternating-Bit-Protokoll: Modellierung und Verifikation
Einführung in die Programmierung mit Java
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Zusammenfassung Vorwoche
Seminar: Architekturbeschreibungssprachen
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
DVG Felder1 Felder. DVG Felder 2 Was sind Felder? Felder sind Reihungen aus endlich vielen Elementen gleichen Typs. Z.B.: Vektoren : (x.
Visualisierung funktionaler Programme
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Informatik 1 Übung 8. NACHBESPRECHUNG Übung 8 Rekursion Existiert Weg von A nach B?
Proseminar an der TU München Martin Levihn
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Informatik 1 Letzte Übung.
Dynamische Datentypen
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
Java Programmierung.
Informatik Datenstruktur Graph 3.1 Einfache Graphen
Informatik Datenstruktur Graph 3.2 Repräsentation von Graphen
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
„Wiederherstellung artenreichen Hochmoor-Grünlandes im Vergleich verschiedener Bewirtschaftungsvarianten“ Ergebnisse bodenchemischer und -biologischer.
Mensch – Maschine - Kommunikation
Kapitel 5Strukturen Information aus der realen Welt werden in einem informationsverarbeitenden System als Daten abgelegt. Diese stellen also eine (vereinfachte)
Christian Scheideler WS 2008
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Pointer, Arrays und verkettete Listen. Mehrdimensionale Arrays  Pointer auf ein Array von Pointern  int32 **matrix = new int32*[3];  matrix: Zeiger.
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
J. Nürnberger2007 / 081 Tabellenkalkulation (3) Arbeiten mit Formeln am Beispiel von OpenOffice.org Calc.
Datentypen: integer, char, string, boolean
Theorie der unscharfen Mengen
 Präsentation transkript:

Repräsentation von Datenstrukturen im -Kalkül Simon Pinkel, Betreuer: Guido Tack Seminar: Theorie kommunizierender Systeme: Der -Kalkül

Gliederung 1. Motivation 2. Darstellung von Daten im -Kalkül 3. Vergleich mit Alice 4. persistente Daten 5. Zusammenfassung

Motivation CCS-Buffer beliebiger Größe Erweiterung des Kalküls (Parameter) V endlich Darstellung im -Kalkül kompromisslos möglich!

Motivation CCS-Buffer beliebiger Größe 2 Kompromisse: Erweiterung des Kalküls (Parameter) Wertemenge V endlich Darstellung im -Kalkül kompromisslos möglich!

Motivation CCS-Buffer beliebiger Größe 2 Kompromisse: Erweiterung des Kalküls (Parameter) Wertemenge V endlich Darstellung im -Kalkül kompromisslos möglich!

Darstellung Idee: Werte selektieren aus einem Menu! Wert Programm Menu

Darstellung Idee: Werte selektieren aus einem Menu! Wert Programm Menu

Wahrheitswerte Beispiel: Wahrheitswerte

Wahrheitswerte Beispiel: Wahrheitswerte

Wahrheitswerte Beispiel: Wahrheitswerte

flüchtige Daten

Daten = unäre Abstraktionen

flüchtige Daten Daten = unäre Abstraktionen Argument = Lokation k

flüchtige Daten Daten = unäre Abstraktionen Argument = Lokation k Rechnung = Selektion aus gesendetem Menu

flüchtige Daten Daten = unäre Abstraktionen Argument = Lokation k Rechnung = Selektion aus gesendetem Menu Rechenoperationen = abgeleitete Operatoren: Berechnungen = Reaktionen( )

flüchtige Daten Daten = unäre Abstraktionen Argument = Lokation k Rechnung = Selektion aus gesendetem Menu Rechenoperationen = abgeleitete Operatoren: Berechnungen = Reaktionen( ) Rechnen zerstört die Datenstruktur

Zahlen parametrisierte Menueinträge 4 Programm Menu succ( k ) null 3 k...

Zahlen parametrisierte Menueinträge 4 Programm Menu succ( k ) null 3 k...

Zahlen Konstruktoren: Dekonstruktor: Beispiel:

Korrektheit von Numbercases

(für Zero analog)

Listen gleiche Idee wie bei Zahlen: Zeiger auf die Restliste und aktuelles Element Programm Menu nil cons( k,v1 ) [v1,v2,v3,v4] 1 2 [v2,v3,v4]... k v1 v2

Listen gleiche Idee wie bei Zahlen: Zeiger auf die Restliste und aktuelles Element Programm Menu nil cons( k,v1 ) v1 [v1,v2,v3,v4] 1 2 [v2,v3,v4]... k v2

Listen Konstruktor: Dekonstruktor: Beispiel:

Programmierung

Korrektheit von plus

2

2 *

2

2

Unsichere Operatoren bisher definierte Operationen waren Abstraktionen Argumente waren die Lokationen der zu verrechnenden Werte

Unsichere Operatoren bisher definierte Operationen waren Abstraktionen Argumente waren die Lokationen der zu verrechnenden Werte Unsicher! Beispiel:

Unsichere Operatoren bisher definierte Operationen waren Abstraktionen Argumente waren die Lokationen der zu verrechnenden Werte Unsicher! Beispiel: 2 mögliche Reaktionen:

Unsichere Operatoren bisher definierte Operationen waren Abstraktionen Argumente waren die Lokationen der zu verrechnenden Werte Unsicher! Beispiel: 2 mögliche Reaktionen: Lösung: Restriktion!

Vergleich mit Alice Beispiel:

Vergleich mit Alice Beispiel: versus let fun ccAppend (x::xs,ys) = x::(spawn ccAppend(xs,ys)) | ccAppend (nil,ys) = ys in spawn length (ccAppend(L,K)) end gleiche nebenläufige Berechnungsdisziplin

persistente Daten Daten verschwinden durch Benutzung *

persistente Daten Daten verschwinden durch Benutzung Replikation: *

persistente Daten Daten verschwinden durch Benutzung Replikation: Zahlen: *

persistent und veränderbar Neu! Programm darf auch selektieren! Nullref Programm Menu 3 v

persistent und veränderbar Neu! Programm darf auch selektieren! Ref(v) Programm Menu 3 vv

persistent und veränderbar Neu! Programm darf auch selektieren! Ref(v) Programm Menu 3 vv

persistent und veränderbar Neu! Programm darf auch selektieren! Nullref Programm Menu 3 vv

persistent und veränderbar Referenzen

persistent und veränderbar Referenzen veränderbare Zelle(sicher):

persistent und veränderbar Referenzen veränderbare Zelle(sicher): Operationen:

Zusammenfassung Daten empfangen ein Menu über eine Lokation k

Zusammenfassung Daten empfangen ein Menu über eine Lokation k Daten selektieren Menuoption

Zusammenfassung Daten empfangen ein Menu über eine Lokation k Daten selektieren Menuoption Darstellung beliebig großer Datenstrukturen (Zahlen/Listen) parametrisierte Menuoptionen

Zusammenfassung Daten empfangen ein Menu über eine Lokation k Daten selektieren Menuoption Darstellung beliebig großer Datenstrukturen (Zahlen/Listen) parametrisierte Menuoptionen Berechnungen sind nebenläufig, Restriktionen verhindern ungewollte Reaktionen

Zusammenfassung Daten empfangen ein Menu über eine Lokation k Daten selektieren Menuoption Darstellung beliebig großer Datenstrukturen (Zahlen/Listen) parametrisierte Menuoptionen Berechnungen sind nebenläufig, Restriktionen verhindern ungewollte Reaktionen Korrektheit der abgeleiteten Operatoren lässt sich meist durch Nachrechnen der Reaktionen zeigen

Zusammenfassung Daten empfangen ein Menu über eine Lokation k Daten selektieren Menuoption Darstellung beliebig großer Datenstrukturen (Zahlen/Listen) parametrisierte Menuoptionen Berechnungen sind nebenläufig, Restriktionen verhindern ungewollte Reaktionen Korrektheit der abgeleiteten Operatoren lässt sich meist durch Nachrechnen der Reaktionen zeigen Replikation verhindert Flüchtigkeit der Darstellung

Zusammenfassung Daten empfangen ein Menu über eine Lokation k Daten selektieren Menuoption Darstellung beliebig großer Datenstrukturen (Zahlen/Listen) parametrisierte Menuoptionen Berechnungen sind nebenläufig, Restriktionen verhindern ungewollte Reaktionen Korrektheit der abgeleiteten Operatoren lässt sich meist durch Nachrechnen der Reaktionen zeigen Replikation verhindert Flüchtigkeit der Darstellung Referenzen ergeben sich aus: Replikation Erweiterung des Protokolls

Referenzen Robin Milner, Communicating and Mobile Systems: the Pi-Calculus, Cambridge University Press, 1999Communicating and Mobile Systems: the Pi-Calculus The Alice Project,

Church-Encodings Darstellung von Daten im -Kalkül: