ESC/Java - ESC/Java

ESC/Java (og mer nylig ESC/Java2 ), "Extended Static Checker for Java", er et programmeringsverktøy som prøver å finne vanlige kjøretidsfeil i Java- programmer ved kompileringstidspunktet . Den underliggende tilnærmingen som brukes i ESC/Java omtales som utvidet statisk kontroll , som er et samlingsnavn som refererer til en rekke teknikker for statisk kontroll av riktigheten av ulike programbegrensninger. For eksempel at en heltallsvariabel er større enn null, eller ligger mellom grensene til en matrise . Denne teknikken var banebrytende innen ESC/Java (og forgjengeren, ESC/Modula-3) og kan betraktes som en utvidet form for typekontroll . Utvidet statisk kontroll innebærer vanligvis bruk av en automatisert setningsprover, og i ESC/Java ble Simplify theorem prover brukt.

ESC/Java er verken lyd eller komplett . Dette var tilsiktet og har som mål å redusere antall feil og/eller advarsler som er rapportert til programmereren, for å gjøre verktøyet mer nyttig i praksis. Imidlertid betyr det at: for det første er det programmer som ESC/Java feilaktig vil regne som feil (kjent som falsk-positive ); for det andre er det feil programmer det vil anse som riktige (kjent som falske-negative ). Eksempler i sistnevnte kategori inkluderer feil som oppstår fra modulær aritmetikk og/eller multitråding .

ESC/Java ble opprinnelig utviklet ved Compaq Systems Research Center (SRC). SRC startet prosjektet i 1997, etter at arbeidet med den opprinnelige utvidede statiske kontrolleren, ESC/Modula-3, ble avsluttet i 1996. I 2002 ga SRC ut kildekoden for ESC/Java og relaterte verktøy. Nylige versjoner av ESC/Java er basert på Java Modeling Language (JML). Brukere kan kontrollere mengden og typen kontroll ved å kommentere programmene sine med spesialformaterte kommentarer eller pragmer .

Den University of Nijmegen 's Security of Systems Group utgitt alfaversjoner av ESC / JAVA2, en utvidet versjon av ESC / Java som behandler JML spesifikasjon språk gjennom 2004. Fra 2004 til 2009, ESC / JAVA2 utvikling ble styrt av KindSoftware Research Group ved University College Dublin , som i 2009 flyttet til IT University of Copenhagen , og i 2012 til Danmarks tekniske universitet . Gjennom årene har ESC/Java2 fått mange nye funksjoner, inkludert evnen til å resonnere med flere teorem -bevisere og integrasjon med Eclipse .

OpenJML , etterfølgeren til ESC/Java2, er tilgjengelig for Java 1.8. Kilden er tilgjengelig på https://github.com/OpenJML

Se også

Referanser

Merknader

Eksterne linker