Compilers, SDKs, and Tools


This page features resources pertaining to...

Academic Languages and Compilers

The following academic languages are among those that are targeting the .NET Common Language Runtime:

Active Oberon for .NET

Active Oberon is an interpretation of the programming language Oberon in the context of the new Microsoft .NET technology. It provides an explicit notion of object types including "active" objects with integrated thread, a powerful concept of definition as both unit of implementation and unit of service and a module construct that simultaneously acts as name-space and singleton object.

 Link to Active Oberon

Component Pascal

Component Pascal is a Pascal-like language, specifically designed for programming components. Professor John Gough and Dr Paul Roe of Queensland University of Technology have been porting the language to the .NET platform. The project is part of a larger one at the Distributed Systems Technology Research Centre  investigating component technology. Component Pascal on .NET interworks with other CLS-compliant languages. The compiler is written in 25,000 lines of Component Pascal and bootstraps on .NET. The project is open source.

 Link to Component Pascal

Eiffel

Eiffel is a comprehensive software development environment (ISE Eiffel) based on a method that covers the entire software lifecycle—not just implementation, but also analysis, design, and maintenance. The environment is based on the Eiffel language, thoroughly applying the principles of object technology and implementing the concepts of Design by Contract™ to produce highly reliable, extendible, and reusable applications. ISE Eiffel is particularly geared towards large and complex systems and is used by major organizations in the financial, defense, real-time, and other industries for mission-critical developments. Universities worldwide (such as Monash University) also use Eiffel to teach programming and software engineering at all levels.

 Link to Eiffel

Hotdog Scheme

