Thread overview
D, gcc'nin parçası olmak üzere
Oct 04, 2011
zafer
Oct 04, 2011
Ronin
Oct 04, 2011
zafer
Oct 04, 2011
Ronin
October 04, 2011

Dilin gelişim ivmesini hızlandıracağı konusuna bende katılıyorum. Güzel bir gelişme olmuş.

Yinede GDC çıksa bile ben sanırım duygusal olarak dmd'ye daha fazla bağlı kalacağım :)

Bu arada şu Goldie Parsing System nedir? Duyurularda gördüm ama yetersiz ingilizce nedeniyle tam anlayamadım. Forumda bazı konularda okumuştum bir editör fikri felan vardı. Belki bu işlemler için GoldieLib kullanılabilir gibi duruyor ama tam bilmiyorum tabi.

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

October 04, 2011

Merhabalar. Walter Bright' ı alkışlıyorum. Böylece kodlama, döküman hazırlama, eğitim gibi faaliyetler için güç birliğine gidilmiş olur. Özellikle linux dünyasında, distro hazırlanırken yüzlerce farklı projenin olmuş olması beni üzüyor. Çünkü binlerce kişi " ayrı felsefeler üzerine! " olduklarını söylüyorlar, fakat çıkan sürümler hep aynı. Bende onları protesto edip, freebsd kullanıyorum.

Biliyorum bazı sürümler fazla değişiklikler yapmıyor fakat proje sonuçta. Hepsine emek harcanıyor. Bence açık kaynak dünyasının kanayan yarası bu iş gücü kaybıdır.

Umarım FSF e geçmesi ile D dilinin popülerliği artar. Acaba stallman amca ne düşünüyor D dili hakkında ? Eminim C++' a doğal destek vermemesini ve C yordamlarını direkt içine almasını sevmiştir (:
Saygılar.

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

October 05, 2011

Alıntı (acehreli):

>

Alıntı (zafer):

>

Goldie Parsing System nedir?

Bilgisayar bölümünde okumuş olanlar için kolay konular... olmalı... :)

Bunuda nereden çıkardın Ali :) Ben sokakdaki binlercesi gibi sıradan bir programcıyım bunun dışında başka bir sıfatım veya makamım yok, belki onların bazılarından bir farkım işimi sevgi ve hevesle yaptığımdan dolayı bu işlerden daha fazla keyif almak ve daha iyisini elde etme çabasından vazgeçmememdir.

Ayrıca belki biraz felsefi olacak ama bildiklerim hakkında söylenebilecek en güzel söz sanırım şu olurdu ; "Bildiğim tek şey hiçbir şey bilmediğimdir. SOKRATES"

Bu arada GoldieLib için teşekkürler ;-)

Alıntı:

>

Biliyorum bazı sürümler fazla değişiklikler yapmıyor fakat proje sonuçta. Hepsine emek harcanıyor. Bence açık kaynak dünyasının kanayan yarası bu iş gücü kaybıdır.

Selam Ronin,
Bence bu durumun asıl sebebi işlerin belli bir disiplin içinde olmaması, detaylı bilgim olmasada açık kaynak bildiğim kadarıyla gönüllülük esasına dayalı bir yapı, yani bir çok proje tamamen gönüllü olarak karşılıksız geliştiriliyor bence bu oldukça zor bir iş, şöyle bir bu forumdaki projelere bakıyorum. trileri dışında hiçbiri tamamlanmamış ve hepsi şu an durmuş durumdalar sanırım. yani gerçekten zor iş, insanları bir arada tutabilmek belli bir disiplinle çalışabilmek kolay değil diye düşünüyorum.

Yinede neticede seninle aynı fikirdeyim. Linux dünyası tek bir yolda birleşebilirse bencede açık kaynak ve linux gerçek bir alternatif olmaya başlar. Belki Ubuntu bu sürecin ilk ışıklarını yakmış olabilir. Emin değilim tabi bunlar benim kişisel görüşlerim :)

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

October 05, 2011

