+ All Categories
Home > Documents > Graph Based Programming - Chair for Applied Software Engineering · Graph based programming •...

Graph Based Programming - Chair for Applied Software Engineering · Graph based programming •...

Date post: 16-Apr-2020
Category:
Upload: others
View: 10 times
Download: 0 times
Share this document with a friend
23
Graph Based Programming Enhancing Prototype Based Programming
Transcript
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Patr

ick

Ren

ner

06/2

004

Thanks for patience.


Recommended