• Title/Summary/Keyword: 제어흐름그래프

Search Result 60, Processing Time 0.026 seconds

Constructing Control Flow Graph with Exceptional Control Flow for Java (Java의 예외 제어 흐름을 포함한 제어 흐름 그래프 생성)

  • 조장우;이정수
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2002.10d
    • /
    • pp.649-651
    • /
    • 2002
  • 제어 흐름 그래프는 프로그램의 문장들간의 제어 흐름 정보를 표현하는 방법이다. 제어 흐름 정보는 프로그램 분석과 테스팅 분야에서 필요로 하는 정보이다. 제어 흐름 정보가 정확할수록 정확한 분석 결과와 테스팅 결과를 구할 수 있다. 실제 자바 프로그램에서 예외 구문의 사용빈도가 많으므로 예외 제어 흐름을 제어 흐름 정보에 포함해야 한다. 본 논문에서는 특정 분석에 무관하게 예외 제어 흐름을 포함하는 제어 흐름 그래프를 생성하는 일반적인 방법을 제안한다. 그리고 예외 제어 흐름을 포함하는 제어 흐름 그래프를 생성할때, 정상 흐름과 예외 흐름을 분리해서 하는 방법을 제안한다.

  • PDF

A Method to Construct Control Flow Graphs for Java Programs by Decoupling Exception Flow Analysis from Normal Flow Analysis (예외 흐름 분석을 정상 흐름 분석과 분리하여 Java프로그램에 대한 제어 흐름 그래프를 생성하는 방법)

  • 조장우;창병모
    • Journal of KIISE:Software and Applications
    • /
    • v.31 no.5
    • /
    • pp.643-650
    • /
    • 2004
  • Control flow graph is used for Performing many Program-analysis techniques, such as data-flow and control-dependence analysis, and software-engineering techniques, such as program slicing and testings. For these analyses to be safe and useful, the CFG should incorporate the exception flows that are induced by exceptions. In previous research to construct control flow graph, normal flows and exception flows are computed at the same time, since these two flows are known to be mutually dependent. By investigating realistic Java programs, we found that the cases when these two flows are mutually dependent rarely happen. So, we can decouple exception flow analysis from normal flow analysis. In this paper we propose an analysis that estimates exception flows. We also propose exception flow graph to represent exception flows. And we show that the control flow graph that accounts for exception flows can be constructed by merging exception flow graph onto normal control flow graph.

A Study for Improved $Stateflow^{(R)}$ Control Flow Graph Unfolding Algorithm Applied Back-Up Free Concept (Back-Up Free를 적용한 개선된 스테이트 플로우의 제어 흐름 그래프 전개 알고리즘에 대한 연구)

  • Seo, Jang-Won;Choi, Kyoung-Hee;Park, Seung-Kyu;Chung, Ki-Hyun
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2012.06b
    • /
    • pp.241-243
    • /
    • 2012
  • 본 논문은 스테이트 플로우에서 작성된 제어 흐름 그래프를 전개하여 테스트 케이스를 뽑아내기 위한 기존 제어 흐름 그래프 전개 알고리즘에 대해서 소개한다. 그리고 기존 제어 흐름 그래프전개 알고리즘의 단점으로 지적되는 비효율적인 측면, 즉 불필요한 하위 트리의 복사 등의 단점을 개선하기 위해 Back-Up Free라는 개념을 소개하고, Back-Up Free 개념을 적용하여 좀 더 개선된 제어 흐름 그래프전개 알고리즘의 아이디어를 설명한다.

Visualization of Control Flow Graph for Analysis and Verification of JAVA Byte Code (자바 프로그램의 분석 및 검증을 위한 제어흐름그래프 시각화)

  • Jung, Ji Woong;Kim, Je Min;Park, Joon Seok;Yoo, Weon Hee
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2011.11a
    • /
    • pp.213-215
    • /
    • 2011
  • 프로그램에 대한 검증을 수행하기 위해서는 자료흐름을 알아야 하고, 입력된 프로그램에 대응하는 제어흐름그래프(control flow graph)가 필요하다. 이에 더하여 제어흐름 그래프를 시각화한다면 사용자 입장에서는 더 편한 프로그램이 될 것이다. 본 논문에서는 자바 프로그램의 검증도구에 사용하는 중간 표현 언어 중 하나인 BIRS(Bytecode Intermediate Representation with Specification)에 의해 생성되는 제어흐름그래프를 시각화하는 방법에 대해 제안한다.

An Effective Method for Comparing Control Flow Graphs through Edge Extension (에지 확장을 통한 제어 흐름 그래프의 효과적인 비교 방법)

  • Lim, Hyun-Il
    • KIPS Transactions on Computer and Communication Systems
    • /
    • v.2 no.8
    • /
    • pp.317-326
    • /
    • 2013
  • In this paper, we present an effective method for comparing control flow graphs which represent static structures of binary programs. To compare control flow graphs, we measure similarities by comparing instructions and syntactic information contained in basic blocks. In addition, we also consider similarities of edges, which represent control flows between basic blocks, by edge extension. Based on the comparison results of basic blocks and edges, we match most similar basic blocks in two control flow graphs, and then calculate the similarity between control flow graphs. We evaluate the proposed edge extension method in real world Java programs with respect to structural similarities of their control flow graphs. To compare the performance of the proposed method, we also performed experiments with a previous structural comparison for control flow graphs. From the experimental results, the proposed method is evaluated to have enough distinction ability between control flow graphs which have different structural characteristics. Although the method takes more time than previous method, it is evaluated to be more resilient than previous method in comparing control flow graphs which have similar structural characteristics. Control flow graph can be effectively used in program analysis and understanding, and the proposed method is expected to be applied to various areas, such as code optimization, detection of similar code, and detection of code plagiarism.

