Model Driven Programming, Transformational programming and Software analysis in neo4j with graph rewrite

23 views
Skip to first unread message

Dmitry Ponyatov

unread,
Sep 1, 2017, 6:53:22 PM9/1/17
to Neo4j
I'm playing with neo4j as graph rewrite engine, targeted for MDA, automated programming and software analysis.

So my first attempt to model very simple Hello World UNIX program:

int main(int argc, char *argv[]) { printf("Hello World\n"); return 0; }

So I model very basic C language subset, and program build process using Makefile (with dependency tracking).

For first time I make this like graph model in neo4j:


Dmitry Ponyatov

unread,
Sep 1, 2017, 7:22:46 PM9/1/17
to Neo4j
So that is the first question: how can I represent
char *argv[]
as "argv is array of pointers to char arrays" taking in mind 2-arity limitations of neo4j data model ?

Dmitry Ponyatov

unread,
Sep 2, 2017, 4:13:23 AM9/2/17
to Neo4j
some notes on common ideas: article draft on graph driven programming approach using neo4j as GDP engine backend

Michael Hunger

unread,
Sep 2, 2017, 1:05:43 PM9/2/17
to ne...@googlegroups.com, Dirk Mahler, Markus Völter, Raoul-Gabriel Urma
Thanks a lot Dmitry, I will have a look.

In general you could work around it by elevanting such expressions to a Node.
Alternatively you can store some of the information on the relationship as just scalar properties.


There has been some work in this area by Raoul Urma in his thesis, there are also some tools which support part of the representation like jQAssistant and Joern. And I think Markus Völter has also looked into this from an MDA perspective.

On Sat, Sep 2, 2017 at 10:13 AM, Dmitry Ponyatov <dpon...@gmail.com> wrote:
some notes on common ideas: article draft on graph driven programming approach using neo4j as GDP engine backend


--
You received this message because you are subscribed to the Google Groups "Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email to neo4j+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages