ControlFlag: 코드 디버깅 도구

인텔이 출시한 의 중요한 버전을 출시 제어 플래그 1.0, 이다 소프트웨어 제어 시스템 허용 코드에서 오류 및 이상 감지 대량의 기존 코드로 훈련된 머신 러닝 시스템을 사용하여 소스를 생성합니다.

기존의 정적 분석기와 달리 ControlFlag는 미리 정의된 규칙을 적용하지 않으며, 가능한 모든 옵션을 예측하기는 어렵지만 오히려 모든 유형의 건축물 사용 통계의 일부 많은 기존 프로젝트에서 언어.

연구에 따르면 코드에서 버그를 찾고 제거하는 것은 대부분 수동으로 수행되며 개발자 작업 시간의 50% 이상을 차지합니다. 

이 도구는 이러한 스타일 옵션을 식별하고 레이블을 지정하는 방법을 배우고 지식을 기반으로 버그 식별을 사용자 정의하고 권장 사항을 수정하여 두 개발자 팀 간의 스타일 편차일 수 있는 ControlFlag 잘못된 코드 특성을 최소화할 수 있습니다.

ControlFlag 정보

시스템 기존 소스 코드 매트릭스에서 통계 모델을 구축하여 학습 GitHub 및 유사한 공개 저장소에 공개됩니다. 훈련 단계에서 시스템은 코드에서 구조를 구축하기 위한 일반적인 템플릿을 결정하고 프로그램에서 코드 실행의 흐름을 반영하여 이러한 템플릿 간의 연결 구문 트리를 구축합니다.

그 결과, 분석된 모든 소스 텍스트의 개발 경험을 결합하여 참조 의사결정 트리가 형성됩니다. 테스트 중인 코드에 대해 유사한 패턴 설정 프로세스가 수행되며, 이는 참조 결정 트리와 비교됩니다. 인접한 분기와의 큰 불일치는 확인 중인 패턴의 이상을 나타냅니다.

특성의 버전 ControlFlag 1.0, C 템플릿에 대한 완전한 지원 강조 감지하는 능력과 조건부 "if"문의 이상.

예를 들어, 코드 조각을 구문 분석할 때 "if (x = 7) y = x;" 시스템은 "변수 == 숫자" 구문이 일반적으로 숫자 값을 비교하기 위해 "if" 문에서 사용됨을 감지하므로 "if" 문에서 "변수 = 숫자" 표시는 아마도 인쇄상의 오류로 인해 발생할 수 있습니다.

키트 GitHub에서 사용 가능한 C 저장소를 다운로드할 수 있는 스크립트를 제공합니다. 모델을 구축하는 데 사용합니다. 바로 사용할 수 있는 모델도 있으므로 코드 확인을 바로 시작할 수 있습니다.

시스템 기계 프로그래밍 연구 프로젝트의 일부입니다. (MPR)은 자동화로 인해 소프트웨어 개발에 필요한 시간을 1000배 줄이는 것이 주요 목표입니다.

특히 인텔은 현재 감지된 오류를 자동으로 수정하도록 Controlflag를 훈련시키기 위해 노력하고 있습니다. 또한 2020년에 회사는 MIT 연구소와 공동으로 개발한 MISIM 도구를 출시했습니다. 이 도구는 코드 조각을 연구하여 코드 조각의 의도를 이해할 수 있습니다. 이 시스템은 개발자에게 코드 효율성을 개선하는 방법을 제공하는 데 사용됩니다.

인텔은 "디버깅은 개발자와 업계 전체에 더 큰 피해를 줄 것으로 예상된다"고 말했다. 발표… "완전히 구현되면 ControlFlag는 테스트, 모니터링 및 디버깅과 같은 소프트웨어 개발의 번거로움을 자동화함으로써 이 문제를 완화하는 데 도움이 될 수 있습니다."

“패턴 인식에 대한 ControlFlag의 비지도 접근 방식의 주요 장점은 개발자의 스타일에 적응하는 방법을 본질적으로 배울 수 있다는 것입니다. 프로그램에는 평가해야 하는 제어 도구에 대한 입력이 제한되어 있기 때문입니다. ControlFlag는 독자가 단어 간의 완전한 차이점을 인식하고 영어 약어를 사용할 수 있는 것과 같은 방식으로 프로그래밍 언어의 인쇄상의 변형을 식별할 수 있습니다.

최종적으로 그것에 대해 더 많이 알고 싶다면 ControlFlag에 대해 C++로 작성되었으며 MIT 라이선스 및 해당 코드에 따라 오픈 소스임을 알아야 합니다. GitHub에서 호스팅됩니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.