Sip4J

statically inferring access permission contracts for parallelising sequential Java programs

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

Research output: Chapter in Book/Report/Conference proceedingConference PaperOtherpeer-review

Abstract

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 timeconsuming, 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 at https://github.com/Sip4J/Sip4J and a demo video on of
Sip4J can be found at https://youtu.be/RjMTIxlhHTg.
Original languageEnglish
Title of host publicationThe 34th IEEE/ACM International Conference on Automated Software Engineering (ASE 2019)
EditorsJulia Lawall, Darko Marinov
Place of PublicationPiscataway NJ USA
PublisherIEEE, Institute of Electrical and Electronics Engineers
Number of pages4
Publication statusPublished - 2019
EventAutomated Software Engineering 2019 - San Diego, United States of America
Duration: 11 Nov 201915 Nov 2019
Conference number: 34th
https://2019.ase-conferences.org/

Conference

ConferenceAutomated Software Engineering 2019
Abbreviated titleASE 2019
CountryUnited States of America
CitySan Diego
Period11/11/1915/11/19
Internet address

Cite this

Sadiq, A., Li, L., Li, Y-F., Ahmed, I., & Ling, C. (2019). Sip4J: statically inferring access permission contracts for parallelising sequential Java programs. In J. Lawall, & D. Marinov (Eds.), The 34th IEEE/ACM International Conference on Automated Software Engineering (ASE 2019) Piscataway NJ USA: IEEE, Institute of Electrical and Electronics Engineers.
Sadiq, Ayesha ; Li, Li ; Li, Yuan-Fang ; Ahmed, Ijaz ; Ling, Chris. / Sip4J : statically inferring access permission contracts for parallelising sequential Java programs. The 34th IEEE/ACM International Conference on Automated Software Engineering (ASE 2019). editor / Julia Lawall ; Darko Marinov. Piscataway NJ USA : IEEE, Institute of Electrical and Electronics Engineers, 2019.
@inproceedings{42790a32dd334f6f9d105ab7825e160a,
title = "Sip4J: statically inferring access permission contracts for parallelising sequential Java programs",
abstract = "Abstract—This paper presents Sip4J, a fully automated, scalable and effective tool to automatically generate access permissioncontracts for a sequential Java program. The access permission contracts, which represent the dependency of code blocks, havebeen frequently used to enable concurrent execution of sequential programs. Those permission contracts, unfortunately, need to bemanually created by programmers, which is known to be timeconsuming, laborious and error-prone. To mitigate those manualefforts, Sip4J performs inter-procedural static analysis of Java source code to automatically extract the implicit dependencies in theprogram and subsequently leverages them to automatically generate access permission contracts, following the Design by Contractprinciple. The inferred specifications are then used to identify the concurrent (immutable) methods in the program. Experimentalresults 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 at https://github.com/Sip4J/Sip4J and a demo video on ofSip4J can be found at https://youtu.be/RjMTIxlhHTg.",
author = "Ayesha Sadiq and Li Li and Yuan-Fang Li and Ijaz Ahmed and Chris Ling",
year = "2019",
language = "English",
editor = "Julia Lawall and Darko Marinov",
booktitle = "The 34th IEEE/ACM International Conference on Automated Software Engineering (ASE 2019)",
publisher = "IEEE, Institute of Electrical and Electronics Engineers",
address = "United States of America",

}

Sadiq, A, Li, L, Li, Y-F, Ahmed, I & Ling, C 2019, Sip4J: statically inferring access permission contracts for parallelising sequential Java programs. in J Lawall & D Marinov (eds), The 34th IEEE/ACM International Conference on Automated Software Engineering (ASE 2019). IEEE, Institute of Electrical and Electronics Engineers, Piscataway NJ USA, Automated Software Engineering 2019, San Diego, United States of America, 11/11/19.

Sip4J : statically inferring access permission contracts for parallelising sequential Java programs. / Sadiq, Ayesha; Li, Li; Li, Yuan-Fang; Ahmed, Ijaz ; Ling, Chris.

The 34th IEEE/ACM International Conference on Automated Software Engineering (ASE 2019). ed. / Julia Lawall; Darko Marinov. Piscataway NJ USA : IEEE, Institute of Electrical and Electronics Engineers, 2019.

Research output: Chapter in Book/Report/Conference proceedingConference PaperOtherpeer-review

TY - GEN

T1 - Sip4J

T2 - statically inferring access permission contracts for parallelising sequential Java programs

AU - Sadiq, Ayesha

AU - Li, Li

AU - Li, Yuan-Fang

AU - Ahmed, Ijaz

AU - Ling, Chris

PY - 2019

Y1 - 2019

N2 - Abstract—This paper presents Sip4J, a fully automated, scalable and effective tool to automatically generate access permissioncontracts for a sequential Java program. The access permission contracts, which represent the dependency of code blocks, havebeen frequently used to enable concurrent execution of sequential programs. Those permission contracts, unfortunately, need to bemanually created by programmers, which is known to be timeconsuming, laborious and error-prone. To mitigate those manualefforts, Sip4J performs inter-procedural static analysis of Java source code to automatically extract the implicit dependencies in theprogram and subsequently leverages them to automatically generate access permission contracts, following the Design by Contractprinciple. The inferred specifications are then used to identify the concurrent (immutable) methods in the program. Experimentalresults 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 at https://github.com/Sip4J/Sip4J and a demo video on ofSip4J can be found at https://youtu.be/RjMTIxlhHTg.

AB - Abstract—This paper presents Sip4J, a fully automated, scalable and effective tool to automatically generate access permissioncontracts for a sequential Java program. The access permission contracts, which represent the dependency of code blocks, havebeen frequently used to enable concurrent execution of sequential programs. Those permission contracts, unfortunately, need to bemanually created by programmers, which is known to be timeconsuming, laborious and error-prone. To mitigate those manualefforts, Sip4J performs inter-procedural static analysis of Java source code to automatically extract the implicit dependencies in theprogram and subsequently leverages them to automatically generate access permission contracts, following the Design by Contractprinciple. The inferred specifications are then used to identify the concurrent (immutable) methods in the program. Experimentalresults 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 at https://github.com/Sip4J/Sip4J and a demo video on ofSip4J can be found at https://youtu.be/RjMTIxlhHTg.

M3 - Conference Paper

BT - The 34th IEEE/ACM International Conference on Automated Software Engineering (ASE 2019)

A2 - Lawall, Julia

A2 - Marinov, Darko

PB - IEEE, Institute of Electrical and Electronics Engineers

CY - Piscataway NJ USA

ER -

Sadiq A, Li L, Li Y-F, Ahmed I, Ling C. Sip4J: statically inferring access permission contracts for parallelising sequential Java programs. In Lawall J, Marinov D, editors, The 34th IEEE/ACM International Conference on Automated Software Engineering (ASE 2019). Piscataway NJ USA: IEEE, Institute of Electrical and Electronics Engineers. 2019