Thread overview
SDC (Aptal D Derleyicisi)
Aug 25, 2010
ersiner
Aug 25, 2010
ersiner
August 24, 2010

Sanırım LLVM ortamında çalışan D2 ile yazılmış ve sanırım bir D2 derleyicisi. LLVM ne olduğunu tam olarak bilmiyorum ancak burada da adı geçtiğinde anladığım kadarıyla işletim sistemlerinden bağımsız sanal bir ortam sunan bir ortam. :-)
Projeyi daha edinipte denemedim..

Proje burada barınıyor : http://github.com/bhelyer/SDC

Hala geliştirilme aşamasında. Şuan ne yapabildiklerini listelemiş. Proje DMD'den daha güncel :-)

Bu arada bende kendime çok, çok ve çok basit bir derleyici(yada yorumlayıcı) yazmaya karar verdim. Piştiye ne zaman devam etmeye çalışsam D'den uzaklaşıyorum. O yüzden piştiye okul günlerinde devam edeceğim :-) Umarım bana örnek olur bu proje.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 25, 2010

Eğer tek başıma yazarsam kendi dilim olacak. Dil C stilinde bir dil değilde daha değişik daha fantastik bir şey olabilir diye düşünüyorum. Ancak birden fazla kişi olacak ise tabiki D2 derleyicisi yazacağız. Çünkü hepimizin iyi bildiği ortak bir dil tek o var. Ben asıl burada derleyici nasıl yazılır onu öğrenmek istiyorum. Ancak nereden başlayacağımı tabikide bilmiyorum :-) Boş heyecanda olsa en azından bir yere kadar gelmek istiyorum.

NOT: Benim llvm'den anladığım jvm, parrot, net gibi bir ara katman sunuyor. Bu katmana göre kod üretildikten sonra llvm işletim sistemine göre kod üretiyor. Yani sanırım llvm framework gibi bir şey oluyor. llvm kodu üreten program ise SDC derleyiciden çok kod çeviricisi konumunda.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 24, 2010

LLVM konusunda ben de senin kadar biliyorum. Program oluşturma aşamalarının orta kademesini dilden bağımsız olarak hallediyor. Bir ön yüz dille ilgili işlemleri bir LLVM'in anladığı bir ara dile dönüştürüyor, ondan sonrası LLVM tarafından hallediliyor.

D ile D derleyicisi yazmak da çok çekici fikir. :) Digital Mars'ta da arada sırada konusu açılıyor. Seninki kendi dilin mi olacak, yoksa D mi?

Benim de başım biraz sıkışık. Belki tekrar piştiye dönerim. :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 25, 2010

Alıntı:

>

Eğer dil yazacaksan, iki temel seçeneğin var: derlemeli ve yorumlamalı.

Aslında ikisinide aynı anda olabilir. Python gibi. Başka bir seçenekte eğer başka bir dil olacaksa arka planda D'ye çevrilip derlenebilir. Ancak buda zor.

Alıntı:

>

Arka taraf olarak da ya LLVM'i kullanırsın, ya da gcc'nin arka tarafını (back end).

Sanırım .net, yacc, gcc, llvm, jvm, parrot ile bu yapılabilir. Ancak onlar hakkında hiç Türkçe kaynak yok. Yorumlanabilir bir dil yazmak daha kolay gibi. Ancak onuda nasıl yapacağımı bilmiyorum.

Alıntı:

>

Aslında derleyici yazmak sanırım bilgisayar bölümlerindeki standart derslerden birisi...

Sanırım bilgisayar mühendisliğinde gösteriliyor. Ancak Türkiyede o dersi verebilecek hoca çok yok diye biliyorum.

Her geçen dakika fikrimden vaz geçiyorum. Çünkü başlayabileceğim bir şey yok. C biliyor olsam C ile yazılmış bir çok basit derleyici var. Ancak D için yok.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 25, 2010

Derleyici geliştirmek konusunda bilgisi olmayan birisi için bir D derleyicisi geliştirmek çok çok büyük bir hedef. Programlama dilleri konusu bilgisayar biliminin en çetrefilli konularından birisi. İşe basit kısımlardan başlamakta fayda var.

Basit bir dil tasarlanabilir ve bu dil örneğin Java Byte Code'a ya da daha da kolayı doğrudan Java'ya derlenebilir. Üst düzey dile derleme konusunda yakın zamanda rastladığım iyi bir örnek Vala. C#'a benzer bir dilden C'ye derliyor. http://en.wikipedia.org/wiki/Vala_(programming_language)

Tasarlanacak dil şunun gibi bir şey olabilir:

http://www.ceng.metu.edu.tr/~bozsahin/tpd-bci2003.pdf

Bu arada bu dil de Java'ya derleniyor.

Eğer dil tasarım aşamasını geçip doğrudan derleyici yazma işine girilecekse, o zaman derleyicisi geliştirilecek dilin bir alt kümesi hedeflenebilir.

LLVM gibi teknolojiler gerçekten karmaşık, üzerinde ciddi çalışmak lazım. Gerekirse şunu Türkçe'ye çevirebiliriz:

http://llvm.org/docs/tutorial/

(Sanırım Programlama Dilleri Kuramı konusunda bir kitap yazmak lazım bir ara..)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 25, 2010

Alıntı (ersiner):

>

Tasarlanacak dil şunun gibi bir şey olabilir:

http://www.ceng.metu.edu.tr/~bozsahin/tpd-bci2003.pdf

Bu arada bu dil de Java'ya derleniyor.

Bu dil için Türkçe bir kaynak da varmış:

http://www.ceng.metu.edu.tr/~sercan/downloads/tpd-ab2002.pdf

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 25, 2010

Öncelikle, bu bence çok iyi bir fikir! Umarım durmazsın... :)

Eğer dil yazacaksan, iki temel seçeneğin var: derlemeli ve yorumlamalı.

Eğer derlemeli olacaksa, mutlaka assembly bilmen gerekecek; çünkü sonuçta işin, programcının yazdığını işlemcinin diline çevirmek olacak.

Aslındaaa... :) Belki de senin bütün yapman gereken, derleyicinin ön tarafını yazmak. Yani kullanıcının dilini anlayıp bunu bir arka tarafa aktarmak... Arka taraf olarak da ya LLVM'i kullanırsın, ya da gcc'nin arka tarafını (back end).

İkisinin de nasıl yapıldığını bilmiyorum.

Aslında derleyici yazmak sanırım bilgisayar bölümlerindeki standart derslerden birisi...

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]