Microsoft Phoenix - Microsoft Phoenix

Microsoft Phoenix, разрабатывается в Microsoft Research, это основа для разработки компиляторы а также инструменты анализа, тестирования и оптимизации программ, которые будут использоваться в качестве серверной части для будущих технологий компилятора от Microsoft.[7] Он также доступен как SDK, предварительная сборка которого сделана доступной, для создания компиляторов и инструментов анализа кода с использованием инфраструктуры Phoenix.

Обзор

Microsoft Phoenix определяет промежуточное представление (IR) для программ, использующих ASTs, графики потока управления и модель обработки исключений. Чтобы программа могла обрабатывать Phoenix, ее необходимо преобразовать в это представление. Спецификация для этих конвертеров, зависящих от типа файла, называется читатели файлов в терминологии Phoenix также указывается. Phoenix поставляется с считывателями для Переносимый исполняемый файл двоичные файлы, CIL и выход Visual C ++ внешний интерфейс.[8] Читатели для других языков могут быть написаны с использованием Phoenix SDK, хотя отдельные инструменты, такие как lex и yacc нужно использовать для написания лексер и парсер, соответственно.

После преобразования программы в IR инструменты анализа и оптимизации могут работать с этой формой. Phoenix включает в себя набор инструментов, включая подсчет блоков, анализ памяти, покрытие кода, анализ кода и оптимизация.[9] Phoenix SDK также можно использовать для написания и подключения других инструментов. Генерация кода обрабатывается путем предоставления зависящей от архитектуры (физической архитектуры процессора или виртуальная машина архитектура) файловые писатели. Phoenix предоставляет c2.dll серверная часть компилятора, которую он разделяет с Visual C ++, для обработки анализа, оптимизации и генерации кода для x86 архитектура. Писатели для других архитектур должны быть предоставлены отдельно.

Благодаря модульной архитектуре любой компонент можно заменить, не затрагивая остальную часть системы. Например, чтобы нацелить компилятор на другую архитектуру, нужно изменить только модуль записи файлов, специфичный для этой архитектуры, оставив остальную часть стека неизменной. Чтобы создать компилятор для нового языка, нужны только читатели.

Производство

Компонент Phoenix (phx.dll) используется для статического анализа (FxCop ) в Visual Studio 2010.[10] (Сам компилятор Phoenix, который требуется для работы большинства инструментальных вставок, не входит в состав Visual Studio.)

Смотрите также

Рекомендации

  1. ^ "Академическая программа Феникс". Архивировано из оригинал 13 декабря 2007 г.. Получено 16 ноября, 2007.
  2. ^ Сафонов, Владимир О. (2010). «Microsoft Phoenix, инструменты, ориентированные на Phoenix, и наши проекты Phoenix». Надежные компиляторы. Хобокен, Нью-Джерси: John Wiley & Sons. С. 239–276. ISBN  9780470593349. Получено 8 мая, 2019.
  3. ^ Тайрас, Роберт; Грей, Джефф (10 марта 2006 г.). «Обнаружение клонов на основе Phoenix с использованием деревьев суффиксов» (PDF). Материалы 44-й ежегодной Юго-Восточной региональной конференции. Ассоциация вычислительной техники: 679–684. Получено 8 мая, 2019.
  4. ^ Сафонов, Владимир; Грачев Михаил; Григорьев Дмитрий; Масленников, Александр (29 мая - 1 июня 2006 г.). «Aspect.NET - аспектно-ориентированный инструментарий для Microsoft.NET на базе Phoenix and Whidbey» (PDF). .NET Technologies 2006. Университет Западной Богемии: 19–30. Получено 8 мая, 2019.
  5. ^ Уенг, Саин-Зи; Латара, Мелвин; Багсорхи, Сара С .; Хву, Вэнь-мэй В. «CUDA-Lite: снижение сложности программирования на GPU». Языки и компиляторы для параллельных вычислений. Иллинойсский университет в Урбана-Шампейн: Спрингер: 1–15. Получено 8 мая, 2019.
  6. ^ Кастро, Мигель; Коста, Мануэль; Харрис, Тим (6 ноября 2006 г.). «Защита программного обеспечения путем обеспечения целостности потока данных» (PDF). Труды 7-го симпозиума по разработке и внедрению операционных систем. Ассоциация USENIX: 147–160. Получено 8 мая, 2019.
  7. ^ [1][2][3][4][5][6]
  8. ^ "Серверная часть компилятора Phoenix". Архивировано из оригинал 26 декабря 2010 г.. Получено 16 ноября, 2007.
  9. ^ «Инструменты на основе Phoenix». Архивировано из оригинал 26 декабря 2010 г.. Получено 16 ноября, 2007.
  10. ^ «Первый взгляд на углубленный анализ кода VS 2010 Beta 2». Архивировано из оригинал 6 января 2010 г.. Получено 30 марта, 2010.

внешняя ссылка