Microsoft Phoenix

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

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 pasado el 1 de julio de 2008.

Original Descripción

Se pretendía utilizar como back-end para futuras tecnologías de compilación de Microsoft. También estaba disponible como SDK, cuya versión preliminar ya está disponible, para crear compiladores y herramientas de análisis de código utilizando el framework Phoenix.

Sinopsis

Microsoft Phoenix define una representación intermedia (IR) para programas, utilizando AST, gráficos de flujo de control y un modelo de gestión de excepciones. Para que Phoenix gestione cualquier programa, es necesario convertirlo a esta representación. También se especifican las especificaciones de estos convertidores específicos para cada tipo de archivo, denominados lectores de archivos en la terminología de Phoenix. Phoenix incluye lectores para archivos binarios ejecutables portátiles, CIL y la salida del front-end de Visual C++. Se pueden escribir lectores para otros lenguajes utilizando el SDK de Phoenix, aunque se requieren herramientas independientes como lex y yacc para escribir el analizador léxico y el analizador sintáctico, respectivamente.Una vez convertido el programa al formato IR, las herramientas de análisis y optimización pueden operar en ese formato. Phoenix incluye una selección de herramientas, como conteo de bloques, análisis de memoria, cobertura de código, análisis y optimización de código. El SDK de Phoenix también permite escribir e integrar otras herramientas. La generación de código se gestiona mediante escritores de archivos específicos de la arquitectura (ya sea la arquitectura física del procesador o la arquitectura de una máquina virtual). Phoenix proporciona el backend del compilador c2.dll, compartido con Visual C++, para gestionar 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.Gracias a 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.

Productization

En Visual Studio 2010, se utiliza un componente Phoenix (phx.dll) para algunos análisis estáticos (FxCop). (El compilador Phoenix, necesario para la mayor parte de la inserción de instrumentación, no está incluido en Visual Studio).

Véase también

  • Lista de compiladores
  • Roslyn (compilador)

Referencias

  1. ^ "Microsoft Phoenix SDK (2008-07-01)".
  2. ^ "Phoenix Academic Program". Archivado desde el original el 13 de diciembre de 2007. Retrieved 16 de noviembre, 2007.
  3. ^ Safonov, Vladimir O. (2010). "Microsoft Phoenix, Phoenix-Targeted Tools, and Our Phoenix Projects". Compiladores de confianza. Hoboken, New Jersey: John Wiley & Sons. pp. 239 –276. ISBN 9780470593349. Retrieved 8 de mayo, 2019.
  4. ^ Tairas, Robert; Gray, Jeff (10 de marzo de 2006). "Detección de clones basada en Phoenix usando árboles de sufijo" (PDF). Proceedings of the 44th annual Southeast regional conference. Association for Computing Machinery. pp. 679 –684. doi:10.1145/1185448.1185597.. Retrieved 8 de mayo, 2019.
  5. ^ Safonov, Vladimir; Gratchev, Mikhail; Grigoryev, Dmitry; Maslennikov, Alexander (29 de mayo – 1 de junio de 2006). "Aspecto. NET — toolkit orientado a aspectos para Microsoft. NET basado en Phoenix y Whidbey" (PDF). .NET Technologies 2006. Universidad de Bohemia Occidental: 19 –30. Retrieved 8 de mayo, 2019.
  6. ^ Ueng, Sain-Zee; Lathara, Melvin; Baghsorkhi, Sara S.; Hwu, Wen-mei W. "CUDA-Lite: Reducing GPU Programming Complexity". Idiomas y Compiladores para la computación paralela. Universidad de Illinois en Urbana-Champaign: Springer: 1 –15. Retrieved 8 de mayo, 2019.
  7. ^ Castro, Miguel; Costa, Manuel; Harris, Tim (6 de noviembre de 2006). "Asegurar el software haciendo cumplir la integridad del flujo de datos" (PDF). Proceedings of the 7th Symposium on Operating Systems Design and Implementation. USENIX Association: 147–160. Retrieved 8 de mayo, 2019.
  8. ^
  9. ^ "Phoenix Compiler Backend". Archivado desde el original el 26 de diciembre de 2010. Retrieved 16 de noviembre, 2007.
  10. ^ "Phoenix herramientas basadas". Archivado desde el original el 26 de diciembre de 2010. Retrieved 16 de noviembre, 2007.
  11. ^ "VS 2010 Beta 2 Code Analysis In-Depth First Look". Archivado desde el original el 6 de enero de 2010. Retrieved 30 de marzo, 2010.
  • Sitio oficial de Phoenix
  • Phoenix SDK June 2008 CTP Release(latest release to the moment of writing)
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save