ESC / Java - ESC/Java

ESC / Java (e mais recentemente ESC / Java2 ), o "Extended Static Checker for Java", é uma ferramenta de programação que tenta encontrar erros comuns de tempo de execução em programas Java em tempo de compilação . A abordagem subjacente usada em ESC / Java é conhecida como verificação estática estendida , que é um nome coletivo que se refere a uma variedade de técnicas para verificar estaticamente a exatidão de várias restrições de programa. Por exemplo, que uma variável inteira é maior que zero ou está entre os limites de uma matriz . Essa técnica foi pioneira em ESC / Java (e seu predecessor, ESC / Modula-3) e pode ser considerada uma forma estendida de verificação de tipo . A verificação estática estendida geralmente envolve o uso de um provador de teoremas automatizado e, em ESC / Java, o provador de teoremas Simplify foi usado.

ESC / Java não é bom nem completo . Isso foi intencional e visa reduzir o número de erros e / ou avisos reportados ao programador, a fim de tornar a ferramenta mais útil na prática. No entanto, isso significa que: em primeiro lugar, existem programas que ESC / Java irá erroneamente considerar como incorretos (conhecidos como falsos positivos ); em segundo lugar, existem programas incorretos que serão considerados corretos (conhecidos como falsos negativos ). Os exemplos na última categoria incluem erros decorrentes da aritmética modular e / ou multithreading .

ESC / Java foi originalmente desenvolvido no Compaq Systems Research Center (SRC). A SRC lançou o projeto em 1997, após trabalhar em seu verificador estático estendido original, ESC / Modula-3, encerrado em 1996. Em 2002, a SRC lançou o código-fonte para ESC / Java e ferramentas relacionadas. Versões recentes de ESC / Java são baseadas em Java Modeling Language (JML). Os usuários podem controlar a quantidade e os tipos de verificação anotando seus programas com comentários ou pragmas especialmente formatados .

A Universidade de Nijmegen de segurança dos sistemas de grupo lançou versões alfa do ESC / Java2, uma versão estendida do ESC / Java que processa a JML linguagem de especificação até 2004. De 2004 a 2009, o desenvolvimento ESC / Java2 foi gerido pelo Grupo de Pesquisa KindSoftware na University College Dublin , que em 2009 se mudou para a IT University of Copenhagen , e em 2012 para a Technical University of Denmark . Ao longo dos anos, ESC / Java2 ganhou muitos novos recursos, incluindo a capacidade de raciocinar com vários provadores de teoremas e integração com o Eclipse .

OpenJML , o sucessor de ESC / Java2, está disponível para Java 1.8. A fonte está disponível em https://github.com/OpenJML

Veja também

Referências

Notas

links externos