2. Kouji Matsui - kekyo
• NAGOYA city, AICHI pref., JP
• Twitter – @kekyo2 / Facebook
• ux-spiral corporation
• Microsoft Most Valuable Professional VS
and DevTech 2015-
• Certified Scrum master / Scrum product
owner
• Center CLR organizer.
• .NET/C#/F#/IL/metaprogramming or like…
• Bike rider
3. IL2C
A translator implementation of
.NET intermediate language to C language.
With can be running on multi platform and
very tiny resources!!
6. Architecture
C# Code Visual Studio
IL2C
Assembly
(*.dll)
C Language
(*.c, *.h)
C Language
(*.c, *.h)
IL2C runtime
(il2c.c, il2c.h)
Target dev C language compiler
(VS, Arduino, mbed and etc…)
Target native
binary
Make automate,
Today’s goal
7. What’s IL2C?
IL2C's implementation priorities:
◦Better predictability for runtime cost.
◦Better code portability.
Final goals:
◦Replacement NETMF
◦Scales between small
and large systems
https://github.com/kekyo/IL2C
8. Supported targets
IL2C generates truly neutral C source code.
◦Not dependent platforms.
◦I tested on:
◦ Win32 (by VC++)
◦ WDM (on kernel mode)
◦ UEFI x64 services (bootup from USB memory stick)
◦ Arduino driven ESP32/ARM Cortex-M4
Very tiny binary cost:
◦UEFI version binary is total ~20KB (include runtime)
9. The demos
I was ported for C# C
Demonstrates:
◦BBC micro:bit (Cortex-M0)
◦Show C# code
◦Install NuGet package process
◦Translated code
10. Architecture
C# Code Visual Studio
IL2C
Assembly
(*.dll)
C Language
(*.c, *.h)
C Language
(*.c, *.h)
IL2C runtime
(il2c.c, il2c.h)
Target dev C language compiler
(VS, Arduino, mbed and etc…)
Target native
binary
I’ll next try to make
automate