Rui C. Gonçalves

Learn More
This paper presents the concept of pluggable parallelisation that allows scientists to develop sequential like codes that can take advantage of multi-core, cluster and grid systems. In this approach parallel applications are developed by plugging parallelisation patterns/idioms into scientific codes (e.g., sequential like codes), softening the move from(More)
This paper presents a framework that allows plugging or unplugging Grid-related features to legacy code. Those features can, for example, transform sequential-like code to a parallel version or even a distributed version. With this approach scientists could develop their code as they are used to, that is, they could spent their time programming as they are(More)
A classical approach to program derivation is to progressively extend a simple specification and then incrementally refine it to an implementation. We claim this approach is hard or impractical when reverse engineering legacy software architectures. We present a case study that shows <i>optimizations</i> and <i>pushouts</i>---in addition to refinements and(More)
ReFlO is a framework and interactive tool to record and systematize domain knowledge used by experts to derive complex pipe-and-filter (PnF) applications. Domain knowledge is encoded as transformations that alter PnF graphs by refinement (adding more details), flattening (removing modular boundaries), and optimization (substituting inefficient PnF graphs(More)
Mechanizing the development of hard-to-write and costly-to-maintain software is the core problem of automated software design. Encoding expert knowledge (a.k.a. dark knowledge) about a software domain is central to its solution. We assert that a solution can be cast in terms of the ideas of language design and engineering. Graph grammars can be a foundation(More)
Dataflow programs are widely used. Each program is a directed graph where nodes are computations and edges indicate the flow of data. In prior work, we reverse-engineered legacy dataflow programs by deriving their optimized implementations from a simple specification graph using graph transformations called refinements and optimizations. In MDE speak, our(More)
Dataflow programs (DfPs) are widely used in computing. They are complex graphs where nodes are computations and edges indicate the flow of data. We reverse engineered a legacy DfP by deriving its graph from an elementary graph using domain-specific transformations. (In MDE-speak, our derivations are PIM to PSM mappings). In this paper, we explain how our(More)
  • 1