Phoenix (compiler framework)

Phoenix (compiler framework)

Phoenix framework, being developed at Microsoft Research, is a framework for developing compilers as well as program analysis, testing and optimization tools, to be used as the back-end for future compiler technologies from Microsoft. [cite web | url = http://research.microsoft.com/phoenix/ | title = Phoenix Academic Program | accessdate = 2007-11-16] It is also available as an SDK, a pre-release build of which has been made accessible, to create compilers and code analysis tools using the Phoenix framework.

Overview

Phoenix defines an "Intermediate Representation" (IR) for programs, using ASTs, flow graphs, and an exception handling model. For any program to be handled by Phoenix, it needs to be converted to this representation. The specification for these file type-specific converters, called "File Readers" in Phoenix terminology, is also specified. Phoenix comes included with Readers for Portable Executable binary files, CIL and the output of Visual C++ front-end.cite web | url = https://connect.microsoft.com/content/content.aspx?ContentID=4527&SiteID=214 | title = Phoenix Compiler Backend | accessdate = 2007-11-16] Readers for other languages can be written using the Phoenix SDK, though separate tools such as lex and yacc need to be used to write the lexer and parser, respectively.

Once the program has been converted to the IR, the analysis and optimization tools can operate on that form. Phoenix includes a selection of tools - including block counting, memory analysis, code coverage, code analysis and optimization. [cite web | url = https://connect.microsoft.com/content/content.aspx?ContentID=4526&SiteID=214 | title = Phoenix based tools | accessdate = 2007-11-16] The Phoenix SDK can be used to write and plug-in other tools as well. Code generation is handled by providing architecture-specific (either physical architecture of the processor or a virtual machine architecture) "File Writers". Phoenix provides the c2.exe compiler backend, which it shares with Visual C++, to handle analysis, optimization and code generation for x86 architecture. Writers for other architectures must be provided separately.

As a result of the modular architecture, any component can be replaced with others without affecting the rest of the system. For example, to target the compiler to a different architecture, only the File Writer specific to the architecture needs to be changed, keeping the rest of the stack unchanged. Or to create a compiler for a new language, only the "Readers" need to be provided.

References

External links

* [http://research.microsoft.com/phoenix/ Phoenix Program]
* [https://connect.microsoft.com/Phoenix/Downloads/DownloadDetails.aspx?DownloadID=7540 Pre-Release build of Phoenix SDK]


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Phoenix — most often refers to: * Phoenix (mythology), a mythical bird that dies in flames and is reborn from the ashes * Phoenix, Arizona, a large city in the United States * Phoenix (spacecraft), a spacecraft that landed in the north polar region of… …   Wikipedia

  • List of compilers — This page is intended to list all current compilers, compiler generators, interpreters, translators, etc.C/C++ compilers Pascal CompilersOpen source compilers Production quality, open source compilers. * Amsterdam Compiler Kit (ACK) [C, Pascal,… …   Wikipedia

  • arts, East Asian — Introduction       music and visual and performing arts of China, Korea, and Japan. The literatures of these countries are covered in the articles Chinese literature, Korean literature, and Japanese literature.       Some studies of East Asia… …   Universalium

  • List of Microsoft codenames — Microsoft codenames are the codenames given by Microsoft to products it has in development, before these products are given the names by which they appear on store shelves. Many of these products (new versions of Windows in particular) are of… …   Wikipedia

  • List of BASIC dialects by platform — List of BASIC dialects by platform: This is a list of dialects of the BASIC computer programming language, sorted into groups for better conceptual organization.There is also an alphabetical list of BASIC dialects. These two lists should contain… …   Wikipedia

  • List of BASIC dialects — This article gives an alphabetical list of BASIC dialects mdash;a flat list of interpreted and compiled variants of the BASIC programming language. The dialects platform(s) (that is, the computer models and operating systems) are given in… …   Wikipedia

  • History of virtual learning environments — A virtual learning environment (VLE) is a system that creates an environment designed to facilitate teachers in the management of educational courses for their students, especially a system using computer hardware and software, which involves… …   Wikipedia

  • VxWorks — Infobox OS name = VxWorks caption = developer = Wind River Systems source model = kernel type = Micro kernel supported platforms = x86, MIPS, PowerPC, SH 4, ARM, StrongARM, xScale ui = family = Real time operating systems released = birth year… …   Wikipedia

  • Second Life — Developer(s) Linden Research, Inc Engine Proprietary …   Wikipedia

  • PERL — Paradigmen: prozedural, modular, teilweise objektorientiert Erscheinungsjahr: 1987 Entwickler: Larry Wall, Perl Porter Aktuelle  …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”