Analysis of MiniJava']Java Programs via Translation to ML

被引:0
作者
Lester, Martin Mariusz [1 ]
机构
[1] Univ Reading, Dept Comp Sci, Reading, Berks, England
来源
PROCEEDINGS OF THE 21ST WORKSHOP ON FORMAL TECHNIQUES FOR JAVA-LIKE PROGRAMS (FTFJP 2019) | 2019年
关键词
!text type='Java']Java[!/text; ML; automated verification; static analysis; program transformation;
D O I
10.1145/3340672.3341119
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
MiniJava is a subset of the object-oriented programming language Java. Standard ML is the canonical representative of the ML family of functional programming languages, which includes F# and OCaml. Different program analysis and verification tools and techniques have been developed for both Java-like and ML-like languages. Naturally, the tools developed for a particular language emphasise accurate treatment of language features commonly used in that language. In Java, this means objects with mutable properties and dynamic method dispatch. In ML, this means higher order functions and algebraic datatypes with pattern matching. We propose to translate programs from one language into the other and use the target language's tools for analysis and verification. By doing so, we hope to identify areas for improvement in the target language's tools and suggest techniques, perhaps as used in the source language's tools, that may guide their improvement. More generally, we hope to develop tools for reasoning about programs that are more resilient to changes in the style of code and representation of data. We begin our programme by outlining a translation from MiniJava to ML that uses only the core features of ML; in particular, it avoids the use of ML's mutable references.
引用
收藏
页数:3
相关论文
共 50 条
  • [21] Automated checker for detecting method-hiding in Java']Java programs
    Nazr, M. Z. .
    Aqaradagh, M.
    Kozsk, T.
    INFOCOMMUNICATIONS JOURNAL, 2024, 16 (02): : 19 - 24
  • [22] OBLIVE: Seamless Code Obfuscation for Java']Java Programs and Android Apps
    Pizzolotto, Davide
    Fellin, Roberto
    Ceccato, Mariano
    2019 IEEE 26TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER), 2019, : 629 - 633
  • [23] Accelerating Java']JavaScript Static Analysis via Dynamic Shortcuts
    Park, Joonyoung
    Park, Jihyeok
    Youn, Dongjun
    Ryu, Sukyoung
    PROCEEDINGS OF THE 29TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '21), 2021, : 1129 - 1140
  • [24] Obfuscating Java']Java Programs by Translating Selected Portions of Bytecode to Native Libraries
    Pizzolotto, Davide
    Ceccato, Mariano
    2018 IEEE 18TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM), 2018, : 40 - 49
  • [25] Let this Graph Be Your Witness! An Attestor for Verifying Java']Java Pointer Programs
    Arndt, Hannah
    Jansen, Christina
    Katoen, Joost-Pieter
    Matheja, Christoph
    Noll, Thomas
    COMPUTER AIDED VERIFICATION, CAV 2018, PT II, 2018, 10982 : 3 - 11
  • [26] Static Analysis of JNI Programs via Binary Decompilation
    Park, Jihee
    Lee, Sungho
    Hong, Jaemin
    Ryu, Sukyoung
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (05) : 3089 - 3105
  • [27] On ML-Based Program Translation: Perils and Promises
    Malyala, Aniketh
    Zhou, Katelyn
    Ray, Baishakhi
    Chakraborty, Saikat
    2023 IEEE/ACM 45TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING-NEW IDEAS AND EMERGING RESULTS, ICSE-NIER, 2023, : 60 - 65
  • [28] Enhancing Java']Java Web Application Security: Injection Vulnerability Detection via Interprocedural Analysis and Deep Learning
    Zhang, Bing
    Zhi, Xu
    Wang, Meng
    Ren, Rong
    Dong, Jun
    IEEE TRANSACTIONS ON RELIABILITY, 2025,
  • [29] Provably correct control flow graphs from Java']Java bytecode programs with exceptions
    Amighi, Afshin
    Gomes, Pedro de Carvalho
    Gurov, Dilian
    Huisman, Marieke
    INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2016, 18 (06) : 653 - 684
  • [30] Equivalent Mutants in the Wild: Identifying and Efficiently Suppressing Equivalent Mutants for Java']Java Programs
    Kushigian, Benjamin
    Kaufman, Samuel J.
    Featherman, Ryan
    Potter, Hannah
    Madadi, Ardi
    Just, Rene
    PROCEEDINGS OF THE 33RD ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2024, 2024, : 654 - 665