Gold Parsing in ne olduğunu bende bilmiyordum. Bu vesile ile öğrenmiş oldum. Sanırım bizim fakültelerde o kadar derine inmiyorlar artık!

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

October 04, 2011

Lisansla ilgili son pürüzler de halledilmiş. Walter Bright dmd'nin ön tarafını (front end) Free Software Foundation'a (FSF) vermiş. gcc 4.7 içinde gdc'nin de gelmesi bekleniyor.

Haberin ilk duyulduğu sohbet:

http://gcc.gnu.org/ml/gcc/2011-10/msg00037.html

Konuyla ilgili bir haber:

http://www.phoronix.com/scan.php?page=news_item&px=OTk2NA

D'nin tanınması açısından çok büyük bir aşama olmasının yanında, gcc'nin kod üretme yeteneği dmd'den daha iyi olduğu için gdc daha hızlı programlar üretecek.

gcc şimdilik C, C++, Objective-C, Objective-C++, Java, Fortran, Ada, ve Go dillerini içeriyor:

http://gcc.gnu.org/onlinedocs/gcc/G_002b_002b-and-GCC.html

Ali

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

October 04, 2011

Alıntı (zafer):

>

Goldie Parsing System nedir?

Bilgisayar bölümünde okumuş olanlar için kolay konular... olmalı... :)

Anladığım kadarıyla Goldie GOLD Parsing System'ı D programlarında kullanmaya yarıyor. Tarif edilen bir dili D programı içinde ayrıştırıyor ("parse ediyor"). Derleyicilerle ilgilenen insanlara göre bir konu. (Benim için değil yani. :))

Bu işin en klasik olanı YACC'tır. GOLD'un hem onunla hem de bilenen başka ayrıştırıcılarla bir karşılaştırması şurada var:

http://www.devincook.com/goldparser/about/comparison-parsers.htm

Bu araçlara bir dilin gramerini veriyorsunuz, o da metni o gramere göre ayrıştıran bir araç oluşturuyor.

Goldie'nin nasıl kullanıldığı şurada gösteriliyor:

http://www.semitwist.com/goldie/Start/HowToUse/

  1. Dilin grameri yazılır (.grm dosyası)

  2. Gramer özel bir düzene derlenir (.cgt dosyası) ve bir ayrıştırıcı (parser) haline gelir

  3. Derlenmiş olan ayrıştırıcı metin ayrıştırmada kullanılır

Şurada örnekler var:

http://www.semitwist.com/goldie/SampleApps/

  1. Oradaki 'Calculator Dynamic'in grameri şuymuş:

http://www.dsource.org/projects/goldie/browser/tags/v0.6/lang/calc.grm

  1. O gramer kullanılarak otomatik olarak bir ayrıştırıcı oluşturuluyor (bunun adımları açıkça gösterilmemiş; belgelerin başka taraflarında vardır)

  2. O oluşan ayrıştırıcı, D programlarında kullanılabiliyor. 'Calculator Dynamic'in deneme programı şu:

http://www.dsource.org/projects/goldie/browser/tags/v0.6/src/samples/calculatorDynamic/main.d

Orada şu satırlar ilginç:

// Ayrıştırıcı modül ekleniyor
import goldie.all;

// İkinci adımda oluşturulmuş olan ayrıştırıcı yükleniyor
 Language lang = Language.loadCGT(getExecPath()~"../lang/calc.cgt");

// Komut satırından alınan metin ayrıştırıcıya veriliyor
           Token parseTree = lang.parseCodeX(src).parseTreeX;

Ayrıştırıcın döndürdüğü ağaç (parseTree) daha sonra programda kullanılıyor:

real calculate(Token tok)
{
   if(tok.matches("Number"))
       return to!(real)(tok.toString());


   else if(tok.matches("<Add Exp>", "<Mult Exp>"))
       return calculate(tok.subX[0]);

   else if(tok.matches("<Add Exp>", "<Add Exp>", "+", "<Mult Exp>"))

Yarım yamalak bildiklerim bunlar... :)

Ali

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