Skip to main content
QUICK REVIEW

[논문 리뷰] A family of abstract interpretations for static analysis of concurrent higher-order programs

Matthew Might, David Van Horn|arXiv (Cornell University)|2011. 03. 26.
Logic, programming, and type systems참고 문헌 16인용 수 9
한 줄 요약

이 논문은 제1급 연속체와 동적 스레드 생성을 지원하는 동시 고계 함수형 프로그램의 정적 분석을 위한 추상 해석의 가족을 제시한다. P(CEK⋆)S 기계를 구체적 모델로 도입하고, 제어 흐름 분석(CFA)과 동시성에서 발생할 수 있는 분석(MHP)을 동시에 계산하는 추상 해석을 유도한다. 스레드에 대한 싱글턴 추상화를 통해 MHP 정밀도를 향상시키고, 스레드의 순서를 축소시킴으로써 CFA를 가속화함으로써, 제1급 연속체와 동적 스레드 생성을 지원하는 프로그램에 대해 정확하고 맥락에 민감한 분석을 달성한다.

ABSTRACT

We develop a framework for computing two foundational analyses for concurrent higher-order programs: (control-)flow analysis (CFA) and may-happen-in-parallel analysis (MHP). We pay special attention to the unique challenges posed by the unrestricted mixture of first-class continuations and dynamically spawned threads. To set the stage, we formulate a concrete model of concurrent higher-order programs: the P(CEK*)S machine. We find that the systematic abstract interpretation of this machine is capable of computing both flow and MHP analyses. Yet, a closer examination finds that the precision for MHP is poor. As a remedy, we adapt a shape analytic technique-singleton abstraction-to dynamically spawned threads (as opposed to objects in the heap). We then show that if MHP analysis is not of interest, we can substantially accelerate the computation of flow analysis alone by collapsing thread interleavings with a second layer of abstraction.

연구 동기 및 목표

  • 제1급 연속체와 동적 스레드 생성을 지원하는 동시 고계 프로그램을 정적으로 분석하는 데 도전하는 문제를 해결하기 위해.
  • 이러한 프로그램에서 제어 흐름 분석(CFA)과 동시성에서 발생할 수 있는 분석(MHP)을 동시에 계산할 수 있는 체계적인 프레임워크를 개발하기 위해.
  • 표준 추상 해석에서 제1급 연속체와 동적 스레드 생성이 존재할 경우 스레드 상호작용을 정확히 포착하지 못하는 정밀도의 열악함을 해결하기 위해, 기존 힙 객체 분석에 쓰이는 형태 분석 기법을 스레드 구조에 적응시켜 사용하기 위해.
  • 스레드 순서를 축소시키는 두 번째 추상화 계층을 도입하여 CFA 계산 속도를 높이기 위해, MHP 정밀도를 희생하는 대가를 지불함으로써, 정확성을 유지하면서도 흐름 분석을 가속화하기 위해.

제안 방법

  • P(CEK⋆)S 기계는 명시적 스레드 관리와 연속체 처리를 지원하는 비결정성 추상 기계로 정의되며, 동시 고계 계산을 모델링한다.
  • P(CEK⋆)S 기계에 대해 체계적인 추상 해석을 수행하여 맥락 민감성과 스레드 분할에 따라 매개변수화된 CFA 및 MHP 분석의 이중 계층을 도출한다.
  • 동적 스레드 생성에 대해 싱글턴 추상화를 적용하여 스레드 식별자와 개수를 추적함으로써 MHP 정밀도를 향상시키며, 이는 힙 객체에 대한 형태 분석과 유사하다.
  • 모든 스레드 순서를 축소시키는 두 번째 추상화 계층을 도입하여 상태 공간을 줄임으로써 CFA 계산 속도를 크게 향상시킨다.
  • 추상 상태 위에서 래티스 기반 고정점 계산을 수행하며, 단조성 있는 비트 벡터 전파를 통해 도달 가능성 여부를 계산한다.
  • 이 프레임워크는 단변량 분석과 맥락 민감 분석을 모두 지원하며, 복잡도는 추상 스레드 ID 수, 맥락 수, 주소 수, 값 수에 따라 결정된다.

실험 결과

연구 질문

  • RQ1어떻게 동시 고계 프로그램에 대해 제어 흐름 분석과 동시성에서 발생할 수 있는 분석을 동시에 계산할 수 있는 통합된 추상 해석 프레임워크를 설계할 수 있는가?
  • RQ2제1급 연속체와 동적 스레드 생성이 존재할 경우, 표준 추상 해석은 스레드 상호작용을 정확히 포착하지 못하는 한계가 무엇인가?
  • RQ3기존에 힙 객체에 사용되던 형태 분석 기법을 동적으로 생성된 스레드의 구조와 정체성 분석에 적응시킬 수 있는가?
  • RQ4흐름 분석의 정확성을 해치지 않으면서 스레드 순서를 어느 정도 추상화시킬 수 있는가?

주요 결과

  • P(CEK⋆)S 기계의 추상 해석은 제1급 연속체와 동적 스레드 생성이 존재하는 경우에도 동시 고계 프로그램에 대해 CFA와 MHP 분석을 성공적으로 계산한다.
  • 표준 추상 해석은 스레드를 근본적으로 추상화하기 때문에 정교하지 못한 스레드 추상화로 인해 MHP 정밀도가 열악하다.
  • 스레드에 싱글턴 추상화를 적용함으로써 스레드 정체성을 형태적 성질로 간주함으로써 스레드 개수를 추적하고 복제된 스레드를 구분함으로써 MHP 정밀도를 크게 향상시킨다.
  • 모든 스레드 순서를 축소시키는 두 번째 추상화 계층을 도입함으로써 CFA 계산 속도를 크게 향상시킬 수 있었으며, 상태 공간을 줄이면서도 흐름 분석의 정확성을 유지한다.
  • 분석의 복잡도는 단변량 분석의 경우 다항식이며, 공유 환경을 사용하는 맥락 민감 분석의 경우 지수적이다. 이는 고전적 CFA와 일치한다.
  • 이 프레임워크는 확장 가능하며, 안전한 향후 기능 분석과 같은 기존 분석과 조합하여 순차적 및 병렬적 비효율성을 제거할 수 있다.

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

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

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

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