Майкрософт Феникс
Microsoft Phoenix — это пакет SDK, доступный в Microsoft Connect для создания компиляторов, оптимизации кода и выполнения анализа кода. Microsoft описала это в прошедшем времени 1 июля 2008 г. [ 1 ]
Исходное описание
[ редактировать ][Он должен был использоваться в качестве серверной части для будущих технологий компилятора от Microsoft . [ 8 ] Он [был] также доступен в виде SDK , предварительная сборка которого стала доступной, для создания компиляторов и инструментов анализа кода с использованием платформы Phoenix.
Обзор
[ редактировать ]Microsoft Phoenix определяет промежуточное представление (IR) для программ, используя AST , графы потока управления и модель обработки исключений. Чтобы любая программа могла обрабатываться Phoenix, ее необходимо преобразовать в это представление. спецификации этих конвертеров для конкретных типов файлов, которые в терминологии Phoenix называются устройствами чтения файлов Также указаны . В комплект поставки Phoenix входят программы чтения двоичных файлов Portable Executable , CIL и выходные данные интерфейса C++ . Visual [ 9 ] Программы чтения для других языков можно написать с использованием Phoenix SDK, хотя отдельные инструменты, такие как lex и yacc необходимо использовать для написания лексера и парсера соответственно.
После преобразования программы в IR инструменты анализа и оптимизации могут работать в этой форме. Phoenix включает в себя набор инструментов, включая подсчет блоков, анализ памяти, покрытие кода , анализ кода и оптимизацию . [ 10 ] Phoenix SDK также можно использовать для написания и подключения других инструментов. Генерация кода зависящих от архитектуры (физической архитектуры процессора или архитектуры виртуальной машины ) осуществляется с помощью средств записи файлов, . Феникс предоставляет c2.dll
серверная часть компилятора, которая используется совместно с Visual C++, для выполнения анализа, оптимизации и генерации кода для архитектуры x86 . Писатели для других архитектур должны предоставляться отдельно.
Благодаря модульной архитектуре любой компонент можно заменить, не затрагивая остальную часть системы. Например, чтобы настроить компилятор на другую архитектуру, необходимо изменить только средство записи файлов, специфичное для этой архитектуры, оставив остальную часть стека неизменной. Чтобы создать компилятор для нового языка, необходимо предоставить только программы чтения.
Производство
[ редактировать ]Компонент Phoenix (phx.dll) используется для некоторых статических анализов ( FxCop ) в Visual Studio 2010. [ 11 ] (Сам компилятор Phoenix, который необходим для работы большинства инструментов, не входит в состав Visual Studio.)
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Microsoft Phoenix SDK (01 июля 2008 г.)» .
- ^ «Академическая программа Феникс» . Архивировано из оригинала 13 декабря 2007 года . Проверено 16 ноября 2007 г.
- ^ Сафонов, Владимир О. (2010). «Microsoft Phoenix, инструменты, ориентированные на Phoenix, и наши проекты Phoenix» . Надежные компиляторы . Хобокен, Нью-Джерси: John Wiley & Sons. стр. 239–276. ISBN 9780470593349 . Проверено 8 мая 2019 г.
- ^ Тайрас, Роберт; Грей, Джефф (10 марта 2006 г.). «Обнаружение клонов на основе Phoenix с использованием суффиксных деревьев» (PDF) . Материалы 44-й ежегодной Юго-восточной региональной конференции . Ассоциация вычислительной техники: 679–684 . Проверено 8 мая 2019 г.
- ^ Сафонов Владимир; Грачев Михаил; Григорьев Дмитрий; Масленников, Александр (29 мая – 1 июня 2006 г.). «Aspect.NET — аспектно-ориентированный набор инструментов для Microsoft.NET на основе Phoenix и Whidbey» (PDF) . .NET-технологии 2006 . Западночешский университет: 19–30 . Проверено 8 мая 2019 г.
- ^ Уенг, Сайн-Зи; Латара, Мелвин; Багсорхи, Сара С.; Хву, Вэнь-мэй В. «CUDA-Lite: снижение сложности программирования на графическом процессоре» . Языки и компиляторы для параллельных вычислений . Университет Иллинойса в Урбана-Шампейн: Спрингер: 1–15 . Проверено 8 мая 2019 г.
- ^ Кастро, Мигель; Коста, Мануэль; Харрис, Тим (6 ноября 2006 г.). «Защита программного обеспечения путем обеспечения целостности потока данных» (PDF) . Материалы 7-го симпозиума по проектированию и внедрению операционных систем . Ассоциация USENIX: 147–160 . Проверено 8 мая 2019 г.
- ^ [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ]
- ^ «Бэкэнд компилятора Phoenix» . Архивировано из оригинала 26 декабря 2010 года . Проверено 16 ноября 2007 г.
- ^ «Инструменты на базе Phoenix» . Архивировано из оригинала 26 декабря 2010 года . Проверено 16 ноября 2007 г.
- ^ «Первый углубленный анализ кода VS 2010 Beta 2» . Архивировано из оригинала 6 января 2010 года . Проверено 30 марта 2010 г.
Внешние ссылки
[ редактировать ]- Официальный сайт Феникса
- Phoenix SDK CTP-версия, июнь 2008 г. (последняя версия на момент написания)