Teknolojiye aşina ol
Bilgisayarın ne olduğu ve nasıl kullanıldığını tam olarak anlamadan programlama dili oluşturamayız.
Terminolojiye aşina ol
Derleyici yazanlar genellikle çok bilinmeyen jargonlar kullanırlar. İş başı yapmadan önce derleyici notlarını ve dokümanlarını okuyun. İhtiyacınız olan çoğu şeyi (hatta her şeyi) buradan öğreneceksiniz.
Geliştireceğiniz dilinin dominant özelliğine karar verin
Her programlama dilinin kendine has, öne çıkan bir yada birkaç özelliği bulunur. Geliştireceğiniz dilin çözeceği problem belirli bir etki alanındaki sorun mu, yoksa genel amaçlar taşıyan bir dil mi?
Geliştireceğiniz dilin semantiği ve konseptlerini düşünün
Pointer'ın doğrudan erişimine izin verecek misiniz?
Dilinizdeki veri tipleri neler olacak?
Statik mi yoksa dinamik mi bir dil olacak?
Hafıza modeliniz nedir? Bir garbage collector mü kullanacaksınız yoksa eski usül hafıza yönetimi mi? (garbage collector kullanılacaksa varolanlardan birisini uyarlamayı da hesaba koyun)
Eşzamanlılığı nasıl sağlayacaksınız? Yoksa tek thread/işlemi sırala/kilitle usulüne göre mi ilerleyeceksiniz? (Günümüz bilgisayarları çok çekirdekli işlemcilere sahip, o yüzden pek fazla hantal yapıları sevilmez)
Dilin kendine has, içine gömülü gelecek basit/ilkel/primitive fonksiyonları olacak mı yoksa her şey kütüphane endeksli mi olacak?
Dilin yaklaşımları/paradigmaları nasıl olacak? Fonksiyonel? Object-oriented(Nesne-merkezli)? Prototip? Aspect-oriented? Template-oriented? Yoksa yepyeni bir yaklaşım mı?
Mevcut kütüphaneler ve programlama dilleri ile nasıl bir arabirimi olacak? Amaç endeksli bir dil geliştiriliyorsa bu konu çok önemli. En azından çoğu yükü azaltması açısından C veya benzeri bir dil ile uyumlu olabilmeli.
Bu sorulara cevaplar tamamsa sıradaki aşamaya geçilebilir.
Geliştirdiğiniz dili kullanarak birisinin yapacağı bazı görev ve işlemleri düşünün
Örnek olması açısından; "çizgi izleyen bir robot yapmak istiyorum", "ilişkisel taşınabilir masaüstü programları yapmak istiyorum" veya "web uygulamaları geliştirmek istiyorum" gibi.
Bir üstteki yaklaşım ve taleplere göre kod-dizimi (syntax) fikirlerini planlayın
İçerik açısından başka dil veya yapılara uyum sağlayan kategoride olduğunuzdan emin olun. Aksi takdirde parser generator aracınız ve gelecekteki siz üzülebilirsiniz.
Syntax için düzenli bir dil bilgisi kaynağı yazın
Dilinizin yorumlanan mı yoksa derlenen mi olacağına karar verin
Yorumlanan diller genelde editör üzerinde çeşitli işlemleri kullanıcıya doğrudan yaptırmanıza olanak sunar ve hiçbir işlem yapmadan doğrudan çalıştırabilirsiniz. Derlenme ise programınızı düzenleme, derleme ve sonuç olarak bir yerlerde çalışabilir hale getirip çalıştırmayı getirir peşinden.
Frond end scanner ve parser araçlarını yaz veya yardımcı olacağını düşündüklerini bul ve kullan
Ayrıca derleyici/yorumlayıcının kullanıcıları hatalı program yazdıklarında veya syntax hatalarında nasıl uyarması gerektiğini de düşünmelisin.
Sonrası işler daha karmaşık hale geliyor