Skip to main content
QUICK REVIEW

[논문 리뷰] Collecting Graphical Abstract Views of Mercury Program Executions

Erwan Jahier|arXiv (Cornell University)|2000. 10. 01.
Software Engineering Research인용 수 2
한 줄 요약

이 논문은 메르큐리의 트레이스 시스템 기반으로 구축된 고수준 연산자인 Collect를 제시한다. 이는 개발자가 프로그램 실행을 시각화하기 위한 모니터를 쉽게 생성할 수 있도록 한다. 단지 수십 줄의 코드를 작성하기만 하면, 증명 트리, 제어 흐름 그래프, 동적 콜 그래프와 같은 그래픽 추상화를 생성할 수 있으며, 이는 소프트웨어 시각화 도구의 프론트엔드로 기능한다. 이 접근법은 트레이서가 있는 모든 언어로 이식 가능하다.

ABSTRACT

A program execution monitor is a program that collects and abstracts information about program executions. The operator is a high level, general purpose primitive which lets users implement their own monitors. Collect is built on top of the Mercury trace. In previous work, we have demonstrated how this operator can be used to efficiently collect various kinds of statistics about Mercury program executions. In this article we further demonstrate the expressive power and effectiveness of by providing more monitor examples. In particular, we show how to implement monitors that generate graphical abstractions of program executions such as proof trees, control flow graphs and dynamic call graphs. We show how those abstractions can be easily modified and adapted, since those monitors only require several dozens of lines of code. Those abstractions are intended to serve as front-ends of software visualization tools. Although is currently implemented on top of the Mercury trace, none of its underlying concepts depend of Mercury and it can be implemented on top of any tracer for any programming language.

연구 동기 및 목표

  • 메르큐리 프로그램 실행을 모니터링하고 시각화하기 위한 유연하고 고수준의 메커니즘을 제공하기 위해.
  • Collect 연산자를 사용해 최소한의 코드로 복잡한 그래픽 추상화를 생성할 수 있음을 보여주기 위해.
  • 실행 트레이스를 인간이 읽을 수 있는 다이어그램으로 추상화함으로써 소프트웨어 시각화 프론트엔드의 생성을 가능하게 하기 위해.
  • 기본 개념이 메르큐리에 종속되지 않음을 보여주어, 트레이서 지원이 있는 모든 언어에 적용 가능함을 입증하기 위해.

제안 방법

  • Collect 연산자는 메르큐리 트레이스에서 실행 데이터를 추출하고 구조화하는 데 사용되는 일반 목적의 프리미티브로 사용된다.
  • 수십 줄의 코드로 구현된 모니터를 통해 증명 트리, 제어 흐름 그래프와 같은 특정 그래픽 추상화를 생성한다.
  • 이 접근법은 런타임 실행 세부 정보를 캡처하기 위해 메르큐리의 트레이스 시스템을 활용하며, 이를 구조화된 시각적 표현으로 변환한다.
  • 호출 패턴, 제어 흐름, 논리적 종속성 분석을 통해 그래픽 추상화를 생성한다.
  • 확장성이 있으며, 다양한 분석 요구사항에 맞게 쉽게 수정하고 적응할 수 있다.
  • 설계 원칙은 언어에 종속되지 않으며, 오직 트레이서 인터페이스에 의존하므로 다른 언어로의 이식이 가능하다.

실험 결과

연구 질문

  • RQ1Collect와 같은 고수준 연산자를 사용해 최소한의 코드로 프로그램 실행의 의미 있는 그래픽 추상화를 생성할 수 있는가?
  • RQ2Collect가 제어 흐름과 논리적 증명과 같은 복잡한 프로그램 행동을 얼마나 효과적으로 시각적 형태로 표현할 수 있는가?
  • RQ3동일한 모니터링 인fra가 콜 그래프와 증명 트리와 같은 다양한 시각화 유형을 얼마나 잘 지원할 수 있는가?
  • RQ4이 접근법은 메르큐리 외에도 트레이싱 지원이 있는 다른 프로그래밍 언어로 일반화될 수 있는가?
  • RQ5요구사항이 변경될 경우, 생성된 시각화는 얼마나 유지보수 가능하고 적응 가능한가?

주요 결과

  • Collect는 단지 수십 줄의 코드로도 증명 트리, 제어 흐름 그래프, 동적 콜 그래프와 같은 복잡한 그래픽 추상화를 생성할 수 있다.
  • 생성된 시각화는 소프트웨어 시각화 도구의 프론트엔드로 효과적으로 기능하며, 프로그램 이해도 향상에 기여한다.
  • 이 접근법은 매우 적응 가능하여, 다양한 분석 요구사항에 맞게 추상화를 쉽게 수정할 수 있다.
  • Collect의 핵심 개념은 메르큐리에 종속되지 않으며, 호환 가능한 트레이서가 있는 모든 언어에 적용 가능하다.
  • 이 방법은 경량의 도메인 전용 모니터가 실행 데이터를 효과적으로 추출하고 구조화하여 시각화에 활용할 수 있음을 보여준다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.