Making archive
IL2C
#6-54
2018.3.8 MVP SUMMIT – VS HACKATHON
AT MICROSOFT BUILDING 33/RAINER
- KOUJI MATSUI (@KOZY_KEKYO, @KEKYO2)
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
IL2C
A translator implementation of
.NET intermediate language to C language.
With can be running on multi platform and
very tiny resources!!
How translation
How translation
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
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
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)
The demos
I was ported for C#  C
Demonstrates:
◦BBC micro:bit (Cortex-M0)
◦Show C# code
◦Install NuGet package process
◦Translated code
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
Any question? Thank you for seeing!!
https://github.com/kekyo/IL2C

Making archive IL2C #6-54 at MVP Summit 2018 VS Hackathon

  • 1.
    Making archive IL2C #6-54 2018.3.8 MVPSUMMIT – VS HACKATHON AT MICROSOFT BUILDING 33/RAINER - KOUJI MATSUI (@KOZY_KEKYO, @KEKYO2)
  • 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 implementationof .NET intermediate language to C language. With can be running on multi platform and very tiny resources!!
  • 4.
  • 5.
  • 6.
    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
  • 11.
    Any question? Thankyou for seeing!! https://github.com/kekyo/IL2C