Jump to page: 1 2 3
Thread overview
D ile Bir Programlama Dili Yapmak
Aug 25, 2012
huseyin
Aug 25, 2012
Salih Dinçer
Aug 25, 2012
huseyin
Aug 25, 2012
Salih Dinçer
Aug 25, 2012
huseyin
Aug 26, 2012
huseyin
Sep 13, 2012
huseyin
Sep 21, 2012
huseyin
Sep 21, 2012
Salih Dinçer
Sep 22, 2012
huseyin
Sep 22, 2012
Salih Dinçer
Sep 22, 2012
Salih Dinçer
Sep 24, 2012
Salih Dinçer
Sep 24, 2012
Salih Dinçer
Sep 24, 2012
Salih Dinçer
Sep 24, 2012
Salih Dinçer
Sep 24, 2012
Salih Dinçer
August 25, 2012

Tamam assembly konusundada araştırmalar yaptım (birçok eksiğim var farkındayım) syntaxlardan tutalımda code generation tekniklerine kadar kapsamlı bir araştırma peki sizce çılgın bir proje de olsa mümkün mü niye olmasın basit bir programlama dili amacım sadece bir deneme ancak d ile bunu başarmak için de desteklerinize ihtiyacım var

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

August 25, 2012

İşte bunu yapabilmek için önce şu 800. başlık (http://ddili.org/forum/thread/800) olan konsol uygulamamızı ilerletelim...

Çünkü buradan girilen bir takım komutlarla D'de var olan olanakları çalıştırabiliriz. Sonra bakarsın Perl gibi bir script olabilir. Ama önce bir arabirime ihtiyacımız var. Gerçi bunu Fuzuli'de çok güzel yapmışlar...

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

August 25, 2012

Evet o konuyu hatırlıyorum üzerinde tartışmıştık aslında mümkün bir olay sizce script dili mi yoksa derlemeli bir dil mi ?
nedenleri ile birlikte yanıtınızı alabilir miyim
O projeyi ilerletmenizde yardımcı olabilirim ancak konu hakkında bilgi sahibi değilim iron python gibi bir konsol mu olacak ? Yani girdiğimiz birşeyin sonucunu mu vermeli yoksa interpreter tipinde bir konsol mu ?

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

August 25, 2012

Şimdi derlemi şeyler bizi aşar gibime geliyor. Sağlam assembly bilmek gerekir. Ama iki tür derlemeli dil olduğuna inanıyorum ki biri yalancı..:)

Yalancı olandan kastım script'i interpreter'in sonuna yapıştırıp derlenmiş havası veren uygulamalar. Ama önce kuralları belirlemeliyiz. Yani yapılacak şey basit bir bash script yazar gibi bir arabirim oluşturmak. Sonra bunu anlayıp yorumlayacak ve içeriğinde lexer olan (bu hiç kolay bir şey değil) bir şeyler yapmak.

Başlangıç std/json.d olabilir, çünkü basittir. Hemen gidip bu kütüphaneyi incele. Böylece kümeleme işaretleri, veri tipleri konusunda nasıl if'ler switch'ler kullanılmış göre. İşte bunun üzerine yeni şeyler inşaa edebiliriz..

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

August 25, 2012

json u inceleyeceğiö lexer olaylarını biliyorum denemelerim oldu parser de lexer kadar zor malesef keşke bison flex gibi d ye göre de uygulamalar olsa dsource.org da gördüm ancak sanırım güncel değiller :(
derleme işi için gerçekten sağlam assembly gerekiyor özellikle yerel değişkenler ve stack korkunç
benim anlayamadığım nokta derleme olayı olmadan if yapısını nasıl işleteceğiz tree walker falan yazıyorlar mantığı ne onu anlayamıyorum malesef

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

August 25, 2012

Ben bu konulara çok yabancıyım.

D'nin olanakları lexer ve parser'a gerek bırakmayacak kadar zengin olduğundan, metin halinde PEG (parsing expression grammer) düzeninde tarif edilerek dil oluşturulabiliyor:

https://github.com/PhilippeSigaud/Pegged

Bütünüyle derleme zamanında! :)

Ali

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

August 26, 2012

Gerçektende tam bir harika ancak kullanmayı öğrenmem gerekiyor bunu daha önce görseydim diğer denemelerimi d üzerinden geliştirmeyi düşünürdüm :) Teşekkür Ederim

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

September 13, 2012

Peki Merak Ediyorum da değişkenleri nasıl bir biçimde tutabiliriz fikirlerinizi alabilir miyim

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

September 13, 2012

Bir eşleme tablosunda tutabilirsin. Çoook uyduruk bir fikir:

enum Tür { tamsayı, kesirli, boolean }
enum Deyim { değişkenTanımı, döngü }

struct Değişken
{
   Tür tür;
   string isim;
   // ... başka? ...
}

import std.stdio;

void derle(File kaynakKod)
{
   Değişken[string] değişkenler;

   foreach (satır; kaynakKod.byLine()) {
       Deyim deyim;
       // ... satırı dilin kurallarına göre ayrıştır ...

       final switch (deyim) {
       case Deyim.değişkenTanımı:
           Değişken değişken /* = değişken bilgisini edin */;

           if (değişken.isim in değişkenler) {
               throw new Exception("Değişken zaten tanımlı");

           } else {
               değişkenler[değişken.isim] = değişken;
           }

           break;

       case Deyim.döngü:
           // ...
           break;

       // ...
       }
   }
}

void main()
{}

Ali

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

September 21, 2012

Evet aslında güzel bir fikir ancak eşleme tabloları yokken ne şekilde tutuyorlardı gerçekten merak etmekteyim araştırdım ama kesin bir sonuç bulamadım ayrıca tree walker denilen olayın mantığını anlamak biraz zor yani label kavramına derlemeden yorumlama anında atlamak :)

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

« First   ‹ Prev
1 2 3