디컴파일된 소스 코드의 가독성을 평가하는 방법과 연산 장치, 그리고 이를 기록한 기록 매체
Methods for evaluating readability of decompiled source codes, computing device, and recording medium therefor
특허 요약
실시예의 디컴파일된 소스 코드의 가독성을 평가하는 방법은 동일한 바이너리에 대해 n개 이상의 디컴파일러를 통해 디컴파일 코드를 추출하는 제1 단계, 상기 제1 단계에서 추출된 디컴파일 코드로부터 k개의 특징들로 구성된 평가 지표에 매칭되는 특징별 개수를 추상 구문 트리(AST; Abstract Syntax Tree)를 통해 추출하는 제2 단계, 상기 제2 단계의 결과를 기초로 디컴파일러별 디컴파일된 코드 간의 정량적 차이를 나타내는 상대적 가독성 점수를 도출하는 제3 단계를 포함한다.
청구항
번호청구항
1

동일한 바이너리에 대해 n개 이상의 디컴파일러를 통해 디컴파일 코드를 추출하는 제1 단계; 상기 제1 단계에서 추출된 디컴파일 코드로부터 k개의 특징들로 구성된 평가 지표에 매칭되는 특징별 개수를 추상 구문 트리(AST; Abstract Syntax Tree)를 통해 추출하는 제2 단계;상기 제2 단계의 결과를 기초로 디컴파일러별 디컴파일된 코드 간의 정량적 차이를 나타내는 상대적 가독성 점수를 도출하는 제3 단계;를 포함하는, 디컴파일된 소스 코드의 가독성을 평가하는 방법.

2

제1항에 있어서,상기 평가 지표는, 아래의 표와 같은, 디컴파일된 소스 코드의 가독성을 평가하는 방법.

3

제1항에 있어서,상기 제1 단계는, 상기 디컴파일 코드를 추출한 후에, 프로그램 언어에 맞게 잘못된 구문 오류를 수정하는 과정을 더 포함하는, 디컴파일된 소스 코드의 가독성을 평가하는 방법.

4

제1항에 있어서,상기 상대적 가독성 지수는,0 내지 1의 범위를 가지며, 각 특징별로 상대적 중요도를 나타내는 가중치를 반영해 계산된, 디컴파일된 소스 코드의 가독성을 평가하는 방법.

5

제1항에 있어서,상기 가중치는,초기에는 모든 특징에 대해 동일한 가중치가 부여되나,사용자 설문을 토대로 특정 특징의 가중치는 다른 것보다 높게 조정되고,모든 가중치의 합이 1이 되도록 정규화되는,디컴파일된 소스 코드의 가독성을 평가하는 방법.

6

제5항에 있어서,상기 가중치는, 상기 평가 지표의 특징 개수가 조정되는 경우에, 남은 특징들의 가중치를 재조정하는,디컴파일된 소스 코드의 가독성을 평가하는 방법.

7

제3항에 있어서,상기 상대적 가독성 지수는,모든 디컴파일러에서 같은 값은 값을 가진 특징은 제거하고,상기 평가 지표의 특징별로 모든 디컴파일러 중 가장 좋은 값(최소값 또는 최대값)과의 차이를 계산하고,계산된 차이를 지수 감소 함수를 사용해서 0과 1 사이의 점수로 변환하고,특징의 성질에 따라 점수를 조정하고,조정된 점수에 각 특징별 가중치를 적용하여 모든 특징의 가중 점수를 합산해 최종 점수를 계산하는,디컴파일된 소스 코드의 가독성을 평가하는 방법.

8

제1항 내지 제5항 중 어느 한 항에 기재된 디컴파일된 소스 코드의 가독성을 평가하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.

9

n개의 특징을 포함하는 평가 지표를 저장하는 메모리;수학적 연산을 통해 상기 평가 지표에 근거해서 디컴파일러별 상대적 가독성 지수를 연산하는 프로세서를 포함하고,상기 프로세서는,상기 평가 지표를 근거로, 동일한 바이너리에 대해 n개 이상의 디컴파일러를 통해 디컴파일 코드를 추출하는 제1 과정과, 상기 제1 과정에서 추출된 디컴파일 코드로부터 k개의 특징들로 구성된 평가 지표에 매칭되는 특징별 개수를 추상 구문 트리(AST; Abstract Syntax Tree)를 통해 추출하는 제2 과정과, 상기 제2 과정의 결과를 기초로 디컴파일러별 디컴파일된 코드 간의 정량적 차이를 나타내는 상대적 가독성 점수를 도출하는 제3 과정을 통해서 디컴파일러별 상대적 가독성 지수를 연산하는, 연산 장치.

10

제9항에 있어서,상기 평가 지표는, 아래의 표와 같은, 연산장치.

11

제9항에 있어서,상기 제1 과정은, 상기 디컴파일 코드를 추출한 후에, 프로그램 언어에 맞게 잘못된 구문 오류를 수정하는 과정을 더 포함하는, 연산 장치.

12

제9항에 있어서,상기 상대적 가독성 지수는,0 내지 1의 범위를 가지며, 각 특징별로 상대적 중요도를 나타내는 가중치를 반영해 계산된, 연산 장치.

13

제9항에 있어서,상기 가중치는,초기에는 모든 특징에 대해 동일한 가중치가 부여되나,사용자 설문을 토대로 특정 특징의 가중치는 다른 것보다 높게 조정되고,모든 가중치의 합이 1이 되도록 정규화되는,연산 장치.

14

제13항에 있어서,상기 가중치는, 상기 평가 지표의 특징 개수가 조정되는 경우에, 남은 특징들의 가중치를 재조정하는,연산 장치.

15

제11항에 있어서,상기 상대적 가독성 지수는,모든 디컴파일러에서 같은 값은 값을 가진 특징은 제거하고,상기 평가 지표의 특징별로 모든 디컴파일러 중 가장 좋은 값(최소값 또는 최대값)과의 차이를 계산하고,계산된 차이를 지수 감소 함수를 사용해서 0과 1 사이의 점수로 변환하고,특징의 성질에 따라 점수를 조정하고,조정된 점수에 각 특징별 가중치를 적용하여 모든 특징의 가중 점수를 합산해 최종 점수를 계산하는,연산 장치.