• 제목/요약/키워드: 제어 흐름 그래프

검색결과 60건 처리시간 0.025초

슬라이스 기반 복잡도 척도 (A Slice-based Complexity Measure)

  • 문유미;최완규;이성주
    • 정보처리학회논문지D
    • /
    • 제8D권3호
    • /
    • pp.257-264
    • /
    • 2001
  • 본 논문은 데이터 슬라이스에서의 데이터 토큰들의 정보 흐름에 기초하여 프로그램에서의 정보 흐름을 모델링하는 SIFG(Slicw-based information Graph)를 개발하였다. 다음으로, SIFG에서의 정보 흐름의 복잡도 측정을 통해서 프로그램의 복잡도를 측정하기 위해 SCM(Slice-based Complexity Measure)을 정의하였다. SCM은 Briand가 제시하는 복잡도 메트릭에 필요한 특성들을 만족하였고, 그리고 기존 척도들과는 달리, SCM은 프로그램 내에서의 제어와 데이터 흐름뿐만 아니라 프로그램의 물리적 크기를 반영하는 측정이 이루어졌다.

  • PDF

정적 단일 배정 형태를 위한 정적 타입 배정에 관한 연구 (A Study on Static Type Assignment for Static Single Assignment Form)

  • 김기태;유원희
    • 한국콘텐츠학회논문지
    • /
    • 제6권2호
    • /
    • pp.117-126
    • /
    • 2006
  • 자바 바이트코드는 많은 장점을 갖지만 수행 속도가 느리고 분석이 어렵다는 단점을 갖는다 이를 극복하기 위해 바이트코드에 대한 분석과 최적화가 수행되어야 한다. 우선 바이트코드에 대한 제어 흐름 분석을 수행한다. 제어 흐름 분석 후 데이터 흐름 분석과 최적화를 위해서 변수가 어디서 정의되고 어디서 사용되는지에 대한 정보가 필요하다. 각 위치에서 변수에 배정되는 값에 따라 동일한 이름의 변수가 다른 위치에서 다른 값을 가지는 경우가 발생한다. 따라서 정적으로 값과 타입을 결정하기 위해서 변수는 배정되는 것에 따라 분리되어야 한다. 이를 위해 단일 배정 형태를 이용하여 표현할 수 있다. 정적 단일 배정형태(SSA Form)로 변경한 후 정적 분석과 최적화를 위해서는 각 변수와 표현식이 나타내는 각각의 노드에 타입 정보를 설정해야 한다. 본 논문은 타입에 대한 기본 정보를 바탕으로 관련된 동등한 노드를 발견하고 강 결합 요소로 설정한 후 각 노드에 타입을 효율적으로 설정하는 방법을 제안한다

  • PDF

함수 수준 특징정보 기반의 오픈소스 소프트웨어 모듈 탐지 (Detection of an Open-Source Software Module based on Function-level Features)

  • 김동진;조성제
    • 정보과학회 논문지
    • /
    • 제42권6호
    • /
    • pp.713-722
    • /
    • 2015
  • OSS(Open-Source Software)의 사용 증가와 함께 라이선스 위반, 취약한 소스코드 재사용 등에 의한 분쟁 및 피해가 빈번해지고 있다. 이에, 실행파일(바이너리) 수준에서 프로그램에 OSS 모듈이 포함되었는지 여부를 확인하는 기술이 필요해졌다. 본 논문에서는 바이너리에서 함수 수준의 특징정보를 사용하여 OSS 모듈을 탐지하는 기법을 제안한다. 기존 소프트웨어 특징정보(버스마크) 기반 도용 탐지 기법들은 프로그램 전체 간 유사성을 비교하기 때문에 프로그램의 일부로 포함된 OSS 모듈들을 탐지하는데 부적합하다. 본 논문에서는, 함수 수준의 실행명령어, 제어 흐름 그래프(Control Flow Graph)와 개선된 함수 수준 구조적 특징정보를 추출하고 유사성을 비교하여 OSS 모듈의 임의 사용 여부를 탐지한다. 제안기법의 효율성과 각 특징정보들의 OSS 탐지 성능을 평가하기 위해, 특징정보량, OSS 모듈 탐지 시간 및 정확도, 컴파일러 최적화에 대한 강인성을 실험하였다.

