Ole Lehrmann Madsen
University of Aarhus
Ole Lehrmann Madsen (www.daimi.au.dk/~olm) is a professor of Computer Science, Aarhus University, and director of the Alexandra Institute A/S (www.alexandra.dk) – a joint venture between universities, companies and public institutions to promote private and public co-operation within IT research. He is a co-founder and chairman of the board for Mjølner Informatics
Monday 11:00 - 12:00 (Conference Hall)
Early experience with language interoperability - porting the BETA language to .NET and Java
Virtual machines with just-in-time compilers are becoming more and common as the basic technology for implementing object-oriented languages. For some years Java from Sun Microsystems has been the dominant technology in industry, but with the announcement of Microsoft’s .NET platform, a possible alternative has arrived. Both platforms are based on virtual machines with a bytecode instruction set and type information that makes it possible to verify the safety of a given program. The Java platform has been designed solely for supporting the Java language although there exist implementations for other languages. The .NET-platform on the other hand was designed to support language interoperability. On .NET it is e.g. possible to use a class written in one language and make a subclass of it in another language. The C# language has been designed for the .NET-platform and is in many ways similar to the Java language.
In this talk we will describe the experience with porting the BETA language to the Java- and .NET platforms. The goal of this project is:
- To get experience with implementing a language like BETA on these platforms.
BETA differs in many respects from Java and C# and since the Java- and .NET platforms are both designed for implementing Java- and C#-like languages, there may be parts of BETA that can not be easily implemented.
- To be able to evaluate and compare the two platforms.We find it interesting to find out if there are significant differences between the two platforms.
- To test language interoperability on these platforms.
One goal is to find out if language interoperability does work as promised by .NET. Another goal is to find out if language interoperability works with BETA and the other .NET languages. Since BETA differs significantly from e.g. C# it is not obvious whether it is useful in practice to use a BETA pattern (class) in C#. In addition we are interested in experimenting with language interoperability on the Java platform.
- To offer a language – BETA – that can be used to write applications for both platforms.
If we are successful in porting BETA to both platforms, it will be possible to use BETA for implementing applications that can run on both platforms.
The current status of the project is that a large subset of BETA has been implemented on both platforms. The talk will describe the experience so far and show examples of BETA programs running on both platforms. This includes a demo of using Visual Studio for editing and debugging BETA programs – this is a particular impressive feature of .NET. We also show examples of BETA programs inheriting from Java- and C#-classes and vice versa. Despite the fact that the Java-platform was not designed for language interoperability, it has so far been straightforward to implement language interoperability between Java and BETA.