Skip to main content
QUICK REVIEW

[논문 리뷰] Program Optimization Based Pointer Analysis and Live Stack-Heap Analysis

Mohamed A. El-Zawawy|arXiv (Cornell University)|2011. 04. 04.
Logic, programming, and type systems참고 문헌 21인용 수 11
한 줄 요약

이 논문은 흐름에 민감한 포인터 분석, 라이브 스택-히프 분석, 프로그램 최적화를 통합하는 조합형 유형 체계를 제안하여 형식적 근거를 제공하는 사망 코드 제거를 가능하게 한다. 포인터 분석 유형에 라이브 스택-히프 정보를 통합하고 추론 규칙에 변환 구성요소를 추가함으로써, 간접적으로 잘못된 코드를 수정할 수 있는 검증된 최적화를 제공하며, 증명 반제품 코드와 검증된 컴파일링을 지원한다.

ABSTRACT

In this paper, we present type systems for flow-sensitive pointer analysis, live stack-heap (variables) analysis, and program optimization. The type system for live stack-heap analysis is an enrichment of that for pointer analysis; the enrichment has the form of a second component being added to types of the latter system. Results of pointer analysis are proved useful via their use in the type system for live stack-heap analysis. The type system for program optimization is also an augmentation of that for live stack-heap analysis, but the augmentation takes the form of a transformation component being added to inference rules of the latter system. The form of program optimization being achieved is that of dead-code elimination. A form of program correction may result indirectly from eliminating faulty code (causing the program to abort) that is dead. Therefore program optimization can result in program correction. Our type systems have the advantage of being compositional and relatively-simply structured. The novelty of our work comes from the fact that our type system for program optimization associates the optimized version of a program with a justification (in the form of a type derivation) for the optimization. This justification is pretty much appreciated in many research areas like certified code (proof-carrying code) which is the motivation of this work

연구 동기 및 목표

  • 코드 변환에 대한 형식적 추론을 지원하는 조합형이고 구조적인 유형 체계를 개발하기 위해.
  • 포인터 분석을 보완하는 라이브 스택-히프 분석을 통합하여 변수 수명 주기 추적의 정밀도를 향상시키기 위해.
  • 형식적 근거를 제공하는 사망 코드 제거를 가능하게 하여 최적화와 프로그램 정확성 모두를 향상시키기 위해.
  • 최적화의 안전성을 보장하는 타입 유도를 기반으로 하는 기계 검증 가능한 증명을 제공함으로써 증명 반제품 코드를 지원하기 위해.
  • 각 최적화 단계가 정적 분석에 기반하고 검증 가능한 타입 유도를 제공하는 모듈러 프레임워크를 구축하기 위해.

제안 방법

  • 흐름에 민감한 포인터 분석 유형 체계를 확장하여 라이브 스택-히프 변수를 추적하는 두 번째 구성요소를 추가한다.
  • 포인터 분석 결과를 기반으로 라이브 스택-히프 분석을 수행하여 변수 수명 주기 추적의 정밀도를 향상시킨다.
  • 라이브 스택-히프 유형 체계에 추론 규칙에 변환 구성요소를 추가하여 코드 최적화를 표현한다.
  • 변환 구성요소를 적용하여 사망 코드를 제거하며, 최적화는 유효한 타입 유도에 의해 정당화된다.
  • 최적화를 점진적이고 단계적으로 적용 및 검증할 수 있도록 조합형 구조를 보장한다.
  • 타입 유도를 증명 반제품 자료로 활용하여 최적화된 코드의 런타임 검증을 가능하게 한다.

실험 결과

연구 질문

  • RQ1어떻게 포인터 분석을 조합형이고 유형 이론 기반 프레임워크에서 라이브 스택-히프 변수 추적을 지원하도록 확장할 수 있는가?
  • RQ2라이브 스택-히프 분석은 프로그램 최적화 중 더 정밀한 사망 코드 제거를 위해 어떤 역할을 하는가?
  • RQ3어떻게 타입 유도를 사용하여 분석의 특수성에 의존하지 않는 형식적 근거를 제공할 수 있는가?
  • RQ4제안된 유형 체계는 증명 반제품 코드와 검증된 컴파일링을 어떻게 지원하는가?
  • RQ5유형 체계를 통한 분석과 최적화의 통합은 사망 코드를 제거함으로써 잘못된 코드를 간접적으로 수정할 수 있는가?

주요 결과

  • 제안된 유형 체계는 타입 유도를 통해 사망 코드 제거를 형식적 근거와 함께 가능하게 하여 최적화된 코드에 대한 신뢰를 높인다.
  • 포인터 분석에 기반한 라이브 스택-히프 분석은 더 이상 필요하지 않은 변수를 더 정밀하게 식별함으로써 정밀도를 향상시킨다.
  • 추론 규칙에 포함된 변환 구성요소는 체계적이고 검증 가능한 코드 최적화를 가능하게 한다.
  • 이 프레임워크는 기계 검증 가능한 최적화 정확성 증명을 생성함으로써 증명 반제품 코드를 지원한다.
  • 사망 코드 제거는 고장 나서 종료를 유도하는 잘못된 코드를 제거함으로써 간접적으로 프로그램을 수정할 수 있으며, 이는 신뢰성을 향상시킨다.
  • 이 시스템은 조합형이며 비교적 단순한 구조를 지녀 모듈러 추론과 확장성에 유리하다.

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

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

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

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