2004
DOI: 10.1007/978-3-540-27813-9_46
|View full text |Cite
|
Sign up to set email alerts
|

Formal Analysis of Java Programs in JavaFAN

Abstract: Abstract. JavaFAN is a Java program analysis framework, that can symbolically execute multithreaded programs, detect safety violations searching through an unbounded state space, and verify finite state programs by explicit state model checking. Both Java language and JVM bytecode analyses are possible. JavaFAN's implementation consists of only 3,000 lines of Maude code, specifying formally the semantics of Java and JVM in rewriting logic and then using the capabilities of Maude for efficient execution, search… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
58
0

Year Published

2005
2005
2018
2018

Publication Types

Select...
8

Relationship

1
7

Authors

Journals

citations
Cited by 66 publications
(58 citation statements)
references
References 5 publications
0
58
0
Order By: Relevance
“…We have presented our approach in terms of a sequential fragment of Java bytecode but the term rewriting setting is well suited to deal with the extension to concurrent aspects of Java and to the handling of exceptions [16,7].…”
Section: Resultsmentioning
confidence: 99%
See 2 more Smart Citations
“…We have presented our approach in terms of a sequential fragment of Java bytecode but the term rewriting setting is well suited to deal with the extension to concurrent aspects of Java and to the handling of exceptions [16,7].…”
Section: Resultsmentioning
confidence: 99%
“…From a bytecode Java program p, we have developed a prototype that automatically produces a TRS R modeling a significant part of the Java semantics (stacks, frames, objects, references, methods, heaps, integers) as well as the semantics of p. For the moment, exceptions and threads are not taken into account but they can be elegantly encoded using rewriting [16,7]. The formalization follows the structure of standard Java semantics formalizations [2,9].…”
Section: Formalization Of the Java Bytecode Semantics Using Rewritingmentioning
confidence: 99%
See 1 more Smart Citation
“…They also do not use the adapter code generation framework. On the other hand, Maude has been used to give semantics to a wide range of programming and modeling languages (see, e.g., [18,19]). Real-Time Maude is also used to analyze AADL [20] models of avionics embedded systems, but we are not aware of any translation of a synchronous real-time language into Maude or Real-Time Maude.…”
Section: Related Workmentioning
confidence: 99%
“…In our experience, it is often possible to specify most of the semantic axioms with equations, with relatively few rules needed for truly concurrent or nondeterministic features. For example, the semantics of the JVM described in [21,19] has about 300 equations and 40 rules; and that of Java described in [19] has about 600 equations but only 15 rules. A semantics for an ML-like language with threads given in [30] has only two rules.…”
Section: Unifying Sos and Equational Semanticsmentioning
confidence: 99%