Recognition of Dynamic Data Structures to Support Porting of Applications to the Cloud

In the present work we describe a methodology, based on previous research efforts, for the recognition of dynamic Data structures (queue, pipe, stack and similar) from sequential source code. The recognized structures are then mapped to Cloud services in order to support the semi-automatic restructuring of the source code. The objective is to support software developers in the complex process of porting their native applications to a Cloud Platform, through a general methodology which is independent from the target environment. A prototype tool which implements the methodology is also presented, with examples of the intermediate representations of source code (parallel skeletons, Cloud patterns) and of the Prolog rules which enable the recognition and the transformation process.

[1]  Gerald Lüttgen,et al.  Identifying Dynamic Data Structures by Learning Evolving Patterns in Memory , 2013, TACAS.

[2]  Stephen McCamant,et al.  Inference and enforcement of data structure consistency specifications , 2006, ISSTA '06.

[3]  Beniamino Di Martino Algorithmic Concept Recognition to Support High Performance Code Reengineering , 2004, IEICE Trans. Inf. Syst..

[4]  Laurie J. Hendren,et al.  Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C , 1996, POPL '96.

[5]  Murray Cole,et al.  Algorithmic Skeletons , 2006, Research Directions in Parallel Functional Programming.

[6]  Easwaran Raman,et al.  Recursive data structure profiling , 2005, MSP '05.

[7]  Nathan Clark,et al.  Toward Automatic Data Structure Replacement for Effective Parallelization , 2009 .

[8]  Martin C. Rinard,et al.  Goal-Directed Reasoning for Specification-Based Data Structure Repair , 2006, IEEE Transactions on Software Engineering.

[9]  Murray Cole,et al.  Algorithmic Skeletons: Structured Management of Parallel Computation , 1989 .

[10]  Reinhard Wilhelm,et al.  Parametric shape analysis via 3-valued logic , 1999, POPL '99.

[11]  Horacio González-Vélez,et al.  A survey of algorithmic skeleton frameworks: high‐level structured parallel programming enablers , 2010, Softw. Pract. Exp..

[12]  Frank Leymann,et al.  Cloud Computing Patterns , 2014, Springer Vienna.

[13]  Herbert Bos,et al.  MemPick: High-level data structure detection in C/C++ binaries , 2013, 2013 20th Working Conference on Reverse Engineering (WCRE).