Welcome to the A# home page!
The content of this page in no way reflects the opinions,
standards, or policy of the
United States Air Force Academy
or the United States government.
A# is a port of Ada to the Microsoft
.NET Platform. A# was originally developed at the
Department of Computer Science
United States Air Force Academy.
We distribute A# as a service to the Ada community under
the terms of the GNU general public license.
A# has been fully integrated into AdaGIDE, a
leading open-source IDE for Ada under Windows. A .NET port of the
multi-platform open-source GUI Design tool RAPID
has been completed. A# can now also be run from within Visual Studio 2005
(click here for details).
Read more about the A# project in our
2006 Crosstalk paper or our
SIGAda 2002 paper.
Slides from the SIGAda tutorial are included in mgnat.zip (from the download site).
(available 14 November 2004).
AdaCore Announces BETA program for .NET
- AdaCore announced the availability of a beta of GNAT for .NET, which will be
a fully supported .NET product with all of the features of A# and more.
AdaCore customers and potential customers should contact
email@example.com for more information.
2 May 2006 (updated 6 June 2006)
- Installer to integrate into Visual Studio 2005!! Click
here for more information.
- adds support for .NET 2.0 Generic Classes. Click
here for more information.
Newest release 6 March 2006
- now targets .NET v 2.0 (VS 2005). .NET 1.0 will no longer be
- mgnat.zip and InstallShield installer updated. Maintaining the zip and
the installer separately became annoying, so now you should unzip the zip file
and then run the installer using the unzipped folder as the destination.
Newest release 8 November 2005
- new Ada 2005 features (including interfaces)
- mgnat.zip and InstallShield installer updated.
New with version 2.01 (26 October 2004)
- Totally redesigned msil2ada (uses .NET Reflection)
- InstallShield Installer available
- Now compiles with GNAT GAP (Academic Edition) 1.0.0 (uses some Ada 2005
New with version 1.20
- All dependence on Visual J# eliminated (at least I hope so)
- Sources now compilable with GNAT 3.15 (1.1 had to be compiled with 3.13p)
- Extract Ada specification files directly from .NET DLLs (MSIL2Ada)
- Compile Ada programs into .NET executables (MGNAT)
Before downloading, get:
Then at the sourceforge
download site, you can get:
- mgnat.zip: (includes source and executable for A# compiler, which compiles from Ada to
the Microsoft Common Intermediate Language). See mgnat\include folder for Ada specs for standard .NET DLLs-- these specs were
generated by MSIL2Ada, below.
- asharp-setup.exe: (installer-- run this and select the same folder where you unzipped MGNAT) OR:
- Add mgnat\bin to your PATH
- Add C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ to your path (or
wherever ILASM.exe is located).
- Add the following to your registry (modify to your unzip folder):
- HKLM\Software\Ada Core Technologies\MGNAT\Root = "c:\mgnat"
- HKLM\Software\Ada Core Technologies\MGNAT\Standard Libraries\DOTNET =
- Run compile.bat in c:\mgnat\include (if using .NET DLLs)
- Finally, run register_mgnat.bat in the DLL folder to install the Ada libraries as
- msil2ada.zip: (source for the MSIL2Ada tool-- EXE included in MGNAT.ZIP.
Needed only if you plan to modify MSIL2Ada).
- visualstudio-setup.exe (installer which integrates A# into Visual Studio
.NET-- requires mgnat.zip and asharp-setup.exe to have been done first).
Bug report list is here.
A# is free software, but donations to support web hosting, etc. are welcome!
Rebuilding from sources:
To rebuild from sources, you can use the Makefile in the src subfolder.
Also use the makefile in src\lib to rebuild mgnat.dll and mgnatcs.dll. Note that MGNAT must be compiled using GNAT
for Windows, and also that the Makefile
must be run from a UNIX shell (e.g. Cygwin, at
http://www.cygwin.com ). Rebuilding mgnatcs.dll requires MS Visual
Studio .NET. "make install" will then copy the files.
Note that you will have to change Makefile and jMakefile to reflect your
directory structure (look for "c:/d/rsrch..." and replace and also "c:\d\rsrch...").
- Building a DLL: Try "mgnatmake -z test_pkg.adb -largs /DLL /out=test_pkg.dll",
where test_pkg.adb is a package that with's all of the others that you want to
include in the DLL. Make sure that ada_test_pkg_pkg.adainit is called by
the client of the DLL.
Comments, suggestions, and bug reports are welcome.
If you have a comment, suggestion or bug report, send email to:
The bug report list is here.
Want to stay up to date? Consider using the RSS feed. A free news reader is available at:
Number of hits since 16 May 2006.