ESC/자바

ESC/Java

ESC/Java(그리고 최근에는 ESC/Java2)인 "Extended Static Checker for Java"는 컴파일 시간자바 프로그램에서 일반적인 런타임 오류를 찾으려고 시도하는 프로그래밍 툴이다.[1]ESC/Java에서 사용되는 기본 접근방식을 확장 정적 점검이라고 하며, 이는 다양한 프로그램 제약조건의 정확성을 정적으로 점검하기 위한 다양한 기법을 지칭하는 집합적 명칭이다.예를 들어 정수 변수가 0보다 크거나 배열의 경계 사이에 있는 경우.이 기법은 ESC/Java(및 그 전신인 ESC/Modula-3)에서 개척되었으며, 형식 확인의 확장된 형태라고 생각할 수 있다.확장된 정적 점검은 대개 자동화된 정리 프로베론의 사용을 포함하며, ESC/Java에서는 Simplified 정리 프로베러를 사용하였다.

ESC/Java는 소리가 나지도 않고 완전하지도 않다.이는 의도적이었으며, 실제로 도구를 보다 유용하게 만들기 위해 프로그래머에게 보고된 오류 및/또는 경고의 수를 줄이는 것을 목적으로 한다.그러나 이는 다음과 같은 것을 의미한다: 첫째, ESC/Java가 잘못된 것으로 잘못 간주하는 프로그램(허위 긍정 프로그램이라고 함)이 있고, 둘째, 정확하다고 간주할 잘못된 프로그램(허위 부정 프로그램이라고 함)이 있다.후자 범주의 예로는 모듈식 산술 및/또는 멀티스레딩에서 발생하는 오류를 들 수 있다.

ESC/Java는 원래 Compaq Systems Research Center(SRC)에서 개발되었으며, SRC는 원래 확장 정적 체커인 ESC/Modula-3에 대한 작업이 1996년에 종료된 후 1997년에 이 프로젝트를 시작했다.2002년에 SRC는 ESC/Java 및 관련 도구에 대한 소스 코드를 발표했다.ESC/Java의 최근 버전은 JML(Java Modeling Language)을 기반으로 한다.사용자들은 특별하게 포맷된 주석이나 실용주의로 프로그램에 주석을 달아서 체크의 양과 종류를 조절할 수 있다.

Nijmegen 대학시스템 보안 그룹은 2004년까지 JML 사양 언어를 처리하는 ESC/Java의 확장 버전인 ESC/Java2의 알파 버전을 발표했다.2004년부터 2009년까지 ESC/Java2 개발은 2009년 코펜하겐의 IT대학으로, 2012년에는 덴마크 공과대학으로 이전한 University College Dublin의 KindSoftware Research Group에 의해 관리되었다.세월이 흐르면서 ESC/Java2는 다중 정리 프로버로 추론하는 능력, Eclipse와의 통합 등 많은 새로운 특징을 얻었다.

자바 1.8에서는 ESC/Java2의 후속 제품인 OpenJML을 이용할 수 있다.[2]출처는 https://github.com/OpenJML에서 확인할 수 있다.

[3]

참고 항목

참조

  1. ^ Flanagan, C.; Leino, K.R.M.; Lillibridge, M.; Nelson, G.; Saxe, J. B.; Stata, R. (2002). Extended static checking for Java. Proceedings of the Conference on Programming Language Design and Implementation. pp. 234–245. doi:10.1145/512529.512558. ISBN 1-58113-463-0.
  2. ^ "OpenJML download site on sourceforge".
  3. ^ "Java Modeling Language (JML) / Code / [r9606] /OpenJML/Trunk/OpenJML".
메모들

외부 링크