skip to main content
10.1145/3464971.3468423acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article
Open access

IntelliJML: a JML plugin for IntelliJ IDEA

Published: 11 July 2021 Publication History

Abstract

Java code can be annotated with formal specifications using the Java Modelling Language (JML). Previous work has provided IDE plugins intended to help write JML, but mostly for the Eclipse IDE. We introduce IntelliJML, a JML plugin for IntelliJ IDEA, with a focus on ease of use and maintainability. Features such as syntax, semantic, and type checking, as well as syntax highlighting and code completion are integrated into the plugin. The plugin can also be extended in the future to add more features. The source code for the plugin can be found at https://gitlab.utwente.nl/fmt/intellijml.

References

[1]
2020. Deductive Software Verification: Future Perspectives - Reflections on the Occasion of 20 Years of KeY, W. Ahrendt, B. Beckert, R. Bubel, R. Hähnle, and M. Ulbrich (Eds.) (Lecture Notes in Computer Science, Vol. 12345). Springer. isbn:978-3-030-64353-9 https://doi.org/10.1007/978-3-030-64354-6
[2]
N. Chashikov. 2018. Extract Java support to a separate plugin in IntelliJ IDEA. https://youtrack.jetbrains.com/issue/IDEA-195719
[3]
D. Cok. 2014. OpenJML: Software verification for Java 7 using JML, OpenJDK, and Eclipse. In Proceedings 1st Workshop on Formal Integrated Development Environment, F-IDE 2014, Grenoble, France, April 6, 2014, C. Dubois, D. Giannakopoulou, and D. Méry (Eds.) (EPTCS, Vol. 149). 79–92. https://doi.org/10.4204/EPTCS.149.8
[4]
D. Cok. 2018. OpenJML. https://www.openjml.org/
[5]
Eclipse Foundation. 2021. Eclipse. https://www.eclipse.org/
[6]
S. Gonschorowski. 2018. OpenJML/ESC. https://plugins.jetbrains.com/plugin/11072-openjml-esc
[7]
JetBrains s.r.o. 2021. Implementing a Parser and PSI: IntelliJ Platform Plugin SDK. https://plugins.jetbrains.com/docs/intellij/implementing-parser-and-psi.html
[8]
JetBrains s.r.o. 2021. IntelliJ IDEA. https://www.jetbrains.com/idea/
[9]
JetBrains s.r.o. 2021. Program Structure Interface (PSI): IntelliJ Platform Plugin SDK. https://plugins.jetbrains.com/docs/intellij/psi.html
[10]
G. T. Leavens, E. Poll, C. Clifton, Y. Cheon, C. Ruby, D. Cok, P. Müller, J. Kiniry, P. Chalin, D. M. Zimmerman, and W. Dietl. 2013. JML Reference Manual. https://www.cs.ucf.edu/~leavens/JML/refman/jmlrefman.pdf
[11]
D. D. McCracken and E. D. Reilly. 2003. Backus-Naur Form (BNF). John Wiley and Sons Ltd., GBR. 129–131. isbn:0470864125
[12]
Oracle Corporation. 2021. Oracle Java SE Support Roadmap. https://www.oracle.com/java/technologies/java-se-support-roadmap.html
[13]
T. Parr. 2013. The Definitive ANTLR 4 Reference. The Pragmatic Programmers, LLC. isbn:9781934356999
[14]
Stack Overflow. 2019. Stack Overflow Developer Survey 2019. https://insights.stackoverflow.com/survey/2019
[15]
The KeY Project. 2018. Program Verification. https://www.key-project.org/applications/program-verification/ Accessed at 23th April 2021.
[16]
B. Vermeer. 2021. IntelliJ IDEA dominates the IDE market with 62% adoption among JVM developers. https://snyk.io/blog/intellij-idea-dominates-the-ide-market-with-62-adoption-among-jvm-developers/

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
FTfJP '21: Proceedings of the 23rd ACM International Workshop on Formal Techniques for Java-like Programs
July 2021
67 pages
ISBN:9781450385435
DOI:10.1145/3464971
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 the author(s) 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: 11 July 2021

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Error checking
  2. IDE
  3. IntelliJ IDEA
  4. Interactive Development Environment
  5. JML
  6. Java
  7. Java Modelling Language
  8. Plugin

Qualifiers

  • Research-article

Conference

ISSTA '21
Sponsor:

Acceptance Rates

Overall Acceptance Rate 51 of 75 submissions, 68%

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 508
    Total Downloads
  • Downloads (Last 12 months)174
  • Downloads (Last 6 weeks)22
Reflects downloads up to 01 Jan 2025

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media