2012-11-16 2 views
1

C 언어에 대한 순방향 자르기 도구를 찾고 있습니다. Google에서 검색 할 때 어떤 결과도 찾지 못했습니다.C 언어에 대한 전방 자르기 도구

위스콘신 프로그램 슬라이싱 도구 버전 1.1에 액세스하고 싶지만이 도구는 배포되지 않았을 것입니다. 다른 도구가 C 프로그램의 슬라이스 기능을 제공 할 수 있습니까?

+2

기록을 위해 나는이 질문을 "진짜 질문이 아닙니다"로 끝내는 것이 공평하다고 생각하지 않습니다. 정방향 슬라이싱, 불명확 한 프로그램 변환 기법에 관한 것이고, 답할 만하다. –

답변

4

오픈 소스 정적 분석 플랫폼 Frama-C는 impact analysis 기능을 가진 slicing 플러그인을 가지고 있습니다.

OP는 초기화의 영향이 계산되는 예제를 제안합니다. sum = 0;. 이 예는 다음과 같습니다

void main() { 
    int i = 1;  int sum = 0; 
    while (i<11) { 
     sum = add(sum, i); 
     i = add(i, 1); 
    } 
    printf("sum = %d\n", sum); 
    printf("i = %d\n", i); 
} 

static int add(int a, int b) 
{ 
    return(a+b); 
} 

사용할 명령 라인은 :

frama-c-gui -val t.c 

screenshot of impact analysis

좌측 열에있는 체크 표시가 있다는 것을 사용자에게 알려 기능이 add 인 선택된 명령. 분석기는 오른쪽 하단에 학술지에서이 예제를 사용하여 몇 가지 사소한 문제를 지적합니다.

+0

답장을 보내 주셔서 감사합니다. 실제로 Frama-C를 사용해 보았습니다.하지만이 기능을 찾지 못했습니다. 내가 필요한 주요 기능은 다음과 같습니다. 영향 분석. 선택한 명령문에 의존하는 명령문을보십시오. Frama-C의 슬라이싱 플러그인이 내 수요를 충족시킬 수 있습니까? – zhaizhiqiang

+1

@zhaizhiqiang이게 뭐예요? http://frama-c.com/impact.html –

+0

한 시간 전, 나는이 웹 사이트를 발견했다. 그러나 내 컴퓨터에 frama-c를 설치했지만이 플러그인은 없었고, 내 운영 체제는 우분투이고, 나는 frama-c를 sudo apt-get install frama-c와 함께 설치한다. 플러그인이 이렇게 작동 할 수 있습니까? 그림 2. sum = 0에서 앞으로 슬라이스; http://www.grammatech.com/research/papers/slicing/slicingWhitepaper.html – zhaizhiqiang