*
Quick Links|Home|Worldwide
Microsoft*
Search for



Abstract IL

The .NET Common IL is the binary format for .NET Common Language Runtime executables.  There are many, many interesting applications for manipulating, analyzing and transforming .NET Framework executables, ranging from static analysis for error detection to transforming binaries to add dynamic security checks to building IL-IL optimization and profiling tools. 

The Abstract IL toolkit provided here lets you get access to the contents of .NET Common IL binaries in an extremely convenient for many applications: it transforms the binaries into structured abstract syntax trees that can be manipulated using the convenient features of the C# or F# programming languages.

The Abstract IL SDK is really three toolkits in one:

  1. Abstract IL: An set of .NET Managed libraries for performing analysis and manipulations on .NET Common IL binaries.
  1. ILX: An implementation of ILX, which is the .NET Common IL extended with functional language constructs. The implementation is currently in the form of an extended assembler called ILX2IL.
Working with different formats

The tools currently allow you to work with three different representations of .NET Common IL:

bullet

foo.il: This is the .IL (or .ILX) assembly language formats, as accepted and generated by ILASM and ILDASM in the IL SDK.  This format is good for getting going on samples and for codegen for prototype compilers.  The toolset can also produce this format.
 

bullet

foo.dll or foo.exe: The .NET Common IL binary format.  The current release includes proper writers and readers for the IL binary formats.
 

bullet

foo.ilo: This format is internal to the toolset and is a binary dump of the internal data structures associated with a module, e.g. foo.il or foo.dll or foo.exe.  You can produce these formats by calling the utility program IL2ILO.EXE on the module (there are some special rules if you are doing this for multi-module assemblies).  In general it is now preferable to use the binary readers and writers directly.

You can now work with binary formats without having an RTM build of the .NET Framework SDK installed.

Don Syme (email, public website, internal project websites)


©2008 Microsoft Corporation. All rights reserved. Terms of Use |Trademarks |Privacy Statement