마이크로소프트 피닉스

Microsoft Phoenix

Microsoft Phoenix는 컴파일러 작성, 코드 최적화 및 코드 분석을 위해 Microsoft Connect에서 사용할 수 있는 SDK입니다.마이크로소프트는 2008-07-01년에 [1]이것을 과거 시제로 기술했다.

원래 설명

Microsoft의 [8]향후 컴파일러 테크놀로지의 백엔드로 사용될 예정이었습니다.또한 사전 릴리스 빌드에 액세스할 수 있는 SDK로도 제공되었으며, Phoenix 프레임워크를 사용하여 컴파일러 및 코드 분석 도구를 만들 수 있습니다.

개요

Microsoft Phoenix는 AST, 제어 흐름 그래프 및 예외 처리 모델을 사용하여 프로그램에 대한 중간 표현(IR)을 정의합니다.Phoenix에 의해 처리되는 프로그램은 이 표현으로 변환되어야 합니다.이러한 파일 유형별 변환기(피닉스 용어로는 파일 리더라고 함)의 사양도 지정됩니다.Phoenix는 Portable Executable 바이너리 파일, CILVisual C++ 프론트 [9]엔드 출력용 리더에 포함되어 있습니다.다른 언어의 리더는 Phoenix SDK를 사용하여 쓸 수 있지만, 각각 lexer와 yacc같은 별도의 도구를 사용하여 작성해야 합니다.

프로그램이 IR로 변환되면 분석 및 최적화 도구가 해당 형태로 작동할 수 있습니다.Phoenix에는 블록 카운트, 메모리 분석, 코드 커버리지, 코드 분석, 최적화 [10]등 다양한 툴이 포함되어 있습니다.Phoenix SDK는 다른 도구의 쓰기 및 플러그인에도 사용할 수 있습니다.코드 생성은 아키텍처별(프로세서 또는 가상 머신 아키텍처의 물리적 아키텍처) 파일 기록기를 제공함으로써 처리됩니다.Phoenix는c2.dll컴파일러 백엔드는 Visual C++와 공유하며 x86 아키텍처의 분석, 최적화 및 코드 생성을 처리합니다.다른 아키텍처용 라이터는 별도로 제공해야 합니다.

모듈러 아키텍처의 결과로서 시스템의 나머지 부분에 영향을 주지 않고 어떤 컴포넌트도 교환할 수 있습니다.예를 들어 컴파일러를 다른 아키텍처로 타깃 하려면 아키텍처 고유의 파일라이터만 변경하면 되고 나머지 스택은 변경되지 않습니다.새로운 언어의 컴파일러를 작성하려면 리더만 제공되어야 합니다.

제품화

Phoenix 컴포넌트(phx.dll)는 Visual Studio [11]2010의 정적 분석(FxCop)에 사용됩니다(대부분의 instrumentation insertion이 작동하기 위해 필요한 Phoenix 컴파일러 자체는 Visual Studio에 포함되어 있지 않습니다).

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Microsoft Phoenix SDK (2008-07-01)".
  2. ^ "Phoenix Academic Program". Archived from the original on December 13, 2007. Retrieved November 16, 2007.
  3. ^ Safonov, Vladimir O. (2010). "Microsoft Phoenix, Phoenix-Targeted Tools, and Our Phoenix Projects". Trustworthy Compilers. Hoboken, New Jersey: John Wiley & Sons. pp. 239–276. ISBN 9780470593349. Retrieved May 8, 2019.
  4. ^ Tairas, Robert; Gray, Jeff (March 10, 2006). "Phoenix-Based Clone Detection Using Suffix Trees" (PDF). Proceedings of the 44th Annual Southeast Regional Conference. Association for Computing Machinery: 679–684. Retrieved May 8, 2019.
  5. ^ Safonov, Vladimir; Gratchev, Mikhail; Grigoryev, Dmitry; Maslennikov, Alexander (May 29 – June 1, 2006). "Aspect.NET — aspect-oriented toolkit for Microsoft.NET based on Phoenix and Whidbey" (PDF). .NET Technologies 2006. University of West Bohemia: 19–30. Retrieved May 8, 2019.
  6. ^ Ueng, Sain-Zee; Lathara, Melvin; Baghsorkhi, Sara S.; Hwu, Wen-mei W. "CUDA-Lite: Reducing GPU Programming Complexity". Languages and Compilers for Parallel Computing. University of Illinois at Urbana-Champaign: Springer: 1–15. Retrieved May 8, 2019.
  7. ^ Castro, Miguel; Costa, Manuel; Harris, Tim (November 6, 2006). "Securing software by enforcing data-flow integrity" (PDF). Proceedings of the 7th Symposium on Operating Systems Design and Implementation. USENIX Association: 147–160. Retrieved May 8, 2019.
  8. ^ [2][3][4][5][6][7]
  9. ^ "Phoenix Compiler Backend". Archived from the original on December 26, 2010. Retrieved November 16, 2007.
  10. ^ "Phoenix based tools". Archived from the original on December 26, 2010. Retrieved November 16, 2007.
  11. ^ "VS 2010 Beta 2 Code Analysis In-Depth First Look". Archived from the original on January 6, 2010. Retrieved March 30, 2010.

외부 링크