C#์ผ๋ก ๋ฐ๋ฐ๋ฅ๊น์ง ํ๊ณ ๋ค๋ฉฐ ์ง์ ๋ง๋๋ ๊ฑธ ์ข์ํ๋ ๊ฐ๋ฐ์์ ๋๋ค. ๊ฒ์, ๋ก๋ด ์๋ฎฌ๋ ์ดํฐ, ๊ทธ๋ฆฌ๊ณ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊น์ง โ ๋๋ฉ์ธ์ ๋ฌ๋ผ๋ "์ง์ ์ค๊ณํ๊ณ ๋ง๋๋ ์ฆ๊ฑฐ์"์ ์ข์์์ต๋๋ค.
- ๐จ ์ง์ ๋ง๋๋ ์ฌ๋: C# ๊ฐ์ฒด ์๊ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ถํฐ LLVM ๋ฐฑ์๋ ์ปดํ์ผ๋ฌ๊น์ง ํผ์์ ์ค๊ณ
- ๐งฉ ์๊ณ ๋ฆฌ์ฆ: solved.ac Ruby V (์์ 0.13%), ์ต์ฅ 455์ผ ์ฐ์ ๋ฌธ์ ํ์ด
- ๐ ์ ์์ค๊น์ง ๊ถ๊ธํ ์ฌ๋: ๋ฌธ๋ฒ์ด IR๋ก ์ด๋ป๊ฒ ๋ฎ์ถฐ์ง๋์ง ์ง์ ๋ฏ์ด๋ณด๋ ๊ฑธ ์ข์ํฉ๋๋ค
- ๐ฎ ์๋ธ์ปฌ์ฒ ๊ฒ์๊ณผ ๋ฒ์ถ์ผ ์ ํ๋ฒ๋ฅผ ์ฆ๊ธฐ๋, ์ข์ํ๋ ๊ฑธ ์ง์ ๋ง๋ค์ด๋ณด๊ณ ์ถ์ ๋ํ
C# .NET Unity LLVM C Python Algorithm
RazorForge โ ์ ๋ฐํจ์ ์์ธ์ ์ง์ ์ค๊ณํ ๋ค์ดํฐ๋ธ ์ปดํ์ผ ์ธ์ด
GC๋ ์๋ช ํ๊ธฐ๋ ์๋ ๋จ์ผ ์์ ๊ถ, ์คํจ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํฌ๊ฒ ํฐ์ง๊ณ ํค์๋ ํ๋(
try/grab/lookup)๋ก ๋ณต๊ตฌํ๋ ์๋ฌ ๋ชจ๋ธ, ์ค๋ฒํ๋ก ๋์์ ์ง์ ๊ณ ๋ฅด๋ ์์น ํ์ , ์ฝ๋ฃจํด๊ณผ OS ์ค๋ ๋๋ฅผAgent[T]ํ๋๋ก ๋ฌถ์ ๋์์ฑ. ๐ Docs
Suflae โ ๊ณต์ ์ํ๋ฅผ ๊ฐ๋ณ๊ฒ ๋ค๋ฃจ๋ RazorForge์ ์๋งค ์ธ์ด
์ํฐํฐ๋ ์ฐธ์กฐ ์นด์ดํธ ํธ๋ค์ด๊ณ , ์ค๋ ๋๋ฅผ ๊ฑด๋๊ฐ๋ฉด ์ค์ค๋ก ์ ๊ธ์ ๊ฒ๋๋ค. ์คํจ ๋ชจ๋ธ๊ณผ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ RazorForge์ ๊ณต์ ํ๊ณ , REPL์ ์ค์ฌ์ผ๋ก ์ค๊ณ. ๐ Docs
๋ ์ธ์ด๋ C# ๋น๋ ์ฝ์ด Anvila(ํ์ฑ ยท ์๋ฏธ ๊ฒ์ฆ ยท ๋จํํ ยท LLVM IR ์์ฑ, ๋น๋ ๋ฐ๋ชฌ๊ณผ JIT ๊ฐ๋ฐ ๋ฃจํ)์ C ๋ค์ดํฐ๋ธ ๋ฐํ์ Ingrid(์ฝ์ด๋ณ ์์ปค ์ค๋ ๋ ์์ ์ฝ๋ฃจํด, libuv ๋น๋๊ธฐ I/O, ์คํ ํธ๋ ์ด์ค๊ฐ ๋ด๊ธด ํฌ๋์ ๋ฆฌํฌํธ)๋ฅผ ํจ๊ป ์๋๋ค.
Tessera โ ์ฐ์ฐ์ ํ ๋จ๊ณ์ฉ ๋ช
์์ ์ผ๋ก ์ฐ๋ ๊ตฌ์กฐ์ SSA ์ธ์ด & ์ปดํ์ผ๋ฌ
์ฐ์ฐ์ ์์ด operation โ block โ routine โ module๋ก ์์ ์ฌ๋ฆฌ๋ ์ธ์ด. SSA ๊ฐ, ฯ ๋์ ๋ธ๋ก ํ๋ผ๋ฏธํฐ, ๋ช ์์ ๋ฉ๋ชจ๋ฆฌ. ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Tessera๋ก ์ง์ ์์ฑํ๊ณ , C# ์ปดํ์ผ๋ฌ๊ฐ LLVM IR๋ก ๋ฎ์ถค. ๐ Docs
DebugUtils โ C# ๊ฐ์ฒด ์ํ ์๋ ์๊ฐํ ๋๋ฒ๊น ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Reflection/Attribute ๊ธฐ๋ฐ์ผ๋ก 50+ ํ์ ์๋ ์ง์. ์คํ ํ ๋น ๊ธฐ๋ฐ ๊ณ ์ฑ๋ฅ IEEE 754 ๋ณํ.



