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 条
  • [1] Detecting Build Conflicts in Software Merge for Java']Java Programs via Static Analysis
    Towqir, Sheikh Shadab
    Shen, Bowen
    Gulzar, Muhammad Ali
    Meng, Na
    PROCEEDINGS OF THE 37TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, ASE 2022, 2022,
  • [2] Static Analysis of Multi-Staged Programs via Unstaging Translation
    Choi, Wontae
    Aktemur, Baris
    Yi, Kwangkeun
    Tatsuta, Makoto
    ACM SIGPLAN NOTICES, 2011, 46 (01) : 81 - 92
  • [3] Static Analysis of Multi-Staged Programs via Unstaging Translation
    Choi, Wontae
    Aktemur, Baris
    Yi, Kwangkeun
    Tatsuta, Makoto
    POPL 11: PROCEEDINGS OF THE 38TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2011, : 81 - 92
  • [4] Investigating Static Analysis Errors in Student Java']Java Programs
    Edwards, Stephen H.
    Kandru, Nischel
    Rajagopal, Mukund B. M.
    PROCEEDINGS OF THE 2017 ACM CONFERENCE ON INTERNATIONAL COMPUTING EDUCATION RESEARCH (ICER 17), 2017, : 65 - 73
  • [5] Observations on the assured evolution of concurrent Java']Java programs
    Greenhouse, A
    Halloran, TJ
    Scherlis, WL
    SCIENCE OF COMPUTER PROGRAMMING, 2005, 58 (03) : 384 - 411
  • [6] Mockingbird: A Framework for Enabling Targeted Dynamic Analysis of Java']Java Programs
    Lockwood, Derrick
    Holland, Benjamin
    Kothari, Suresh
    2019 IEEE/ACM 41ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2019), 2019, : 39 - 42
  • [7] Analysis of Java']JavaScript Programs: Challenges and Research Trends
    Sun, Kwangwon
    Ryu, Sukyoung
    ACM COMPUTING SURVEYS, 2017, 50 (04)
  • [8] From CIL to Java']Java bytecode: Semantics-based translation for static analysis leveraging
    Ferrara, Pietro
    Cortesi, Agostino
    Spot, Fausto
    SCIENCE OF COMPUTER PROGRAMMING, 2020, 191
  • [9] Precise String Analysis for Java']JavaScript Programs Using Automata
    Almashfi, Nabil
    Lu, Lunjin
    Picker, Koby
    Maldonado, Christian
    2019 8TH INTERNATIONAL CONFERENCE ON SOFTWARE AND COMPUTER APPLICATIONS (ICSCA 2019), 2019, : 159 - 166
  • [10] Completeness of Abstract Domains for String Analysis of Java']JavaScript Programs
    Arceri, Vincenzo
    Olliaro, Martina
    Cortesi, Agostino
    Mastroeni, Isabella
    THEORETICAL ASPECTS OF COMPUTING - ICTAC 2019, 2019, 11884 : 255 - 272