Forum: Duyurular RSS
SDC (Aptal D Derleyicisi)
canalpay (Moderatör) #1
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: SDC (Aptal D Derleyicisi)
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.
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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
canalpay (Moderatör) #3
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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.
acehreli (Moderatör) #4
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Ö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
canalpay (Moderatör) #5
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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.

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.

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.
ersiner #6
Üye Ağu 2010 tarihinden beri · 12 mesaj · Konum: Ankara, Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
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..)
-- Ersin
ersiner #7
Üye Ağu 2010 tarihinden beri · 12 mesaj · Konum: Ankara, Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
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
-- Ersin
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:
Forum: Duyurular RSS
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-11-19, 07:59:40 (UTC -08:00)