다음 이전 차례

2. 내가 어떻게 아름답게 하는 프로그램을 믿을 수 있는가??!!

당신은 아름답게 하는 프로그램을 입증하고 신뢰하게 하는 과학적인 방법이 필요하다고 100% 장담한다. 방법을 서술할 것이다. 아름답게 하는 프로그램을 "훌륭하다고 믿고" 확실하다고 받아들이게 하려고 이 부분에서는 방법을 서술할 것이다.

BCPP같은 아름답게 하는 프로그램이 사실임을 입증하기 위해서, indent 혹은 cb 는 입력받은 소스코드를 형식화한 후 피해나 변경하지 않는다, 당신은 "검증 프로그램" 셸 스크립트를 사용하거나 다음의 기법을 사용할 수 있다 -

컴파일러를 이용해서 최초의 입력받은 소스 코드로 부터 오브젝트 코드를 생성하라 -


  g++ -c myprogram.cpp

여기서 g++ 은 GNU C++ 컴파일러이다. 이것은 myprogram.o 라는 오브젝트 파일을 만들 것이다.

이 파일을 지켜라 -


   mv myprogram.o myprogram_orig.o

bcpp를 실행시켜라 -


   bcpp myprogram.cpp

이 것은 형식화된 출력 프로그램 파일인 myprogram.cpp을 만들것이고 원래의 파일을 myprogram.cpp.orig로 만들 것이다. 새 파일을 컴파일 해라 -
   g++ -c myprogram.cpp

지금 두개의 오브젝트 파일을 비교하기 위해서 유닉스의 "diff" 명령을 사용해라 -


   diff myprogram.o myprogram_orig.o

이 파일 둘 다 같을 것을 것이다. bcpp는 완벽하게 작업한다는 것을 검증 했다. DOS나 Windows 95 에서 당신이 자유로운 Cygnus 인 Cygwin 를 사용하기 원할 것이다.

또한 당신은 컴파일러 에서 오브젝트 출력 대신에 어셈블러 출력을 사용할 수도 있다. 다음과 같이 -


    g++ -S myprogram.cpp

이것은 myprogram.s를 만든다. 검증 하려면 -
    diff myprogram.s myprogram_orig.s

이 스텝은 당신의 값진 소스 코드는 손상되지 않고 bcpp는 오직 올바른 형식화 작업만 하고 당신의 코드에 어떤 방법으로든 절대로 변경이나 피해를 하지 않는다는 것을 100% 보증한다. 이 방법은 'bcpp' 같은 아름답게 하는 프로그램은 전문어의 특성을 장담하고 보증하게 할 것이다.

이 두개의 스텝은 항상 당신이 bcpp, indent 혹은 cb같은 아름답게 하는 프로그램을 사용하도록 강력하게 추천한다.


다음 이전 차례