Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3533767.3543294acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
short-paper

ESBMC-Jimple: verifying Kotlin programs via jimple intermediate representation

Published: 18 July 2022 Publication History

Abstract

We describe and evaluate the first model checker for verifying Kotlin programs through the Jimple intermediate representation. The verifier, named ESBMC-Jimple, is built on top of the Efficient SMT-based Context-Bounded Model Checker (ESBMC). It uses the Soot framework to obtain the Jimple IR, representing a simplified version of the Kotlin source code, containing a maximum of three operands per instruction. ESBMC-Jimple processes Kotlin source code together with a model of the standard Kotlin libraries and checks a set of safety properties. Experimental results show that ESBMC-Jimple can correctly verify a set of Kotlin benchmarks from the literature; it is competitive with state-of-the-art Java bytecode verifiers. A demonstration is available at https://youtu.be/J6WhNfXvJNc.

References

[1]
The Algorithms. 2022. TheAlgorithms/Kotlin (Github repository). https://github.com/TheAlgorithms/Kotlin
[2]
Stephan Arlt, Philipp Rümmer, and Martin Schäf. 2013. Joogie: From java through jimple to boogie. In Proceedings of the 2Nd ACM SIGPLAN International Workshop on State Of the Art in Java Program Analysis. 3–8.
[3]
Dirk Beyer. 2022. Progress on software verification: SV-COMP 2022. In TACAS. 13244, 375.
[4]
Edmund M Clarke, Thomas A Henzinger, Helmut Veith, and Roderick Bloem. 2018. Handbook of model checking. 10, Springer.
[5]
Lucas Cordeiro, Pascal Kesseli, Daniel Kroening, Peter Schrammel, and Marek Trtik. 2018. JBMC: A bounded model checking tool for verifying Java bytecode. In CAV. 183–190.
[6]
Kotlin Foundation. 2022. Kotlin Language. https://kotlinlang.org/
[7]
Bruno Góis Mateus and Matias Martinez. 2019. An empirical study on quality of Android applications written in Kotlin language. Empirical Software Engineering, 24, 6 (2019), 3356–3393.
[8]
Temesghen Kahsai, Philipp Rümmer, and Martin Schäf. 2019. JayHorn: A Java Model Checker - (Competition Contribution). In TACAS (LNCS, Vol. 11429). Springer, 214–218.
[9]
B. Fischer L. Cordeiro and J. MARQUES-SILVA. 2012. SMT-Based Bounded Model Checking for Embedded ANSI-C Software. IEEE Transactions on Software Engineering (TSE), 38 (2012), 957–974.
[10]
Felipe R Monteiro, Mikhail R Gadelha, and Lucas C Cordeiro. 2022. Model checking C++ programs. STVR, 32, 1 (2022), e1793.
[11]
Victor Oliveira, Leopoldo Teixeira, and Felipe Ebert. 2020. On the Adoption of Kotlin on Android Development: A Triangulation Study. In SANER. 206–216.
[12]
Raja Vallée-Rai, Phong Co, Etienne Gagnon, Laurie Hendren, Patrick Lam, and Vijay Sundaresan. 2010. Soot: A Java bytecode optimization framework. In CASCON First Decade High Impact Papers. 214–224.

Cited By

View all
  • (2024)ESBMC-Python: A Bounded Model Checker for Python ProgramsProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3685304(1836-1840)Online publication date: 11-Sep-2024
  • (2024)How secure is AI-generated code: a large-scale comparison of large language modelsEmpirical Software Engineering10.1007/s10664-024-10590-130:2Online publication date: 21-Dec-2024

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ISSTA 2022: Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis
July 2022
808 pages
ISBN:9781450393799
DOI:10.1145/3533767
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 18 July 2022

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Formal Verification
  2. Jimple
  3. Kotlin
  4. Software Model Checking

Qualifiers

  • Short-paper

Conference

ISSTA '22
Sponsor:

Acceptance Rates

Overall Acceptance Rate 58 of 213 submissions, 27%

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)26
  • Downloads (Last 6 weeks)2
Reflects downloads up to 29 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)ESBMC-Python: A Bounded Model Checker for Python ProgramsProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3685304(1836-1840)Online publication date: 11-Sep-2024
  • (2024)How secure is AI-generated code: a large-scale comparison of large language modelsEmpirical Software Engineering10.1007/s10664-024-10590-130:2Online publication date: 21-Dec-2024

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media