Publicação
A Java typestate checker supporting inheritance
| dc.contributor.author | Bacchiani, Lorenzo | |
| dc.contributor.author | Bravetti, Mario | |
| dc.contributor.author | Giunti, Marco | |
| dc.contributor.author | Mota, João | |
| dc.contributor.author | Ravara, António | |
| dc.contributor.institution | NOVALincs | |
| dc.contributor.pbl | Elsevier Science B.V., Amsterdam. | |
| dc.date.accessioned | 2022-11-08T22:14:03Z | |
| dc.date.available | 2022-11-08T22:14:03Z | |
| dc.date.issued | 2022-09-01 | |
| dc.description | This work was partially supported by the EU H2020 RISE programme under the Marie Skłodowska-Curie grant agreement No. 778233 (BehAPI) and by NOVA LINCS UIDB/04516/2020/TRA/BIM/07 ) via the Portuguese Fundação para a Ciência e a Tecnologia. Publisher Copyright: © 2022 Elsevier B.V. | |
| dc.description.abstract | Detecting programming errors 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. Leveraging on the observation that in Object-Oriented Programming (OOP) it is natural to define stateful objects where the safe use of methods depends on their internal state, we present Java Typestate Checker (JATYC), a tool that verifies Java source code with respect to typestates. A typestate defines the object's states, the methods that can be called in each state, and the states resulting from the calls. The tool statically verifies that when a Java program runs: sequences of method calls obey to object's protocols; objects' protocols are completed; null-pointer exceptions are not raised; subclasses' instances respect the protocol of their superclasses. To the best of our knowledge, this is the first OOP tool that simultaneously tackles all these aspects. | en |
| dc.description.version | publishersversion | |
| dc.description.version | published | |
| dc.format.extent | 8 | |
| dc.format.extent | 281566 | |
| dc.identifier.doi | 10.1016/j.scico.2022.102844 | |
| dc.identifier.issn | 0167-6423 | |
| dc.identifier.other | PURE: 46064614 | |
| dc.identifier.other | PURE UUID: 07a496a6-feb7-4991-8332-cc2450b83576 | |
| dc.identifier.other | Scopus: 85135482139 | |
| dc.identifier.other | ORCID: /0000-0001-8074-0380/work/122412567 | |
| dc.identifier.uri | http://hdl.handle.net/10362/145315 | |
| dc.identifier.url | https://www.scopus.com/pages/publications/85135482139 | |
| dc.language.iso | eng | |
| dc.peerreviewed | yes | |
| dc.relation | Funding Information: info:eu-repo/grantAgreement/FCT/6817 - DCRRNI ID/UIDB%2F04516%2F2020/PT | |
| dc.subject | Behavioral types | |
| dc.subject | Object-oriented programming | |
| dc.subject | Subtyping | |
| dc.subject | Type-checking | |
| dc.subject | Typestates | |
| dc.subject | Software | |
| dc.subject | Computational Theory and Mathematics | |
| dc.subject | General Computer Science | |
| dc.subject | SDG 9 - Industry, Innovation, and Infrastructure | |
| dc.title | A Java typestate checker supporting inheritance | en |
| dc.type | journal article | |
| degois.publication.title | Science Of Computer Programming | |
| degois.publication.volume | 221 | |
| dspace.entity.type | Publication | |
| rcaap.rights | openAccess |
Ficheiros
Principais
1 - 1 de 1
A carregar...
- Nome:
- A_Java_typestate_checker_supporting_inheritance.pdf
- Tamanho:
- 274.97 KB
- Formato:
- Adobe Portable Document Format
