Bir programlama dili geliştirmek için hem teorik bilgiye hem de derleyici/araç zincirini kuracak yazılımsal araçlara ihtiyaç vardır. freecodecamp
Temel bilgi ve kaynaklar
- Biçimsel diller, gramerler (BNF, EBNF), otomata ve derleyici tasarımı konularını anlatan derleyici tasarımı kitapları ve eğitimler gerekir. pgrandinetti.github
- Programlama dili tasarımına odaklanan makaleler ve blog yazıları, sözdizimi/paradigma seçimi gibi tasarım kararlarında yol gösterir. tomassetti
Derleyici / yorumlayıcı için araçlar
- Lexical analyzer (lexer) üreticileri: Lex, Flex gibi araçlar, yazdığınız düzenli ifadelerden token üreten tarayıcı kodu üretir. geeksforgeeks
- Parser (çevirici) üreticileri: Yacc, Bison, ANTLR gibi araçlar, tanımladığınız bağlamdan bağımsız gramerden sözdizim analizcisi ve ağaç üreten kod üretir. geeksforgeeks
- Kendi elle lexer/parser yazmak için C, C++, Rust, Java, Python gibi bir sistem dili ve derleyicisi gereklidir. tomassetti
Uygulama dili, kütüphaneler ve backend
- Derleyiciyi veya yorumlayıcıyı yazmak için seçeceğiniz ana dilin (örneğin C++ veya Rust) derleyicisi ve standart kütüphaneleri gerekir. tomassetti
- Makine kodu veya bytecode üretmek istiyorsanız LLVM gibi derleme altyapıları kod üretimi, optimizasyon ve hedef mimari desteği sağlar. daily
- Standart kütüphaneniz için dosya sistemi, ağ, giriş/çıkış gibi işlevleri sağlayacak alt dil veya sistem API’lerine ihtiyaç duyarsınız. tomassetti
Geliştirme ortamı ve destekleyici araçlar
- IDE veya metin editörü: VS Code, IntelliJ IDEA gibi araçlar sözdizimi renklendirme, hata vurgulama ve proje yönetimi sunar. keycdn
- Versiyon kontrol sistemi: Git ve barındırma platformları (GitHub, GitLab vb.) kod geçmişini takip etmenizi ve ekip çalışmasını kolaylaştırır. geeksforgeeks
- Derleme/otomasyon araçları: CMake, Gradle veya benzeri build sistemleri derleyicinizin/yorumlayıcınızın derlenmesini ve testlerin otomasyonunu yönetir. tomassetti
Test, hata ayıklama ve ek araçlar
- Unit test çerçeveleri (örneğin Google Test, JUnit) diliniz ve derleyiciniz için otomatik test yazmayı kolaylaştırır. keycdn
- Hata ayıklayıcılar (gdb, lldb) ve profilleyiciler performans sorunlarını ve derleyici hatalarını analiz etmede kullanılır. freecodecamp
- Kullanıcı deneyimi için zamanla dilinize özel editör eklentileri, LSP (Language Server Protocol) sunucusu, formatlayıcı ve statik analiz araçları geliştirmeniz gerekebilir. tomassetti