Scheme is a simple, yet powerful, programming language. As a member of the Lisp family of languages, it is dynamically-typed and mostly functional. Since it is much smaller than Lisp, it can also be used as an embedded language, a scripting language or an extension language. The Hotdog Scheme compiler currently compiles most of the Scheme language. It has been extended to support development within the .NET framework, allowing integration of Scheme and other languages targeting the runtime (Visual Basic, C++, C#, etc.).

The Hotdog compiler backends to the JVM, to C, and to .NET using the same runtime system. The system is designed to support many backends and easy inter-operability between Scheme and the target language.

 Link to Hotdog Scheme

Mercury

Mercury is a new logic/functional programming language, which combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features. Its highly optimized execution algorithm delivers efficiency far in excess of existing logic programming systems, and close to conventional programming systems. Mercury addresses the problems of large-scale program development, allowing modularity, separate compilation, and numerous optimization/time trade-offs.

 Link to Mercury

Mondrian/Haskell

Mondrian is a functional language specifically designed for interoperating in OO environments. It is a small language while still providing the powerful features of function languages such as non-strict evaluation and higher-order functions. Mondrian interworks with other .NET languages so that the benefits of the different languages styles can easily be combined.

The Haskell for .NET compiler is a version of the Glasgow Haskell Compiler (GHC). A code output stage has been added which produces (one of two) internal formats used by the Mondrian compiler. This output is then passed to the Mondrian to be compiled for .NET.

 Link to Mondrian

Perl/Python

Perl for .Net and Python for .Net will provide programmers with easy interoperability between languages, cross-language inheritance and they will enable programmers to simply create, extend and consume .NET components.

 Link to Perl/Python

SML.NET

Standard ML is a safe, modular, strict, functional, polymorphic programming language with compile-time type checking and type inference, garbage collection, exception handling, immutable data types and updateable references, abstract data types, and parametric modules. It has efficient implementations and a formal definition with a proof of soundness.

SML.NET compiles the full SML'97 language to Microsoft's .NET common language runtime. A notable feature of the compiler is the focus on high-level interoperability with code written in other languages. SML.NET supports smooth, safe and bi-directional inter-language working with code written in C#, Visual Basic, JScript or any other .NET language.

 Link to SML.NET

Software Development Kits

AbsIL/ILX SDK

The ILX SDK implements extensions to the .NET Common IL for closures, function types, thunks, discriminated unions and polymorphism. The implementation is by translation from ILX assembly language files to CIL assembly language files. The SDK includes samples and is suitable for use with the .NET Framework SDK, and is mainly for the use of Project 7 participants.

 Related Links

 ILX Reference Manual
 ILX SDK
AbsIL/ILX Web site

The SDK is really three toolkits in one:

  1. Abstract IL: An OCaml toolkit for performing analysis and manipulations on MS-IL binaries.

    This toolkit is a productive way to get going on research projects for IL analysis and manipulation.

    You now need OCaml version 3.04 to use this part of the toolkit.

    When writing code that uses these libraries please follow the guidelines at research.microsoft.com/projects/ilx/absil.htm to help ensure your code will have a long life as the toolkit progresses.

  2. ILX: An implementation of MS-ILX, which is MS-IL extended with functional language constructs. The implementation is currently in the form of an extended assembler called ILX2IL.

    The current release offers much the same functionality as the previous release. The internal APIs to this functionality are not yet available directly from OCaml, but will be in a future release.

  3. Two utility tools: ILVERIFY and ILVALID, which implement a verifier and a (weaker) validator for MS-IL code.

    These implementations are useful for finding codegen bugs, but there are some small incompletenesses with these tools that remain to be ironed out.

Working with different formats
The tools currently allow you to work with three different representations of MS-IL:

To work with binary formats you currently need an RTM build of the .NET Framework SDK. In principle you don’t need this to work with IL assembly language formats, and indeed you can work with the assembly language formats even on other operating systems.. In a future version, once I've implemented the binary writer, you will even be able to write binaries across multiple platforms.

Because you must agree to an individual EULA for the ILX SDK, it is only available for download from the Web.

Microsoft .NET Framework SDKupdated

The Microsoft .NET Framework Software Development Kit (SDK) includes the .NET Framework, as well as everything you need to write, build, test, and deploy .NET Framework applications—documentation, samples, and command-line tools and compilers.

Install .NET Framework SDK
This setup program may take up to five minutes to load into your system's memory. Please be patient.
 
 Related Links

Late-Breaking Known Issues
MSDN .NET Developer Center
Service Pack 6a
Internet Explorer 6.0
Microsoft Data Access Components 2.7
Windows Update

The .NET Framework SDK runs on:

Software Requirements: Recommended Software:
Note  If you have already installed Microsoft Visual Studio .NET, you do not need to install the .NET Framework SDK separately. Visual Studio .NET includes the SDK.

Related Programs: The Microsoft .NET Framework redistributable package contains only the runtime elements required to run .NET Framework applications.

Tools

GUARD: A Parallel Relative Debugger

Relative debugging is a technique that allows a user to compare data between two executing programs. It was devised to aid the testing and debugging of programs that are either modified in some way, or are ported to other computer platforms. Whilst traditional debuggers force the programmer to understand the expected state and internal operation of a program, relative debugging makes it possible to trace errors by comparing the contents of data structures between programs at run time. In this way, the programmer is less concerned with the actual state of the program, and more concerned with finding when and where differences between the old and new codes occur.

The original implementation of relative debugging, called GUARD95, only allowed the programs to run on sequential platforms. The most recent implementation, GUARD2000, uses an enhanced dataflow-based execution mechanism, which makes it possible to run the programs on parallel computers. This is of significance interest since errors are often introduced when a program is ported from a sequential platform to a parallel one.

Features of GUARD include:

 Visit the GUARD Web site

Microsoft .NET Framework Redistributable

The Microsoft .NET Framework includes everything you need to run .NET Framework applications, including the Common Language Runtime, the .NET Framework class library, and ASP.NET.

.NET Framework Redistributable Package Technical Reference
Install .NET Framework Redistributable
 
 Related Links

Service Pack 6a
Internet Explorer 6.0
Microsoft Data Access Components 2.7
Windows Update

Installation Instructions:

  1. Click the Installation link.
  2. Follow the instructions.
  3. Save the extracted files to your hard disk.
  4. Double-click dotnetfx.exe.
  5. Follow the instructions to set up.

Typical Installation Requirements
The .NET Framework runs on:


Software Requirements:
Server Installation Requirements
If you have been directed to do a server installation, you must meet the following requirements in addition to the typical installation requirements:
Note  Most users will perform a typical installation and can ignore these requirements. If you are unsure which type of installation to perform, only meet the typical installation requirements.

Related Programs: If you plan on developing .NET Framework applications, the Microsoft .NET Framework SDK includes the .NET Framework, as well as everything you need to write, build, test, and deploy .NET Framework applications—documentation, samples, and command-line tools and compilers.

Microsoft Mobile Internet Toolkit

Extend the power of the Microsoft .NET Framework and Microsoft Visual Studio .NET to build mobile Web applications. The Microsoft Mobile Internet Toolkit contains server-side technology that enables ASP.NET to deliver markup to a wide variety of mobile devices. These devices include WML and cHTML cell phones, HTML pagers, and PDAs like the Pocket PC.

Install MMIT Release
Install MMIT RC
 
 Related Links

MMIT Web site
 Peer-to-Peer Newsgroup

The Mobile Internet Toolkit includes:

Requirements
The Microsoft Mobile Internet Toolkit requires that the .NET Framework or Visual Studio .NET be present before installation.

If you are using Visual Studio .NET (RTM version) install MMIT RTM. If you are using Visual Studio .NET (Release Candidate), install MMIT RC.

SOAP Toolkit 2.0 SP2

This is the first maintenance release of the SOAP Toolkit 2.0. There are no new features included in this release, but many bugs have been fixed, so it is recommend that everyone install it. This is a complete release; your previous release should be uninstalled before this one is installed.

Install SOAP Toolkit 2.0 SP2 
Install Samples
Install Redistributable Files
 
 Related Links

Documentation
Internet Explorer 6.0
Visual Basic runtime
Windows Installer Redistributable for Windows 95 and Windows 98
Windows Installer Redistributable v1.1 for Windows NT 4.0 (x86)

The major features of the Microsoft SOAP Toolkit 2.0 SP2 include:

Install SOAP Toolkit 2.0 SP2 by using the Microsoft Installer, which is part of Windows 2000, Office 2000, Windows Me, SQL Server 2000, etc. Windows Installer is released with many newer Microsoft products, but it may not be on your computer if you are running older versions of Microsoft Office or the Microsoft Windows operating system. If you are running Windows NT 4.0, Windows 98, or Windows ME, you must first update your Windows Installer to version 1.1. If you are running Windows 2000, you already have version 1.1, and there is no need to reinstall. After Windows Installer version 1.1 has been installed on your computer, you can download SOAP Toolkit 2.0 SP2.

The SOAP Toolkit 2.0 SP2 Samples are provided in a separate installation program to simplify distribution of the toolkit files.

The redistributable files contain the core SOAP Toolkit 2.0 runtime files in a merge module format. You can use these redistributable files to add the SOAP Toolkit 2.0 SP2 to your installation program.

Installation Notes

SOAP Toolkit 2.0 SP2 requires that the Visual Basic runtime files be installed before the installation script is run.  If you are running Windows 98 and haven't previously installed the Visual Basic runtime, please install it before attempting to install this release.

To run this release of the SOAP Toolkit, you must first have installed Internet Explorer version 5.0 or higher.

MSXML 3.0 SP1 will be installed with this release if you don't already have the current version installed.

Other Resources

Project 7

Project 7 is a research project targeting the release of the .NET Common Language Runtime (CLR). This unique project brings together languages from different programming language families to work toward the unique goal of producing a runtime that could truly support multiple languages. This project was started in the summer of 1999 and is still ongoing.

 Visit the Project 7 Web site for more information.

© 2001-2002 Microsoft Corporation. All rights reserved. Terms of Use.