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

İlk derleyici nasıl geliştirildi o zaman.
İlk derleyici diye bir şey yok. C için geliştirilen ilk derleyiciler neredeyse 1970'li yıllara dayanıyor ve o zaman assembly kullanılarak geliştiriliyor. Daha geniş bir araştırma yapabilirsin bu konuda. Asıl soru assembly olmalı. Assembly hakkında detaylı bilgim yok. Bildiğim kadarıyla elle eşleştirilmiş olmaları bu kodların. Yani komutlar doğrudan makine diline çeviri gibi düşünülebilir.
 
Dostum konuda kimse interpreting'den bahsetmedi. Kendi kendine işin içerisine dahil ettin. Kendin çalıp kendin oynuyorsun.
Konumuz derleyiciydi, bende tüm yorumlarımı derleyici üzerinden yaptım.
Çoluk çocuk eyleyecek vaktim yok. Devam et.
 
"Başka dilin derleyicisini kullandığın zaman" diyerek zaten cümlelerimden bir şey anlamadığını belli ediyordun. Bence de, konudan yavaşça uzaklaş sen.
 
Dostum sen derleyicinin mantığını ve gerçekte ne olduğunu anlamamışsın. Neyse bildiğini zannedene öğretmekle uğraşamam. Kolay gelsin.
Interpreterlerin yazılım mantıklarını sıralamak gerekirse doğrudan program ile okunabilir veya bir ara dil yardımıyla daha gelişmiş özelliklerde 2 katmanlı olarak okunabilir. Compiler ile ise makinenin anlayacağı formata çevirirsiniz. Ya da başka bir dile çevirerek de çalıştırabilirsiniz. Örneğin 2 katmanlı dil modelini kullanarak Python ile C++ kütüphanelerini baz alan bir dil yazabilirsiniz. Ya da bambaşka herhangi bir dil de olabilir bu. Derleyicinin amacını doğrudan 01e çevirmek olduğunu düşünmek mantıksız aslında. Programlama dilleri tarihsel süreçte çok gelişti ve bir dil yazılırken başka bir dile çevrilmesi gayet olağan ve mantıklı bir durum. Ayrıca programın tek yapacağı şey işleyip döndürmek olduğu için C++'a çevrilecek bir dil yazarken C++ kullanmak zorunda kalmıyorsunuz.
 
Teknik olarak bu derleyici olmuyor işte. Compiler makine diline çevirir. Anlamadığınız nokta teknik terimler. .Net Framework üzerinden örnek resimleri aşağıya saldım. Gerisini siz halledersiniz.

Örneğin;


 
Ya bak bilmezsin anlarım. Araştırır öğrenirsin sıkıntı değil derim. Araştırdığından yanlış sonuç çıkarmayı başarmak muazzam bir beceri. Verdiğin .NET şemalarında Managed Assembly diye bir şey var görüyor musun? Hemen üstünde ne yazıyor? Bi oku nolur ya. Bi oku ya. Bi altındaki fotoğrafları da bi oku ya. Okumayı öğren ya. Gerçekten acı verici senin şu mesajlarını okumak bana.

Çoluk çocuk diye konuşmaya gelince epey iddialısında, okumaya gelince gram okumuyorsun, çok üzüyor bu beni.
 
Dostum python zaten bir programlama dili. Python diliyle nasıl bir programlama dili yapıyorsun. Ayrıca derleyici yazılan kodları makine diline çeviren aracı bir programdır. Python zaten bir dil ve kendi derleyicisi var.
Python'un derleyicisi yok, yorumlayıcısı var. C#'ın derleyicisi var ancak makine diline çevirmez, ara dil denilen byte koduna derler, program çalıştırıldığında ise byte kodu JIT tarafından anlık olarak yürütülme esnasında makine diline çevrilir. C++ ise derleyicisi tarafından doğrudan makine koduna derlenir.

Neyin ne olduğunu bilmeden yorum yapmayın.
 
Yahu C# compiled bi dil mesela. Ama C#'ın compiler'ı ilk yazıldığında C++ ile yazıldı. Bak gerçekten kasti yaptığını düşünmeye başlayacağım. TÜM derleyiciler ilk aşamada başka bir dilde yazılmış programlardır. Assembler ve C++ compiler'ı bir istisna. Assembler yanılmıyorsam hand coded. C++ ise C için hazırlanmış dialect olan C with classes kullanarak preprocesser'ı hazırlıyor. C++'ın kendi özellikleri için derleyici kendi becerilerini kullanırken kalan C becerileri için C'nin compilerlarından yararlanıyor. Bkz.

Bunun dışında, C (Assembly), C# (C++), Rust (OCaml), Python (C), Go (C), Swift (C++), Java (C), Haskell (LML), Fortran, Forth, OCaml... Her birinin derleyicisi ilk aşamada başka bir dilde yazılmış programlardan biri.

Python'un derleyicisi yok, yorumlayıcısı var.
Wiki her zaman doğru değil ancak bu konu hakkında doğru olduğunu düşünüyor ve aynı fikri paylaşıyorum wikiyle.
 

Bende bu söylediğin şeyden bahsediyorum işte. Fakat konuyu önceki arkadaş farklı noktaya çekti. Ben diyorum ki çevirici dediğin şey (compiler) makine diline dönüştürür. Bunun dil ile alakası yok. Python ile derleyici yapamazsın. Derleyici yapabilmen için kodunun karşılığını makine diline çevirmesi gerekiyor.

Eğer sen bir dil oluşturup, bu kodları başka bir programlama dilinin derleyicisinde makine diline çeviriyorsan bu senin yaptığın derleyici olmaz.

Bilal'e anlatır gibi anlattım umarım bu sefer anlamışsınızdır.
 
Python bunu interpreting esnasında yapıyor, kaynak kod'u çalıştırdığın an eş zamanlı olarak aksi halde derleniyor diyebilirdik.
Derleyici dediğimiz şey bir otomasyon yazılımı ve bunu hangi programlama diliyle yazdığının bir önemi yok.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…