@inproceedings{JDalaSimple-Smit2025,
    title = {JDala - A Simple Capability System for Java},
    booktitle = {IEEE International Conference on Software Maintenance and Evolution (ICSME)},
    year = 2025,
    doi = "10.1109/ICSME64153.2025.00107",
    url = "https://michael.homer.nz/Publications/ICSME2025JD/JDalaSimple-Smit2025.pdf",
    author = {Smit, Quinten and Dietrich, Jens and Homer, Michael and Fawcet, Andrew and Noble, James},
    abstract = {
        Dala is a novel capability-based programming model that ensures
        data-race freedom while also supporting efficient inter-thread
        communication. While Dala has been designed to inform the design of
        future programming languages, the question arises whether existing
        languages can be retrofitted with Dala capabilities. We report such a
        design called JDala. In JDala, Dala capabilities are added to Java
        using annotations and interpreted using bytecode instrumentation. With
        some examples we demonstrate that by adding three simple annotations to
        the language, we can avoid concurrency bugs like deadlocks and
        unexpected program behaviour resulting from shallow immutability of
        Java standard library APIs.
    }
}
