IL2Cと言うのは、Unityで言うところのIL2CPPのC言語版です。これをフルスクラッチで作ってみるというビデオシリーズです。
つまり、C#(というか、それをコンパイルしたILを含むDLLやEXE)を入力に、C言語のソースコードを生成するツール、というわけです。
YouTube: Playlist: Making archive IL2C
GitHub: IL2C step-by-step design project
現在第6回までやったところですが、以下のようなC#のコード:
public static int main()
{
var a = 1;
var b = 2;
var c = a + b;
return c;
}
が、
#include <stdint.h>
int32_t main(void)
{
int32_t local0;
int32_t local1;
int32_t local2;
int32_t local3;
local0 = 1;
local1 = 2;
local2 = local1 + local0;
local3 = local2;
return local3;
}
というC言語のソースコードに変換できる所まで出来ました。また、これの64ビット(long, int64_t)も出来たところです。
開発の方法の検討・設計・実装・テストまで含めて、全体を一からフルスクラッチでやってるところを、ほぼカット無しで収録しています。メタプログラミングに興味のある方は視聴してみてください。
この調子で続けると、40回~50回ぐらいで完成かな… 先は長そうだ :)
あと、途中でHuman Resource Machineというゲームをちょっとだけ紹介しています。IL(というかアセンブリ言語)をゲーム感覚で学べるアプリでお薦めです。