Exploiting points-to maps for de-/serialization code generation

  • Authors:
  • Selim Ciraci;Oreste Villa

  • Affiliations:
  • Pacific Northwest National Laboratory, Richland, WA;Pacific Northwest National Laboratory, Richland, WA

  • Venue:
  • Proceedings of the 28th Annual ACM Symposium on Applied Computing
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

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, developers have to manually change the source code to facilitate serialization code generation. Unfortunately, such changes hamper the benefits of code generation, and they are not localized. This paper 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 regarding 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.