Forum: Diğer Konular RSS
DMD Nedir?
Abdullah #1
Üye Ağu 2015 tarihinden beri · 48 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: DMD Nedir?
"DMD; yazdığımız d kodlarını makine diline dönüştüren derleyicinin adıdır. Her programlama dilinin bir derleyicisi vardır. Ve yazdığımız kodlar derleyici olmadan çalışabilir bir program hâline gelemez."

Hata var mı? Önerileriniz?
kerdemdemir #2
Üye Eyl 2013 tarihinden beri · 123 mesaj · Konum: Danimarka
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Derleyici-yorumlayıcı olmayan programla dili olabilir diye düşünüyorum. Kağıt üstünde kalmıştır ama teorik olarak programlama dili sayılır hala http://esolangs.org/wiki/Main_Page. Bir dilinde birden çok derleyicisi olabilir tabi C++'da en populer derleyiciler GCC, CLang, MSVC örneğin .

Derleyici-yorumlacı arasındaki farka bakmak istiyorsan https://tr.wikipedia.org/wiki/Yorumlay%C4%B1c%C4%B1 güzel bir bağlantı sanki.

Saygılar
Erdem
Abdullah #3
Üye Ağu 2015 tarihinden beri · 48 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Derleyici-yorumlayıcı olmayan programla dili olabilir diye düşünüyorum.
Bu düşünce farkıysa, görmezden gelelim, çünkü dinleyiciye net ve kısa ifadeler kullanmak gerekiyor.

Bir dilinde birden çok derleyicisi olabilir tabi C++'da en populer derleyiciler GCC, CLang, MSVC örneğin .
"Sadece bir tane olur" anlamında demek istememiştim, "muhakkak (en az) bi tane olur" anlamında demiştim.

Derleyici-yorumlacı arasındaki fark...
Dediğim gibi daha kısa tutmak için (yorumlayıcılar da çalışma esnasında derlediği için) onları da derleyici kategorisine soktum.

Özetle hiç temeli olmayan birine anlatır gibi : ) Teşekkürler. Bir senaryo içinde böyle başlıklar atıp açıklamarını yazıyorum, video dersleri yayınlamayı düşünüyorum. Video çekerken canlı kayıt yapmak istemiyorum çünkü hem hata yapma durumu var hemde videoda "ıııı" deyip duraksamak istemiyorum : )
acehreli (Moderatör) #4
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4533 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Açıklama doğru ama daha önce makine dili ve derleme kavramları anlatılmadıysa bu cümleler yeterli olmaz. Okumuş olduğunu biliyorum ama ben derleme kavramını şöyle anlatmıştım:

  http://ddili.org/ders/d/derleyici.html

Yabancı üniversitedeki bir hoca derlemeli ve yorumlamalı dil karşılaştırmamda eksiklikler ve yanlışlıklar göstermişti ve sonunda yukarıdaki haline getirmiştik. :)

Ali
Abdullah #5
Üye Ağu 2015 tarihinden beri · 48 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Okuduğumu hatırlamıyorum : ) Yani her yorumlayıcı/derleyici önce yorumlayıp sonra derliyor, ama bunu yaptıkları zaman farklı. Bu bilgilerle açıklamayı yeniden oluşturuyorum:

"DMD; yazdığımız d kodlarını makine diline dönüştüren programın adıdır. Her programlama dilinin dmd gibi bir dönüştürücüsü vardır. Ve yazdığımız kodlar bu dönüştürücüler olmadan çalışabilir bir program hâline gelemez."

Tüm bilgiyi bir arada vermemize gerek yok, sadece ön bilgi veriyoruz. Ama "dönüştürücü"yü kullanmakta kararsızım.
acehreli (Moderatör) #6
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4533 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Abdullah:
Yani her yorumlayıcı/derleyici önce yorumlayıp sonra derliyor, ama bunu yaptıkları zaman farklı.

Aslında yorumlama ve derleme kavramları yine de farklı: Yorumlayıcı a+b gibi bir kod gördüğünde

  • Metinde "a" diye bir şey geçti. Acaba böyle bir değişken biliyor muyum?

  • Eğer varsa, (örneğin bir eşleme tablosunda) bakayım değeri neymiş. (Örneğin, bundan Değer türünde gibi bir değişken üretiyor)

  • (Aynısını b için yapıyor)

  • Şimdi "+" adlı bir işlev biliyor muyum?

  • Varsa, iki Değer değişkenini ona gönderiyor.

  • Toplama işlemi Değer'lerin türlerine teker teker bakarak int olduklarını görünce örneğin "42" ve "10" gibi dizgiyi int'e dönüştürüyor ve iki int toplama işlemini çağırıyor

Derleyicinin oluşturduğu kodun kafasında çalışma zamanında en ufak bir soru yok. Hatta "a" ve "b" gibi değişken bile yok. Derlenmiş olan kod şunun gibi bir şey söylüyor:

  • TOPLA(yığıtın_başı - 8, yığıtın_başı - 4)

(TOPLA, CPU'nun bir komutu olsun, yığıtın_başı da yığıtın başını gösteren yazmaç (register).) Yani, derleyici programcının "a" ve "b" dediği değişkenleri örneğin "yığıtın şurasındaki 4 bayt" ve "yığıtın orasındaki 4 bayt" diye kurguluyor.

Dolayısıyla, yorumlayıcı ve derleyicinin işledikleri zamanların farklı olması dışında uyguladıkları işlemler de oldukça farklı.

(Not: Yorumlayıcı daha akıllı davranıp benim gösterdiğim soruların bazılarını sonradan sormaya gerek olmasın diye bir şekilde saklayabilir. Buna çalışma zamanında kendisi karar verebileceği gibi, Python vs.'den bildiğimiz gibi önceden yapabilir.)

Ali
Abdullah #7
Üye Ağu 2015 tarihinden beri · 48 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Peki derleyici ve yorumlayıcıyı kapsayan bir kelime düşünüyor musunuz? Veya DMD nedir sorusuna alternatif bir cevabınız var mı?
acehreli (Moderatör) #8
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4533 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Aslında yorumlayıcı kavramını karıştırmaya gerek olduğunu düşünmüyorum. D derlemeli bir dildir ve dmd bir D derleyicisidir.

Yorumlayıcı ve derleyiciyi birlikte düşündüğümde şöyle açıklayabilirim: Her ikisi de kaynak kodu okuyan, amacını anlayan, ve o amaca ulaşan işlemleri işleten programdır.

Ali
Abdullah #9
Üye Ağu 2015 tarihinden beri · 48 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Her programlama dilinin bir derleyicisi vardır.
Derdim bu cümleyi modifiye etmekti. Bunu eliyoruz o zaman : ) Teşekkürler
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-12-10, 20:09:36 (UTC -08:00)