A Java Birthmark based on Control Flow Graph Matching (제어 흐름 그래프 매칭 기반 자바 버스마크)

  • Park, Hee-Wan;Lim, Hyun-Il;Choi, Seok-Woo;Han, Tai-Sook
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.15 no.11
    • /
    • pp.871-875
    • /
    • 2009
  • A software birthmark is inherent characteristics that can be used to identify a program. In this paper, we propose a new Java birthmark based on control flow graph (CFG) matching. The CFG matching consists of node matching and edge matching. To get similarities of nodes and edges of two CFGs, we apply a sequence alignment algorithm and a shortest path algorithm, respectively. To evaluate the proposed birthmark, we perform experiments on Java programs that implement various algorithms. In the experiments, the proposed birthmark shows not only high credibility and resilience but also fast runtime performance.

Efficient Construction of Over-approximated CFG on Esterel (Esterel에서 근사-제어 흐름그래프의 효율적인 생성)

  • Kim, Chul-Joo;Yun, Jeong-Han;Seo, Sun-Ae;Choe, Kwang-Moo;Han, Tai-Sook
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.15 no.11
    • /
    • pp.876-880
    • /
    • 2009
  • A control flow graph(CFG) is an essential data structure for program analyses based on graph theory or control-/data- flow analyses. Esterel is an imperative synchronous language and its synchronous parallelism makes it difficult to construct a CFG of an Esterel program. In this work, we present a method to construct over-approximated CFGs for Esterel. Our method is very intuitive and generated CFGs include not only exposed paths but also invisible ones. Though the CFGs may contain some inexecutable paths due to complex combinations of parallelism and exception handling, they are very useful for other program analyses.

C language source code analysis and control flow analysis using XML (XML을 사용한 C언어 소스 코드 분석 및 제어 흐름 분석)

  • Arang Jeong;Hyeon Soo Kim
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2008.11a
    • /
    • pp.582-585
    • /
    • 2008
  • 제어 흐름 그래프(CFG : Control Flow Graph)는 제어 흐름상의 오류나 문제점을 찾아내고 흐름에 대해 한눈에 파악할 수 있기 때문에 소프트웨어공학 분야에서 많이 사용되고 있다. 현재 여러 테스팅 분야에서 다양한 제어 흐름 분석 기법들이 연구, 소개되고 있는데 본 논문에서는 XML 문서를 이용하여 CFG를 나타내고자 한다. XML은 트리구조를 가진 문서 모델로 C 언어 소스 코드를 구조적으로 나타냄으로써 좀 더 쉽게 코드를 분석하고, 제어 흐름 요소를 추출하여 제어 흐름 그래프를 나타내는 데에 유용하다. 따라서 중간 분석 파일로 XML을 이용하여 보다 빠르고 쉽게 CFG를 나타내는 기법을 제안한다.

Framework for Static Control Flow Analysis of Binary Codes (바이너리 코드의 정적 제어 흐름 분석을 위한 프레임워크)

  • Baek, Yeong-Tae;Kim, Ki-Tae
    • Proceedings of the Korean Society of Computer Information Conference
    • /
    • 2010.07a
    • /
    • pp.67-70
    • /
    • 2010
  • 본 논문은 바이너리 코드 수준에서 정적인 프로그램 분석을 수행하는 프레임워크를 설계 및 구현한다. 정적으로 바이너리 코드 수준에서 분석을 수행하려는 이유는 일반적으로 컴퓨터에 설치되는 실행 파일은 소스 코드 없이 단지 바이너리로 된 실행 파일만 주어지는 경우가 대부분이고, 정적 제어 흐름 분석을 통해 수행 전에 동작을 파악하기 위해서이다. 본 논문에서는 바이너리 실행 파일로부터 실행 순서 및 제어 흐름 등의 정보를 표현할 수 있는 제어 흐름 그래프를 작성하여 바이너리 파일의 실행 흐름과 위험한 함수의 호출 여부를 동시에 파악할 수 있도록 하며, 그래프 시각화를 통해 바이너리 파일의 분석을 용이하게 한다. 또한 실행 흐름에 대한 자동 탐색 방법을 제공한다.

  • PDF

The Information Flow Graph based on The Data Tokens (데이터 토큰에 기반한 정보 흐름 그래프)

  • Park, Byeoung-Gee;Choi, Wan-Kyoo;Lee, Sung-Joo
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2000.10b
    • /
    • pp.1389-1392
    • /
    • 2000
  • 본 논문은 프로시저 내에서 데이터 토큰들간의 정보흐름을 모델링 하기 위해서 정보 흐름 그래프(IFG : Information Flow Graph)라고 하는 프로그램 표현 도구를 개발하였다. IFG는 기존 제어 흐름 그래프와는 달리 프로그램 내에서 관심 있는 변수 값의 변화 과정을 쉽게 탐색할 수 있고, 정보 흐름의 미세 변화를 잘 표현할 수 있으므로, 프로그램에 대한 이해를 증진시킬 수 있다.

  • PDF