SML#: Toward the ideal interoperability between languages and systems
This talk introduces the development of the SML# language and its native code compiler from the perspective of its interoperability with operating systems and foreign libraries. SML# is a statically-typed functional programming language derived from Standard ML. One of its core features is interoperability with the C language, which enables SML# programs to be used and statically-linked with C libraries. For example, SML# does not provide any builtin primitives for multithreading but allows the users to import C functions that may create threads. Even in a statically-typed language equipped with native code generation, achieving such an interoperability is not straightforward because of polymorphism and garbage collection, which are also closely related to VM-based dynamic languages. The major policy of the SML# development is to make everything “natural” without elaborating its own run-time environment; in other words, SML# regards the native platform as the target VM shared with other languages. This talk will give the design choices and internal details of the SML# compiler and run-time system, including type-directed compilation and independence of garbage collector from thread scheduler.
Mon 13 MarDisplayed time zone: Osaka, Sapporo, Tokyo change
11:00 - 12:00
|SML#: Toward the ideal interoperability between languages and systemsMoreVMs Keynote|
K: Katsuhiro Ueno Niigata University