Programmers often have to implement custom graph traversals by hand as either there are no suitable text-book algorithms for their tasks, or their problems are too complex for a pure querying language that lacks modularity or static typing. Our new Scala-based graph traversal language uses an effectful stack that adapts monads and type classes. Arbitrary graph effect computations and graph processing rules can be defined and composed in a modular and statically typed way. Custom graph traversals become expressible in a concise notation, run both in-memory and on graph databases, and also allow for parallelization. We evaluate the usability of our approach by detecting occurences of an anti-pattern in a Java source code archive. Our approach...
Graph data management (also called NoSQL) has revealed beneficial characteristics in terms of flexibil...
Developing provably correct graph transformations is not a trivial task. Besides writing the code, a...
Large-scale graph processing, with its massive data sets, requires distributed processing. However, ...
Green-Marl is a domain specific language for efficient graph analysis. In this thesis, we define the...
AbstractThis paper introduces a general notion of static-port graph grammar (PGG) that encompasses e...
ABSTRACT Computation types such as functors, applicative functors and monads have become common abst...
The performance of contemporary object oriented languages depends on optimizations such as devirtual...
rogramming models based on algorithmic skeletons promise to raise the level of abstraction perceived...
In this report we present a type graph that models all executable constructs of the Java programming...
With the rise of metaprogramming in Scala, manipulating ASTs has become a daily job. Yet the standar...
Whether applications or libraries, today’s software heavily reuses existing code to build more gigan...
On distributed memory MIMD machines, ZPL is a powerful language for expressing parallel algorithms t...
Graph algorithms have been shown to possess enough parallelism to keep several computing resources b...
We describe a type and effect system for ensuring deterministic semantics in a concurrent object-ori...
Separation of concerns and loose coupling of concerns are important issues in software engin-nering....
Graph data management (also called NoSQL) has revealed beneficial characteristics in terms of flexibil...
Developing provably correct graph transformations is not a trivial task. Besides writing the code, a...
Large-scale graph processing, with its massive data sets, requires distributed processing. However, ...
Green-Marl is a domain specific language for efficient graph analysis. In this thesis, we define the...
AbstractThis paper introduces a general notion of static-port graph grammar (PGG) that encompasses e...
ABSTRACT Computation types such as functors, applicative functors and monads have become common abst...
The performance of contemporary object oriented languages depends on optimizations such as devirtual...
rogramming models based on algorithmic skeletons promise to raise the level of abstraction perceived...
In this report we present a type graph that models all executable constructs of the Java programming...
With the rise of metaprogramming in Scala, manipulating ASTs has become a daily job. Yet the standar...
Whether applications or libraries, today’s software heavily reuses existing code to build more gigan...
On distributed memory MIMD machines, ZPL is a powerful language for expressing parallel algorithms t...
Graph algorithms have been shown to possess enough parallelism to keep several computing resources b...
We describe a type and effect system for ensuring deterministic semantics in a concurrent object-ori...
Separation of concerns and loose coupling of concerns are important issues in software engin-nering....
Graph data management (also called NoSQL) has revealed beneficial characteristics in terms of flexibil...
Developing provably correct graph transformations is not a trivial task. Besides writing the code, a...
Large-scale graph processing, with its massive data sets, requires distributed processing. However, ...