• Keine Ergebnisse gefunden

Graph Based Programming

N/A
N/A
Protected

Academic year: 2022

Aktie "Graph Based Programming"

Copied!
23
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Graph Based Programming

Enhancing Prototype Based Programming

(2)

Patrick Renner 06/2004

Outline

Motivation

Three pillars of graph based software development

Past work

Graph based programming

Future work

(3)

Patrick Renner 06/2004

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

(4)

Patrick Renner 06/2004

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., ...)

(5)

Patrick Renner 06/2004

Related work

Chair:

Sysiphus, REQuest, RAT (artefact management)

Other:

Areas: knowledge representation, programming languages, software engineering, ...

(6)

Patrick Renner 06/2004

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

(7)

Patrick Renner 06/2004

Associative Glossary

(SEP 2001)

(8)

Patrick Renner 06/2004

Visual Database (DA 2002)

Patrick Renner 06/2004

(9)

Patrick Renner 06/2004

Secure, Flexible Knowledge Exchange (Medusa)

Patrick Renner 06/2004

(10)

Patrick Renner 06/2004

Configurable Data Exchange

Patrick Renner 06/2004

(11)

Patrick Renner 06/2004

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

(12)

Patrick Renner 06/2004

Classes and Instances

(13)

Patrick Renner 06/2004

Members and Associates

(14)

Patrick Renner 06/2004

Inheritance and Overriding

(15)

Patrick Renner 06/2004

Method evaluation

Patrick Renner 06/2004

(16)

Patrick Renner 06/2004

Instantiation

(17)

Patrick Renner 06/2004

Nesting and Delegation

(18)

Patrick Renner 06/2004

Dynamic Delegation

(19)

Patrick Renner 06/2004

Expected direct benefits

Slim set of construction elements:

Nodes, edges, delegation, nesting and sharing

Combining features of prototypes and classes

Dynamic nested overriding

(20)

Patrick Renner 06/2004

Implementation

Python prototype for message dispatching and programming language

GUI Prototype as IDE for graph creation and visualization

(21)

Patrick Renner 06/2004

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

(22)

Patrick Renner 06/2004

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

(23)

Patrick Renner 06/2004

Thanks for patience.

Referenzen

ÄHNLICHE DOKUMENTE

[r]

– Small r will fully exploit the locality to reach the local optimum – Large r will result in bounces through the search space. (random search in the

– Each of the fittest individuals produce λ/µ children (mutation) – Join operation replaces the parents by the children. Hans-Paul Schwefel

– Each of the fittest individuals produce λ/µ children (mutation) – Join operation replaces the parents by the children. Hans-Paul Schwefel

• Subtree mutation: Replace a randomly chosen subtree with a randomly generated tree with a max-depth of 5 (pick leaf nodes 10% and inner nodes 90% of the time). • Replace a

– Implement hill climbing during the fitness assessment phase to revise and improve each individual at the time it’s assessed – Revised individuals replace original ones..

– With a different Pareto front distance measure, using the weakness of individuals (i.e., number of individuals that

– Use this fact by maintaining historical quality information of individual components (instead of entire individuals). • When