March 18, 2013
Conference Paper

Exploiting Points-to Maps for De-/Serialization Code Generation

Abstract

Serialization code generators for C++ have restrictions on the implementation of dynamic arrays and void/function pointers. If the target program is not implemented with these restrictions, de- velopers have to manually change the source code to facilitate se- rialization code generation. Unfortunately, such changes hamper the benefits of code generation, and they are not localized. This pa- per presents the de-/serialization code generator Ser++ that does not restrict the implementation of these pointer types and, hence, eliminates the need to adapt the source code for serialization code generation. Ser++ can be considered an aspect weaver that i) traces the pointers, ii) identifies the statements in which properties regard- ing the serialization of pointer attributes can be extracted and, finally, iii) weaves the code to store these properties at runtime. It generates the de-/serialization functions in such a way that they serialize the pointer attributes according to the stored values of the properties. We have successfully used Ser++ to generate de- /serialization methods for a computer architecture and a power- flow simulator, without any modifications to the existing source code.

Revised: July 29, 2013 | Published: March 18, 2013

Citation

Ciraci S., and O. Villa. 2013. Exploiting Points-to Maps for De-/Serialization Code Generation. In Proceedings of the 28th Annual ACM Symposium on Applied Computing (SAC 2013), March 18-22, 2013, Coimbra, Portugal, 1712-1719. New York, New York:Association for Computing Machinery. PNNL-SA-92094. doi:10.1145/2480362.2480686