Kendi yazılım dilime nasıl derleyici yapabilirim?

Compiler çevirici değil. @Dynamics 'de compiler sadece makine diline derler demiyor. Python ile derleyici yaparsın. Python'ı execute edici olarak kullanmana gerek yok. Algıların mı kapalı? Python ile parseladıktan sonra translation işlemlerini yaparsın. Ayrıca executable üretmek illa öyle olmuyor. Senin mantıkla java ve c# interpreted diller.

Aşağıdaki sayfayı şiddetle incelemeni tavsiye ederim.
Aşağıdaki repoyu da incelemeni şiddetle tavsiye ederim.

Derleyici dediğimiz şey bir otomasyon yazılımı ve bunu hangi programlama diliyle yazdığının bir önemi yok.
Sabahtan beri anlatmaya çalıştığım...
 
Hayır derleyici dediğin şey literatür'de programlama dilinde yazılan kodları, makine diline çeviren yazılımlara verilen isimdir. Bunun için senin mikro denetleyicinin anlayacağı komutların karşılıklarını biliyor olman gerekir.

Yani sizin dediğiniz şey (.Net'in sürecinden örnek vereceğim) MSIL olur. CLR süreci bundan sonra gelir.

MSIL'e compiler diyemezsin. Çünkü bu teknik olarak farklı bir şey.
 
MSIL compiler değil zaten. Compiler'ın ürettiği sonuç! Aşağıdaki sayfayı okur musun? Çok yorucu olmaya başladı.
 

Ya istersem elimle eşlerim makine koduna açarım bir binary editör, elimle yazarım opcode'ları. Derleyiciden öyle bir bahsediyorsunuz ki doğmamış doğrulmamış ebedi ve ezeli, senin yorumuna göre derleyici dediğimiz şey allah çıkıyor.
 
Tamam dostum yaparsın. Kralsınız.
 
Pek tabii Python'da yazdığın bir programla makine kodu üretebilir ve bunu bir çalıştırılabilir dosyaya kaydedebilirsin ve işin güzel tarafı bunu her genel amaçlı programlama dili ile de yapabilirsin. Ancak ek bir bilgi, bu tarz işler için C ya da C++ her zaman öncelikli tercih olur.

Öncelikle Compile fiili İnglizcede derleyip, toparlayıp bir şeyler üretmek anlamına geliyor (Bu tanımı anlamak önemli). Eskiden -Eskiden dediğim yüksek seviyeli diller pek yaygın değilken.- Compiling ya da Compiler dendiğinde, akla ilk gelen şey bir makine kodu üretmek olabilirdi. Fakat yüksek seviyeli dillerin yagınlaşmasıyla günümüzde Compiling sadece makine diline doğru bir derleme anlaşılmak zorunda değil. Compiler ve Compiling terimi bir çok durumda kullanılabiliyor. Mesela bir Markdown dosyasını alıp bunu Html'e compile edebilirsin. Bir C# kodunu MSIL'e derleyebilirsin.
 
Son düzenleme:

Teknik olarak yanlis. Source code'u farkli baska bir koda da donusturuyor olabilir, illa ki makine koduna cevirim yapmak zorunda degil, ornegin java compiler. Elbette sonunda o kod makine koduna donusecek ama bunu tek adimda yapmak zorunda degilsin ve yine de yaptigin sey compiler olacak teknik olarak.

Ya da kotlin kodunu JVM byte kodu yerine JS koduna compile edip V8 uzerinde calistirabilirsin. O da teknik olarak compiling. Kotlin/JS IR compiler | Kotlin

Bir programlama dilinin compiler'i da ayni programlama diliyle yazilabilir.
 
Bir programlama dilinin compiler'i da ayni programlama diliyle yazilabilir.
İlk aşamada farklı bir dille yazılması gerekmez mi? Daha sonrasında aynı dille yazılabilir elbette ama ilk versiyonunda farklı dil gerekmez mi?

Paylaşılan wikiyi okudum, doğru düşünüyormuşum aşağı yukarı.
 
Son düzenleme:

Evet dogru. Ilk asamada zaten mumkun degil.
Dilin gelisimini kolaylastiriyor eger ayni dille yazilirsa.
 
Bende denedim ama sonunda pes ettim. Bende senden 1 yaş büyüğüm. Heves edip başlamıştım ama sonra bir buga takılıp kalmıştım, bir de üstüne dersler binince. Benim önerim coffescript gibi bir dil yapman. Bence ilgi görür.

Evet

C benim için biraz karmaşık. Ve ben 14 yaşındayım. Bence bu bile iyi.

Çok iyi Assembly bilmen gerekiyor. C, C++ sana karmaşık geliyorsa hiç girme bence compiler yapma işine .
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…