‹Programming› 2023
Mon 13 - Fri 17 March 2023 Tokyo, Japan

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 Mar

Displayed time zone: Osaka, Sapporo, Tokyo change