CTOC에서 자바 바이트코드를 위한 정적 단일 배정 형태 (Static Single Assignment Form for Java Bytecodes in CTOC)

  • 김기태;유원희
    • 정보처리학회논문지D
    • /
    • 제13D권7호
    • /
    • pp.939-946
    • /
    • 2006
  • 자바 바이트코드는 많은 장점을 갖지만 수행 속도가 느리고 분석이 어렵다는 단점을 갖는다. 이를 극복하기 위해 바이트코드에 대한 분석과 최적화가 수행되어야 한다. 최적화된 코드를 위해 CTOC를 구현하였다. 바이트코드에 대해 분석과 최적화를 수행하기 위해서는 우선 CFG를 생성해야 한다. 바이트코드의 특성 때문에 기존의 제어 흐름 분석 기술을 바이트코드에 적합하게 확장해야 한다. 또한 정적으로 분석하기 위해 CFG를 SSA Form으로 변환한다. SSA Form으로 변환하기 위해서는 지배 관계, 지배자 트리, 직접 지배자, $\phi$-함수, 재명명, 지배자 경계 등 많은 정보에 대한 계산을 수행한다. 본 논문은 기존의 CFG로부터 SSA Form으로 변환을 위해 알고리즘과 변환 과정을 기술한다. SSA Form이 적용된 그래프는 추후에 타입 추론과 최적화를 위해 사용된다.

타이머 릴레이의 EMFG 표현 (The EMFG representation of timer-relays)

  • 김종민;정안나;여정모
    • 한국멀티미디어학회:학술대회논문집
    • /
    • 한국멀티미디어학회 2002년도 춘계학술발표논문집(상)
    • /
    • pp.10-15
    • /
    • 2002
  • 확장된 마크흐름선도(EMFG : Extended Mark Flow Graph)는 시스템의 동시성이나 병렬성을 잘 표현할 수 있는 방향성 그래프이다. 이를 이용하여 시스템을 모델링하면 개념설계가 가능하고, 상세 동작분석이 용이해짐으로 이산제어시스템이나 시퀀스 제어회로등을 설계할 때 사용될 수 있는 도구이다. 기존 EMFG에서는 타이머에 대한 표기 방법이 미비하여 타이머를 많이 사용하는 분야인 시퀀스제어 설계 및 릴레이 회로의 표현에는 많은 어려움이 있다. 본 논문에서는 타이머 릴레이들의 동작에 대하여 생성지연-소멸 트랜지션, 생성-소멸지연 트랜지션과같이 이중바로 표기된 새로운 트랜지션을 도입하였다. 새로운 트랜지션을 이용하면 타이머들의 동작을 분명하게 표현할 뿐만 아니라 EMFG의 표현을 알고리듬할 수 있다. 그러므로 복잡한 시스템을 모델링할 때 제안된 트랜지션을 이용하면 효율적인 모델링을 할 수 있다.

  • PDF

함수 블록 다이어그램으로 명세된 PLC 프로그램에 대한 구조적 테스팅 기법 (A Structural Testing Strategy for PLC Programs Specified by Function Block Diagram)

  • 지은경;전승재;차성덕
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제35권3호
    • /
    • pp.149-161
    • /
    • 2008
  • 프로그래머블 로직 컨트롤러(PLC: Programmable Logic Controller)가 안전성이 중요한 실시간 시스템 구현에 많이 사용되면서, PLC 프로그램에 대한 테스팅의 중요성이 날로 높아지고 있다. 본 논문에서는 PLC 프로그래밍 언어 중 하나인 함수 블록 다이어그램(FBD: Function Block Diagram)에 대한 구조적 테스팅 방안을 제안한다. FBD를 테스트하기 위해 먼저 타이머 함수 블록을 비롯한 각 함수 및 함수 블록에 대한 흐름그래프 템플릿을 정의하고, 템플릿을 기반으로 한 변환 알고리즘을 제안하며, 알고리즘을 따라 FBD로부터 변환된 흐름그래프에 기존의 제어 흐름 테스팅 커버리지와 데이타 흐름 테스팅 커버리지를 적용한다. 기존 FBD 테스팅은 테스트 케이스 생성시 FBD 내부 구조를 고려하지 않으며, FBD 프로그램으로부터 특정 중간단계 모델을 생성해 낼 수 있는 경우에만 적용될 수 있는 단점을 가진 반면, 본 논문에 제안된 방법은 FBD 내부 구조를 고려한 체계적 테스트 케이스 생성이 가능하며, 중간단계 모델의 형식에 관계없이 어떤 FBD에도 적용될 수 있다는 장점을 가진다. 특히 제안된 기법은 여러 실행주기에 걸쳐 테스트 되어야 하는 타이머 함수 블록을 포함한 FBD에 대한 철저한 테스팅을 가능하게 한다. 제안된 기법을 현재 원전계측제어시스템 개발사업단에서 개발 중인 디지털 원자로 보호계통 비교논리 프로세서 트립 논리에 적용하여 그 효과를 확인하였다.

SSA Form에서 부분 중복 제거를 이용한 최적화 (Optimization Using Partial Redundancy Elimination in SSA Form)

  • 김기태;유원희
    • 정보처리학회논문지D
    • /
    • 제14D권2호
    • /
    • pp.217-224
    • /
    • 2007
  • CTOC에서는 정적으로 값과 타입을 결정하기 위해 변수를 배정에 따라 분리하는 SSA Form을 사용한다. SSA Form은 최근 데이터 흐름분석과 코드 최적화를 위해 컴파일러의 중간 표현으로 많이 사용되고 있다. 하지만 기존의 SSA Form은 표현적보다는 주로 변수에 관련된 것이다. 따라서 SSA Form 형태의 표현식에 대해 최적화를 적용하기 위해 중복된 표현식을 제거한다. 본 논문에서는 좀더 최적화된 코드를 얻기 위해 부분 중복 표현식을 정의하고, 부분 중복 표현식을 제거하는 방법을 구현한다.

