Analysis of MiniJava Programs via Translation to ML
Martin Mariusz Lester

TL;DR
This paper proposes translating MiniJava programs into ML to leverage ML's analysis tools for verifying Java-like programs, aiming to improve reasoning techniques and tool robustness across language styles.
Contribution
It introduces a translation method from MiniJava to ML that uses only core ML features, enabling cross-language program analysis and verification.
Findings
Developed a translation from MiniJava to ML
Demonstrated potential for using ML tools for Java-like program analysis
Outlined future work for improving analysis techniques
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
