Lamina - बिना dependencies के स्वयं-इम्प्लीमेंट किया गया compiler backend
(github.com/SkuldNorniern)Lamina एक compiler backend प्रोजेक्ट है जो Intermediate Representation code (IR code) को इनपुट के रूप में लेकर machine code/binary जनरेट करता है.
यह मेरे पिछले 4~5 वर्षों के language/compiler अध्ययन और प्रोजेक्ट्स के आधार पर शुरू किया गया है, और आशा है कि यह compiler में रुचि रखने वालों के लिए सहज रूप से समझ में आने वाला एक सरल reference बनेगा.
वर्तमान में समर्थित प्लेटफ़ॉर्म
- macOS (aarch64)
- Linux (x86_64)
- WebAssembly (wasm32/64)
आगामी समर्थित प्लेटफ़ॉर्म
- Windows (x86_64)
- macOS (Intel)
- Linux (aarch64)
- Risc-V
Windows aarch64 के मामले में लेखक के पास डिवाइस न होने के कारण इसकी प्राथमिकता कम है, इसलिए इसे फिलहाल छोड़ा गया है.
वर्तमान स्थिति
फ़िलहाल compiler optimization pass नहीं हैं, इसलिए इसकी गति C# से थोड़ी धीमी है.
अगले अपडेट्स में Machine IR layer इम्प्लीमेंट की जाएगी, और उसके साथ optimization pass भी जोड़े जाने की योजना है.
साथ ही 0.1 रिलीज़ से पहले Testcode और codegen भाग में AI की मदद से जनरेट की गई अधिकांश सामग्री को हटाकर फिर से लिखा जाएगा.
compiler frontend उदाहरण
Brainfuck-Lamina Repo - एक सरल Brainfuck compiler
आगे की विकास-योजना में शामिल फीचर
- GPU code generation समर्थन (बाद में स्वयं-इम्प्लीमेंट की गई ML लाइब्रेरी के backend के रूप में उपयोग)
- JIT compilation समर्थन
- debugger आदि toolset प्रदान करना
- स्वयं-इम्प्लीमेंट किया गया assembler और linker प्रदान करना (मौजूदा util समर्थन बना रहेगा)
2 टिप्पणियां
कमाल है जी दंग
यह अभी भी काफी अधूरा प्रोजेक्ट है,
फिर भी इसे सराहने के लिए धन्यवाद!
मैं प्रोजेक्ट को लगातार बेहतर बनाता रहूँगा, ताकि compiler से जुड़ी पढ़ाई करने वालों के लिए यह एक अच्छा resource बन सके।