멀티 스레딩 기반 병렬 프로그램의 효과적인 디버깅을 위한 추상적 시각화 (Abstract Visualization for Effective Debugging of Parallel Programs Based on Multi-threading)

  • 김영주
    • 한국정보통신학회논문지
    • /
    • 제20권3호
    • /
    • pp.549-557
    • /
    • 2016
  • 효과적인 시각화는 일반적으로 대용량의 디버깅 정보와 프로그램의 추상적 수행모델을 표현하는 것이 중요하다. 본 논문에서는 스레드들간의 논리적 병행성 관계를 나타내는 부분순서 수행그래프를 이용하여 내포병렬성과 임계구역을 가진 OpenMP 병렬 프로그램의 수행양상과 경합정보의 효과적 디버깅을 위해서 효과적으로 제공하는 추상적 시각화 도구를 제안한다. 본 도구는 수행중 추적선택 기법으로 시각화 정보를 위한 공간적 복잡성을 줄이고, 추적된 시각화 정보에 프로그램의 내포병렬성과 임계구역 동기화를 위한 그래프 추상화를 제공하여 시각적 복잡성을 해결한다. 그래프 추상화를 통한 스레드들간의 부분순서 관계와 경합탐지 정보는 프로그램의 제어흐름과 경합의 위치를 구조적으로 파악할 수 있게 하므로 프로그램 수행의 이해와 경합 탐지 및 수정에 효과적이다.

설명 가능 그래프 심층 인공신경망 기반 속도 예측 및 인근 도로 영향력 분석 기법 (Speed Prediction and Analysis of Nearby Road Causality Using Explainable Deep Graph Neural Network)

  • 김유진;윤영
    • 한국융합학회논문지
    • /
    • 제13권1호
    • /
    • pp.51-62
    • /
    • 2022
  • 교통 혼잡을 해결하기 위한 AI 기반 속도 예측 연구는 활발하게 진행되고 있다. 하지만, 인공지능의 추론 과정을 설명하는 설명 가능한 AI의 중요성이 대두되고 있는 가운데 AI 기반 속도 예측의 결과를 해석하고 원인을 추리하는 연구는 미흡하였다. 따라서 본 논문에서는 '설명 가능 그래프 심층 인공신경망 (GNN)'을 고안하여 속도 예측뿐만 아니라, GNN 모델 입력값의 마스킹 기법에 기반하여 인근 도로 영향력을 정량적으로 분석함으로써 혼잡 등의 상황에 대한 추론 근거를 도출하였다. TOPIS 통행 속도 데이터를 활용하여 서울 시내 혼잡 도로를 기준으로 예측 및 분석 방법론을 적용한 후 영향력 높은 인근 도로의 속도를 가상으로 조절하는 시뮬레이션 통하여 혼잡 도로의 통행 속도가 개선됨을 확인하여 제안한 방법론의 타당성을 입증하였다. 이는 교통 네트워크에 제안한 방법론을 적용하고, 그 추론 결과에 기반한 특정 인근 도로를 제어하여 교통 흐름을 개선할 수 있다는 점에 의미가 있다.

유전 알고리즘을 이용한 코드 난독화에서의 효율적 함수 호출 인라인 기법 (Effective Technique for Inlining Function Calls in Code Obfuscation Using Genetic Algorithm)

  • 김정일;이은주
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2010년도 한국컴퓨터종합학술대회논문집 Vol.37 No.1(B)
    • /
    • pp.53-58
    • /
    • 2010
  • 코드 난독화 기법 중의 하나인 인라인(Inline)은 코드의 복사를 통하여 함수의 호출 구조를 파괴하여서 코드의 복원과 이해를 어렵게 만든다. 하지만 적절한 전략 없이 인라인 기법을 적용하게 되면, 프로그램 성능이 저하되며 난독화의 결과도 기대 이하일 가능성이 존재한다. 따라서 지나친 성능의 저하를 막으면서 결과적으로 코드의 복원과 이해를 최대한 어렵게 하기 위한 인라인 수행 전략이 필요하다. 이를 위하여 본 논문에서는 정적 함수 호출 그래프를 기반으로 인라인의 적용 여부를 유전 알고리즘을 사용하여 결정하도록 한다. 그리고 인라인 전후의 효용을 보여주기 위하여 정보이론 및 제어 흐름의 복잡도에 기반하여 전체 프로그램의 복잡도를 정의하였다. 마지막으로 해당 기법의 효용을 실험을 통해 보였다.

  • PDF