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 条
[41]   Exception analysis in the Java']Java Native Interface [J].
Li, Siliang ;
Tan, Gang .
SCIENCE OF COMPUTER PROGRAMMING, 2014, 89 :273-297
[42]   Static Analysis of Java']Java Dynamic Proxies [J].
Fourtounis, George ;
Kastrinis, George ;
Smaragdakis, Yannis .
ISSTA'18: PROCEEDINGS OF THE 27TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, 2018, :209-220
[43]   Numerical Static Analysis of Interrupt-Driven Programs via Sequentialization [J].
Wu, Xueguang ;
Chen, Liqian ;
Mine, Antoine ;
Dong, Wei ;
Wang, Ji .
2015 PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON EMBEDDED SOFTWARE (EMSOFT), 2015, :55-64
[44]   Specifying Imperative ML-Like Programs Using Dynamic Logic [J].
Maingaud, Severine ;
Balat, Vincent ;
Bubel, Richard ;
Haehnle, Reiner ;
Miquel, Alexandre .
FORMAL VERIFICATION OF OBJECT-ORIENTED SOFTWARE, 2011, 6528 :122-+
[45]   Static check analysis for Java']Java stack inspection [J].
Chang, Byeong-Mo .
ACM SIGPLAN NOTICES, 2006, 41 (03) :40-48
[46]   Recurrence analysis for effective array prefetching in Java']Java [J].
Cahoon, B ;
McKinley, KS .
CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2005, 17 (5-6) :589-616
[47]   Quantitative dynamic-memory analysis for Java']Java [J].
Garbervetsky, Diego ;
Yovine, Sergio ;
Braberman, Victor ;
Rouaux, Martin ;
Taboada, Alejandro .
CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2011, 23 (14) :1665-1678
[48]   Sip4J: Statically Inferring Access Permission Contracts for Parallelising Sequential Java']Java Programs [J].
Sadiq, Ayesha ;
Li, Li ;
Li, Yuan-Fang ;
Ahmed, Ijaz ;
Ling, Sea .
34TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2019), 2019, :1098-1101
[49]   Static Analysis of Runtime Errors in Interrupt-Driven Programs via Sequentialization [J].
Wu, Xueguang ;
Chen, Liqian ;
Mine, Antoine ;
Dong, Wei ;
Wang, Ji .
ACM TRANSACTIONS ON EMBEDDED COMPUTING SYSTEMS, 2016, 15 (04)
[50]   Static analysis of C programs via region-based memory model [J].
Dong, Yu-Kun ;
Jin, Da-Hai ;
Gong, Yun-Zhan ;
Xing, Ying .
Ruan Jian Xue Bao/Journal of Software, 2014, 25 (02) :357-372