SlideShare a Scribd company logo
1 of 11
Download to read offline
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

More Related Content

More from Kouji Matsui

More from Kouji Matsui (20)

Locality of Reference
Locality of ReferenceLocality of Reference
Locality of Reference
 
Nespのコード生成
Nespのコード生成Nespのコード生成
Nespのコード生成
 
C#でわかる こわくないMonad
C#でわかる こわくないMonadC#でわかる こわくないMonad
C#でわかる こわくないMonad
 
You will be assimilated. Resistance is futile.
You will be assimilated. Resistance is futile.You will be assimilated. Resistance is futile.
You will be assimilated. Resistance is futile.
 
How to meets Async and Task
How to meets Async and TaskHow to meets Async and Task
How to meets Async and Task
 
Beachhead implements new opcode on CLR JIT
Beachhead implements new opcode on CLR JITBeachhead implements new opcode on CLR JIT
Beachhead implements new opcode on CLR JIT
 
Async deepdive before de:code
Async deepdive before de:codeAsync deepdive before de:code
Async deepdive before de:code
 
Thread affinity and CPS
Thread affinity and CPSThread affinity and CPS
Thread affinity and CPS
 
Async DeepDive basics
Async DeepDive basicsAsync DeepDive basics
Async DeepDive basics
 
continuatioN Linking
continuatioN LinkingcontinuatioN Linking
continuatioN Linking
 
真Intermediate languageのキホン
真Intermediate languageのキホン真Intermediate languageのキホン
真Intermediate languageのキホン
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけよう
 
式の体を成して無い式を式の体を成すように式と式木で何とかする式
式の体を成して無い式を式の体を成すように式と式木で何とかする式式の体を成して無い式を式の体を成すように式と式木で何とかする式
式の体を成して無い式を式の体を成すように式と式木で何とかする式
 
不健康なIt戦士を健康的にするアレの話
不健康なIt戦士を健康的にするアレの話不健康なIt戦士を健康的にするアレの話
不健康なIt戦士を健康的にするアレの話
 
Final LINQ extensions III
Final LINQ extensions IIIFinal LINQ extensions III
Final LINQ extensions III
 
SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南
 
Final LINQ Extensions II
Final LINQ Extensions IIFinal LINQ Extensions II
Final LINQ Extensions II
 
Hello! intermediate language
Hello! intermediate languageHello! intermediate language
Hello! intermediate language
 
Final LINQ Extensions
Final LINQ ExtensionsFinal LINQ Extensions
Final LINQ Extensions
 

Recently uploaded

JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
Max Lee
 
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckJax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Marc Lester
 

Recently uploaded (20)

Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
 
Malaysia E-Invoice digital signature docpptx
Malaysia E-Invoice digital signature docpptxMalaysia E-Invoice digital signature docpptx
Malaysia E-Invoice digital signature docpptx
 
What need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java DevelopersWhat need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java Developers
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
What is an API Development- Definition, Types, Specifications, Documentation.pdf
What is an API Development- Definition, Types, Specifications, Documentation.pdfWhat is an API Development- Definition, Types, Specifications, Documentation.pdf
What is an API Development- Definition, Types, Specifications, Documentation.pdf
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
 
Sourcing Success - How to Find a Clothing Manufacturer
Sourcing Success - How to Find a Clothing ManufacturerSourcing Success - How to Find a Clothing Manufacturer
Sourcing Success - How to Find a Clothing Manufacturer
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckJax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined Deck
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 

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

  • 1. Making archive IL2C #6-54 2018.3.8 MVP SUMMIT – 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 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
  • 11. Any question? Thank you for seeing!! https://github.com/kekyo/IL2C