2007 · 41 citations · 37 references
EngineeringSoftware EngineeringDynamic Method PuritySoftware AnalysisFormal VerificationHardware SecurityStatic CheckingProgram SlicingDynamic CompilationRuntime VerificationComputer EngineeringComputer ScienceDynamic Purity AnalysisStatic Program AnalysisPure MethodsPurity DefinitionsProgram AnalysisSoftware TestingFormal MethodsSystem Software
The pure methods in a program are those that exhibit functional or side effect free behaviour, a useful property in many contexts. However, existing purity investigations present primarily staticresults. We perform a detailed examination of dynamic method purityin Java programs using a JVM-based analysis. We evaluate multiple purity definitions that range from strong to weak, consider purity forms specific to dynamic execution, and accomodate constraintsimposed by an example consumer application, memoization. We show that while dynamic method purity is actually fairly consistent between programs, examining pure invocation counts and the percentage of the byte code instruction stream contained within some pure method reveals great variation. We also show that while weakening purity definitions exposes considerable dynamic purity, consumer requirements can limitthe actual utility of this information.
37
Extended static checking for Java
Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge et al. · 2002 · 1.3K citations
Points-to analysis in almost linear time
Bjarne Steensgaard · 1996 · 1.1K citations · Full text
Raja Vallée-Rai, Phong Co, Étienne Gagnon et al. · 2010 · 921 citations
Gary T. Leavens, Albert L. Baker, Clyde Ruby · ACM SIGSOFT Software Engineering Notes · 2006 · 781 citations
An overview of JML tools and applications
Lilian Burdy, Yoonsik Cheon, David R. Cok et al. · International Journal on Software Tools for Technology Transfer · 2004 · 707 citations
Xml Library, Engineering, Jml Tools +12