Graph Based Programming - Chair for Applied Software Engineering · Graph based programming •...
Transcript of Graph Based Programming - Chair for Applied Software Engineering · Graph based programming •...
![Page 1: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/1.jpg)
Graph Based Programming
Enhancing Prototype Based Programming
![Page 2: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/2.jpg)
Patr
ick
Ren
ner
06/2
004
Outline
• Motivation
• Three pillars of graph based software development
• Past work
• Graph based programming
• Future work
![Page 3: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/3.jpg)
Patr
ick
Ren
ner
06/2
004
Motivation• Hypergraphs (Topic Maps, RDF, ..) from area
of knowledge representation
• Interest begun in SEP and Diplomarbeit
• Regarding hypergraphs as general and strong data model
• Idea: Translate principles from other data models into graphs and add specific semantic there
![Page 4: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/4.jpg)
Patr
ick
Ren
ner
06/2
004
The three pillars• Applications use graph based data models
(learn from relational databases, xml, ..)
• Software engineering process uses graph based artefact management (learn from models, processes, UML, IDEs, ...)
• Programmers use graph based programming languages (learn from object oriented programming, AOP, functional p., rule-based p., ...)
![Page 5: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/5.jpg)
Patr
ick
Ren
ner
06/2
004
Related work
• Chair:
• Sysiphus, REQuest, RAT (artefact management)
• Other:
• Areas: knowledge representation, programming languages, software engineering, ...
![Page 6: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/6.jpg)
Patr
ick
Ren
ner
06/2
004
Past work with hypergraphs
• Associative glossary (SEP 2001)
• Non typed visual database (DA 2002)
• Secure knowledge exchange (Medusa 2003)
• Configurable data models (SE Prakt 2003)
Graph based applications
![Page 7: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/7.jpg)
Patr
ick
Ren
ner
06/2
004
Associative Glossary(SEP 2001)
![Page 8: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/8.jpg)
Patr
ick
Ren
ner
06/2
004
Visual Database(DA 2002)
Patr
ick
Ren
ner
06/2
004
![Page 9: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/9.jpg)
Patr
ick
Ren
ner
06/2
004
Secure, Flexible Knowledge Exchange (Medusa)
Patr
ick
Ren
ner
06/2
004
![Page 10: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/10.jpg)
Patr
ick
Ren
ner
06/2
004
Configurable Data ExchangePa
tric
k R
enne
r 06
/200
4
![Page 11: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/11.jpg)
Patr
ick
Ren
ner
06/2
004
Graph based programming
• Main idea: Program execution is message passing through a graph along edges
• Inspired by Smallltalk, Self (prototype-based, type-less languages)
• Objects, classes and methods are all handled equally as nodes in the graph
![Page 12: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/12.jpg)
Patr
ick
Ren
ner
06/2
004
Classes and Instances
![Page 13: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/13.jpg)
Patr
ick
Ren
ner
06/2
004
Members and Associates
![Page 14: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/14.jpg)
Patr
ick
Ren
ner
06/2
004
Inheritance and Overriding
![Page 15: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/15.jpg)
Patr
ick
Ren
ner
06/2
004
Method evaluation Pa
tric
k R
enne
r 06
/200
4
![Page 16: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/16.jpg)
Patr
ick
Ren
ner
06/2
004
Instantiation
![Page 17: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/17.jpg)
Patr
ick
Ren
ner
06/2
004
Nesting and Delegation
![Page 18: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/18.jpg)
Patr
ick
Ren
ner
06/2
004
Dynamic Delegation
![Page 19: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/19.jpg)
Patr
ick
Ren
ner
06/2
004
Expected direct benefits
• Slim set of construction elements:Nodes, edges, delegation, nesting and sharing
• Combining features of prototypes and classes
• Dynamic nested overriding
![Page 20: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/20.jpg)
Patr
ick
Ren
ner
06/2
004
Implementation• Python prototype for message dispatching and
programming language
• GUI Prototype as IDE for graph creation and visualization
![Page 21: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/21.jpg)
Patr
ick
Ren
ner
06/2
004
Next steps
• Finishing prototype, playing around with new language
• Paper about graph based programming with Axel Rauschmayer (LMU) until July
• DFG Antrag for a “The three pillars” project with LMU until end of August
![Page 22: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/22.jpg)
Patr
ick
Ren
ner
06/2
004
Future ideas• Components:
• Prototypes, connectors and ports
• Interactive layout of architecture
• Meta programming:• expose meta protocol
• provide reflection (no meta constructs needed!)
• Advanced Typing:• Stateful multi-methods
• Views, perspectives
• Distributed applications
![Page 23: Graph Based Programming - Chair for Applied Software Engineering · Graph based programming • Main idea: Program execution is message passing through a graph along edges • Inspired](https://reader033.fdocuments.us/reader033/viewer/2022042120/5e9a276819c4253d646a9f17/html5/thumbnails/23.jpg)
Patr
ick
Ren
ner
06/2
004
Thanks for patience.