Back to Search
Start Over
Java Typestate Checker
- Source :
- Lecture Notes in Computer Science ISBN: 9783030781415, COORDINATION, Lecture Notes in Computer Science, 23th International Conference on Coordination Languages and Models (COORDINATION), 23th International Conference on Coordination Languages and Models (COORDINATION), Jun 2021, Valletta, Malta. pp.121-133, ⟨10.1007/978-3-030-78142-2_8⟩
- Publication Year :
- 2021
- Publisher :
- Springer International Publishing, 2021.
-
Abstract
- Part 2: Communications: Types and Implemenations; International audience; Detecting programming errors and vulnerabilities in software is increasingly important, and building tools that help developers with this task is a crucial area of investigation on which the industry depends. In object-oriented languages, one naturally defines stateful objects where the safe use of methods depends on their internal state; the correct use of objects according to their protocols is then enforced at compile-time by an analysis based on behavioral types.We present Java Typestate Checker (JATYC), a tool based on the Checker Framework that verifies Java programs with respect to typestates. These define the object’s states, the methods that can be called in each state, and the states resulting from the calls. The tool offers the following strong guarantees: sequences of method calls obey to object’s protocols; completion of objects’ protocols; detection of null-pointer exceptions; and control of the sharing of resources through access permissions.To the best of our knowledge, there are no research or industrial tools that offer all these features. In particular, the implementation of sharing control in a typestate-based tool seems to be novel, and has an important impact on programming flexibility, since, for most programs, the linear discipline imposed by behavioral types is too strict.Sharing of objects is enabled by means of an assertion language incorporating fractional permissions; to lift from programmers the burden of writing the assertions, JATYC infers all of these by building a constraint system and solving it with Z3, producing general assertions sufficient to accept the code, if these exist.
- Subjects :
- Java
Computer science
typestates
Inference
02 engineering and technology
computer.software_genre
Task (project management)
[INFO.INFO-NI]Computer Science [cs]/Networking and Internet Architecture [cs.NI]
Software
Behavioral types
Stateful firewall
020204 information systems
0202 electrical engineering, electronic engineering, information engineering
[INFO]Computer Science [cs]
computer.programming_language
access permissions
inference
Object-oriented programming
business.industry
Programming language
object-oriented programming
020207 software engineering
State (computer science)
Compiler
business
computer
Subjects
Details
- ISBN :
- 978-3-030-78141-5
- ISBNs :
- 9783030781415
- Database :
- OpenAIRE
- Journal :
- Lecture Notes in Computer Science ISBN: 9783030781415, COORDINATION, Lecture Notes in Computer Science, 23th International Conference on Coordination Languages and Models (COORDINATION), 23th International Conference on Coordination Languages and Models (COORDINATION), Jun 2021, Valletta, Malta. pp.121-133, ⟨10.1007/978-3-030-78142-2_8⟩
- Accession number :
- edsair.doi.dedup.....f04332f3de829aae1c5310ce7d71b134
- Full Text :
- https://doi.org/10.1007/978-3-030-78142-2_8