Adventures in Interoperability: The SML.NET Experience

  • Nick Benton ,
  • Andrew Kennedy ,
  • Claudio Russo

PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming |

Published by ACM New York, NY, USA

Publication

SML.NET is a compiler for Standard ML that targets the Common Language Runtime and is integrated into the Visual Studio development environment. It supports easy interoperability with other .NET languages via a number of language extensions, which go considerably beyond those of our earlier compiler, MLj. This paper describes the new language extensions and the features of the Visual Studio plugin, including syntax highlighting, Intellisense, continuous type inference and debugger support. We discuss our experiences using SML.NET to write SML programs that interoperate with other .NET languages, libraries and frameworks. Examples include the Visual Studio plugin itself (written in SML.NET, using .NET’s COM interop features to integrate in a C++ application) and writing ASP.NET and Pocket PC applications in SML.