ESC/Java- ESC/Java

ESC/Java (en meer recentelijk ESC/Java2 ), de "Extended Static Checker for Java", is een programmeertool die tijdens het compileren veelvoorkomende runtime-fouten in Java- programma's probeert te vinden . De onderliggende benadering die in ESC/Java wordt gebruikt, wordt uitgebreide statische controle genoemd , wat een verzamelnaam is die verwijst naar een reeks technieken voor het statisch controleren van de juistheid van verschillende programmabeperkingen. Bijvoorbeeld dat een integer-variabele groter is dan nul, of tussen de grenzen van een array ligt . Deze techniek werd ontwikkeld in ESC/Java (en zijn voorganger, ESC/Modula-3) en kan worden gezien als een uitgebreide vorm van typecontrole . Uitgebreide statische controle omvat meestal het gebruik van een geautomatiseerde stellingbewijzer en in ESC/Java werd de Simplify stellingbewijzer gebruikt.

ESC/Java is niet correct en ook niet compleet . Dit was opzettelijk en heeft tot doel het aantal fouten en/of waarschuwingen dat aan de programmeur wordt gemeld te verminderen, om de tool in de praktijk bruikbaarder te maken. Het betekent echter wel dat: ten eerste zijn er programma's die ESC/Java ten onrechte als onjuist beschouwen (bekend als false-positives ); ten tweede zijn er onjuiste programma's die het als correct beschouwt (bekend als false-negatives ). Voorbeelden in de laatste categorie zijn fouten die voortkomen uit modulaire rekenkunde en/of multithreading .

ESC/Java is oorspronkelijk ontwikkeld in het Compaq Systems Research Center (SRC). SRC lanceerde het project in 1997, nadat het werk aan hun oorspronkelijke uitgebreide statische checker, ESC/Modula-3, eindigde in 1996. In 2002 gaf SRC de broncode voor ESC/Java en gerelateerde tools vrij. Recente versies van ESC/Java zijn gebaseerd op de Java Modeling Language (JML). Gebruikers kunnen de hoeveelheid en soorten controles controleren door hun programma's te annoteren met speciaal opgemaakte opmerkingen of pragma's .

De Security of Systems- groep van de Universiteit van Nijmegen heeft tot en met 2004 alfaversies van ESC/Java2 uitgebracht, een uitgebreide versie van ESC/Java die de JML- specificatietaal verwerkt . Van 2004 tot 2009 werd de ontwikkeling van ESC/Java2 beheerd door de KindSoftware Research Group aan University College Dublin , dat in 2009 verhuisde naar de IT-universiteit van Kopenhagen , en in 2012 naar de Technische Universiteit van Denemarken . In de loop der jaren heeft ESC/Java2 veel nieuwe functies gekregen, waaronder de mogelijkheid om te redeneren met meerdere stellingbewijzers en integratie met Eclipse .

OpenJML , de opvolger van ESC/Java2, is beschikbaar voor Java 1.8. De bron is beschikbaar op https://github.com/OpenJML

Zie ook

Referenties

Opmerkingen:

Externe links