Microsoft Phoenix - Microsoft Phoenix
Tento článek musí být aktualizováno.Dubna 2014) ( |
Microsoft Phoenix, vyvíjen v Microsoft Research, je rámec pro rozvoj překladače stejně jako programové analytické, testovací a optimalizační nástroje, které mají být použity jako back-end pro budoucí technologie kompilátorů od Microsoft.[7] Je také k dispozici jako SDK, jehož předběžné vydání bylo zpřístupněno, aby bylo možné vytvořit kompilátory a nástroje pro analýzu kódu pomocí rámce Phoenix.
Přehled
Microsoft Phoenix definuje střední zastoupení (IR) pro programy, pomocí AST, kontrolní grafy toku a model zpracování výjimek. U každého programu, který má Phoenix zpracovat, je třeba jej převést na tuto reprezentaci. Specifikace pro tyto převaděče specifické pro daný soubor, tzv čtečky souborů v terminologii Phoenix, je také specifikován. Phoenix je součástí čteček pro Přenosný spustitelný soubor binární soubory, CIL a výstup Visual C ++ front-end.[8] Čtečky pro jiné jazyky lze psát pomocí Phoenix SDK, i když samostatné nástroje, jako je lex a yacc je třeba použít k napsání lexer a analyzátor, resp.
Jakmile je program převeden na IR, mohou nástroje pro analýzu a optimalizaci fungovat na tomto formuláři. Phoenix obsahuje výběr nástrojů - včetně počítání bloků, analýzy paměti, pokrytí kódu, analýza kódu a optimalizace.[9] Phoenix SDK lze použít také k zápisu a připojení dalších nástrojů. Generování kódu se zpracovává poskytováním specifické pro architekturu (buď fyzickou architekturou procesoru, nebo virtuální stroj architektura) spisovatelé souborů. Phoenix poskytuje c2.dll
backend kompilátoru, který sdílí s Visual C ++, pro zpracování analýzy, optimalizace a generování kódu pro x86 architektura. Spisovatelé pro jiné architektury musí být poskytnuti samostatně.
V důsledku modulární architektury lze libovolnou součást vyměnit, aniž by to ovlivnilo zbytek systému. Chcete-li například zacílit kompilátor na jinou architekturu, je třeba změnit pouze zapisovač souborů specifický pro architekturu, zbytek zásobníku se nezmění. Chcete-li vytvořit kompilátor pro nový jazyk, je třeba uvést pouze čtenáře.
Produktizace
Pro některé statické analýzy se používá komponenta Phoenix (phx.dll) (FxCop ) v sadě Visual Studio 2010.[10] (Samotný překladač Phoenix, který je vyžadován pro většinu vložení instrumentace, není součástí sady Visual Studio.)
Viz také
Reference
- ^ „Akademický program Phoenix“. Archivovány od originál 13. prosince 2007. Citováno 16. listopadu 2007.
- ^ Safonov, Vladimir O. (2010). „Microsoft Phoenix, nástroje zaměřené na Phoenix a naše projekty Phoenix“. Důvěryhodní překladatelé. Hoboken, New Jersey: John Wiley & Sons. 239–276. ISBN 9780470593349. Citováno 8. května 2019.
- ^ Tairas, Robert; Gray, Jeff (10. března 2006). "Detekce klonů na základě Phoenixu pomocí stromů přípon" (PDF). Sborník 44. výroční regionální konference o jihovýchodu. Sdružení pro výpočetní techniku: 679–684. Citováno 8. května 2019.
- ^ Safonov, Vladimir; Gratchev, Michail; Grigorijev, Dmitrij; Maslennikov, Alexander (29. května - 1. června 2006). „Aspect.NET - aspektově orientovaná sada nástrojů pro Microsoft.NET na základě Phoenix a Whidbey“ (PDF). .NET Technologies 2006. Západočeská univerzita: 19–30. Citováno 8. května 2019.
- ^ Ueng, Sain-Zee; Lathara, Melvin; Baghsorkhi, Sara S .; Hwu, Wen-mei W. „CUDA-Lite: Snížení složitosti programování GPU“. Jazyky a překladače pro paralelní výpočty. University of Illinois v Urbana-Champaign: Springer: 1–15. Citováno 8. května 2019.
- ^ Castro, Miguel; Costa, Manuel; Harris, Tim (6. listopadu 2006). „Zabezpečení softwaru vynucením integrity toku dat“ (PDF). Sborník příspěvků ze 7. symposia o návrhu a implementaci operačních systémů. Sdružení USENIX: 147–160. Citováno 8. května 2019.
- ^ [1][2][3][4][5][6]
- ^ "Backend kompilátoru Phoenix". Archivovány od originál 26. prosince 2010. Citováno 16. listopadu 2007.
- ^ „Phoenix based tools“. Archivovány od originál 26. prosince 2010. Citováno 16. listopadu 2007.
- ^ „Analýza kódu VS 2010 Beta 2, hloubkový první pohled“. Archivovány od originál 6. ledna 2010. Citováno 30. března 2010.
externí odkazy
- Oficiální stránka Phoenixu
- Vydání CTP Phoenix SDK z června 2008 (nejnovější vydání do okamžiku psaní)