kirancodes.me
To Proof Maintenance & Beyond!

Sip4J: Statically Inferring Access Permission Contracts for Parallelising Sequential Java Programs

Ayesha Sadiq, Li Li, Yuan-Fang Li, Ijaz Ahmed, Sea Ling

Abstract

This paper presents Sip4J, a fully automated, scalable and effective tool to automatically generate access permission contracts for a sequential Java program. The access permission contracts, which represent the dependency of code blocks, have been frequently used to enable concurrent execution of sequential programs. Those permission contracts, unfortunately, need to be manually created by programmers, which is known to be time-consuming, laborious and error-prone. To mitigate those manual efforts, Sip4J performs inter-procedural static analysis of Java source code to automatically extract the implicit dependencies in the program and subsequently leverages them to automatically generate access permission contracts, following the Design by Contract principle. The inferred specifications are then used to identify the concurrent (immutable) methods in the program. Experimental results further show that Sip4J is useful and effective towards generating access permission contracts for sequential Java programs. The implementation of Sip4J has been published as an open-sourced project at https://github.com/Sip4J/Sip4J and a demo video of Sip4J can be found at https://youtu.be/RjMTIxlhHTg.

BibTeX
@inproceedings{Sadiq-al:ASE19,
  author    = {Ayesha Sadiq and
               Li Li and
               Yuan{-}Fang Li and
               Ijaz Ahmed and
               Sea Ling},
  title     = {{Sip4J:} Statically Inferring Access Permission Contracts for Parallelising Sequential Java Programs},
  booktitle = {ASE},
  pages     = {1098--1101},
  publisher = {{IEEE}},
  year      = {2019},
}

Related papers