stringtranslate.com

Microsoft Fénix

Microsoft Phoenix era un SDK disponible en Microsoft Connect para crear compiladores, optimizar código y realizar análisis de código. Microsoft lo describió en tiempo pasado el 1 de julio de 2008. [1]

Descripción original

[Estaba] destinado a ser utilizado como back-end para futuras tecnologías de compilación de Microsoft . [8] También [estaba] disponible como un SDK , cuya versión preliminar se ha hecho accesible, para crear compiladores y herramientas de análisis de código utilizando el marco Phoenix.

Descripción general

Microsoft Phoenix define una representación intermedia (IR) para programas, utilizando AST , gráficos de flujo de control y un modelo de manejo de excepciones. Para que Phoenix pueda manejar cualquier programa, es necesario convertirlo a esta representación. También se especifica la especificación de estos convertidores específicos de tipo de archivo, llamados lectores de archivos en la terminología de Phoenix. Phoenix viene incluido con lectores para archivos binarios Portable Executable , CIL y la salida del front-end de Visual C++ . [9] Se pueden escribir lectores para otros lenguajes utilizando el SDK de Phoenix, aunque se deben utilizar herramientas independientes como lex y yacc para escribir el analizador léxico y el analizador sintáctico , respectivamente.

Una vez que el programa se ha convertido al IR, las herramientas de análisis y optimización pueden operar en ese formato. Phoenix incluye una selección de herramientas, que incluyen conteo de bloques, análisis de memoria, cobertura de código , análisis de código y optimización . [10] El SDK de Phoenix también se puede utilizar para escribir y conectar otras herramientas. La generación de código se maneja proporcionando escritores de archivos específicos de la arquitectura (ya sea la arquitectura física del procesador o una arquitectura de máquina virtual ) . Phoenix proporciona el backend del compilador, que comparte con Visual C++, para manejar el análisis, la optimización y la generación de código para la arquitectura x86 . Los escritores para otras arquitecturas deben proporcionarse por separado. c2.dll

Como resultado de la arquitectura modular, cualquier componente puede reemplazarse sin afectar al resto del sistema. Por ejemplo, para adaptar el compilador a una arquitectura diferente, solo es necesario cambiar el escritor de archivos específico de la arquitectura, manteniendo el resto de la pila sin cambios. Para crear un compilador para un nuevo lenguaje, solo es necesario proporcionar los lectores.

Productividad

Se utiliza un componente Phoenix (phx.dll) para algunos de los análisis estáticos ( FxCop ) en Visual Studio 2010. [11] (El compilador Phoenix en sí, que es necesario para que funcione la mayoría de las inserciones de instrumentación, no está incluido en Visual Studio).

Véase también

Referencias

  1. ^ "SDK de Microsoft Phoenix (1 de julio de 2008)".
  2. ^ "Programa Académico Phoenix". Archivado desde el original el 13 de diciembre de 2007 . Consultado el 16 de noviembre de 2007 .
  3. ^ Safonov, Vladimir O. (2010). "Microsoft Phoenix, herramientas dirigidas a Phoenix y nuestros proyectos Phoenix". Compiladores confiables . Hoboken, Nueva Jersey: John Wiley & Sons. págs. 239–276. ISBN 9780470593349. Recuperado el 8 de mayo de 2019 .
  4. ^ Tairas, Robert; Gray, Jeff (10 de marzo de 2006). "Detección de clones basada en Phoenix mediante árboles de sufijos" (PDF) . Actas de la 44.ª Conferencia Regional Anual del Sudeste . Association for Computing Machinery: 679–684 . Consultado el 8 de mayo de 2019 .
  5. ^ Safonov, Vladimir; Gratchev, Mikhail; Grigoryev, Dmitry; Maslennikov, Alexander (29 de mayo – 1 de junio de 2006). "Aspect.NET — kit de herramientas orientado a aspectos para Microsoft.NET basado en Phoenix y Whidbey" (PDF) . .NET Technologies 2006 . Universidad de Bohemia Occidental: 19–30 . Consultado el 8 de mayo de 2019 .
  6. ^ Ueng, Sain-Zee; Lathara, Melvin; Baghsorkhi, Sara S.; Hwu, Wen-mei W. "CUDA-Lite: Reducción de la complejidad de la programación de GPU". Lenguajes y compiladores para computación paralela . Universidad de Illinois en Urbana-Champaign: Springer: 1–15 . Consultado el 8 de mayo de 2019 .
  7. ^ Castro, Miguel; Costa, Manuel; Harris, Tim (6 de noviembre de 2006). "Securing software by enforcing data-flow integrity" (PDF) . Actas del 7.º Simposio sobre diseño e implementación de sistemas operativos . USENIX Association: 147–160 . Consultado el 8 de mayo de 2019 .
  8. ^ [2] [3] [4] [5] [6] [7]
  9. ^ "Phoenix Compiler Backend". Archivado desde el original el 26 de diciembre de 2010. Consultado el 16 de noviembre de 2007 .
  10. ^ "Herramientas basadas en Phoenix". Archivado desde el original el 26 de diciembre de 2010. Consultado el 16 de noviembre de 2007 .
  11. ^ "Análisis de código en profundidad de VS 2010 Beta 2: primer vistazo". Archivado desde el original el 6 de enero de 2010 . Consultado el 30 de marzo de 2010 .

Enlaces externos