BrainDump
  Home arrow BrainDump arrow The Phoenix Compiler Framework
ASP Free Forums 
.NET  
ASP  
ASP Code  
ASP.NET  
ASP.NET Code  
BrainDump  
C#  
Code Examples  
Database  
Database Code  
IIS  
Microsoft Access  
MS SQL Server  
Silverlight  
Visual Basic.NET  
Windows Scripting  
Windows Security  
XML  
Mobile Linux 
App Generation ROI 
IBM® developerWorks 
ASP Web Hosting  
ASP.NET Web Hosting 
Windows Web Hosting
 
Weekly Newsletter
 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid 
Request Media Kit
Contact Us 
Site Map 
Privacy Policy 
Support 
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
BRAINDUMP

The Phoenix Compiler Framework
By: Gabor Bernat
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: 5 stars5 stars5 stars5 stars5 stars / 1
    2009-03-04

    Table of Contents:
  • The Phoenix Compiler Framework
  • The Heart of Phoenix
  • Usability of Phoenix
  • Why Phoenix?

  • Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      Del.ici.ous Digg
      Blink Simpy
      Google Spurl
      Y! MyWeb Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article
     
     
    ADVERTISEMENT


    The Phoenix Compiler Framework


    (Page 1 of 4 )

    In our hectic world you may write programs in a huge variety of languages: C#, C/C++, F#, Haskell, Visual Basic and the list seems endless. The common factor among them is that every program, regardless of language, will be compiled before it becomes proper working machine code. Exploiting this common trait may revolutionize our way of thinking about programming, and the first technology to try this is here, under the code name of Phoenix.

    The Phoenix Compiler Framework

    Phoenix is an innovative framework that tries to create a central compiler system that can handle all of the imaginable language compilers, and even offers the option of writing your own compiler for your own language.

    The Phoenix Logo - Image Courtesy Of Microsoft

    Of course, it also completes a couple of other tasks, like letting you extend the compiler for the languages already existing, and as the upper image states: generate, optimize and analyze your code.

    However, before we go any further let me sum up concisely the topic of this article. Just as the title suggests, it is all about presenting the Phoenix Compiler Framework. I will divide the whole process into two articles. During the first one (what you are already reading), I will present the framework's main concept and what you can do with it. 

    Within an article that will appear later titled "Low Level Code Optimization in Phoenix," I will go into the more complicated details of how Phoenix accomplishes its work. This will let you observe how the compiler performs and to comprehend the difficulties faced by producing machine code from what you type inside the computer.

    The development team made a couple of interesting videos related to this that appeared on channel 9, however, for those of you that do not want to watch an hour-long video for a brief overview, let's get moving. 

    Kang Su Gatlen announced the project back in 2004, declaring that it would be a next generation compiler that will represent the basis of code generation in the future for all of the Microsoft's applications.

    The Phoenix is a joint project of the Microsoft Research, Common Language Runtime (CLR) and Visual C++ teams. So the Research segment works with the development team to create a compiler that can be used by university professors to teach compiler principles, and also by developers for their code. 

    The Phoenix platform overview - Image Courtesy Of Microsoft

    This is an Open Framework, so anyone interested in it can use it. Microsoft will certainly use it; in fact, the company intends to compile all of their products (OS, Office, Visual Studio, and so forth) with it.

    Nevertheless there are a couple of situations and structures that, while discussed in theory, may come up that are absurd in practice -- when you want, for instance, to compile a million lines of long code. Therefore, to develop something that can handle this, the entire framework is pluggable and modular.

    In practice, this means that you can replace every part of the framework with your own specialized code, or you can just extend it where you want to. With time, an SDK (Software Development Kit) emerged, providing program analysis and transformation regardless of the language used.

    More BrainDump Articles
    More By Gabor Bernat


     

    BRAINDUMP ARTICLES

    - Introduction to Office Live Workspace
    - Using MS Excel for One-way Analysis of Varia...
    - Comparing Data Sets Using Statistical Analys...
    - Import Blogger Posts into WordPress Using Wi...
    - Download WordPress from an FTP Server and Ru...
    - Install and Run WordPress in XAMPP Local Host
    - What Windows 7 Brings to the Table
    - Virtualization and Sandbox Detection
    - Advanced Firebug Techniques in Windows XP Ho...
    - Editing CSS with Firebug in Windows XP Home
    - Using Firebug in Windows XP Home
    - Migrating to Exchange Server 2007
    - Using System Restore on a Non-Bootable PC
    - Finding Logged on Users and More Scripting S...
    - Developing Macro Commands in MS Excel





    © 2003-2009 by Developer Shed. All rights reserved. DS Cluster 1 Hosted by Hostway
    For more Enterprise Application Development news, visit eWeek