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 implementationof
.NET intermediate language to C language.
With can be running on multi platform and
very tiny resources!!
Architecture
C# Code VisualStudio
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 implementationpriorities:
◦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 generatestruly 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 wasported for C# C
Demonstrates:
◦BBC micro:bit (Cortex-M0)
◦Show C# code
◦Install NuGet package process
◦Translated code
10.
Architecture
C# Code VisualStudio
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