Jump to page: 1 25  
Page
Thread overview
D Konsolu
Apr 25, 2012
Salih Dinçer
Apr 25, 2012
zafer
Apr 26, 2012
Salih Dinçer
Apr 26, 2012
zafer
Apr 26, 2012
Kadir Can
Apr 26, 2012
Salih Dinçer
Apr 26, 2012
Salih Dinçer
Apr 26, 2012
zafer
Apr 26, 2012
Salih Dinçer
Jun 23, 2012
huseyin
Jun 24, 2012
Salih Dinçer
Jun 24, 2012
Kadir Can
Jun 25, 2012
Kadir Can
Jun 25, 2012
Kadir Can
Jun 28, 2012
huseyin
Jun 28, 2012
huseyin
Jun 28, 2012
huseyin
Jun 28, 2012
Kadir Can
Jun 28, 2012
huseyin
Jun 28, 2012
Kadir Can
Jun 28, 2012
huseyin
Jun 28, 2012
Kadir Can
Jun 08, 2013
Salih Dinçer
Jun 10, 2013
Salih Dinçer
Jun 17, 2013
Salih Dinçer
Jun 18, 2013
huseyin
Jun 26, 2013
Salih Dinçer
Jun 28, 2012
huseyin
April 25, 2012

Merhaba,

Herkesin katkı sağlayabileceği bir projeye var mısınız? Bu çalışma bize çok şey (neredeyse D Dili'nin tüm kolaylıklarını!) öğretebilir ve neticesinde çıkan ürünü de kullanabiliriz. Çünkü D, aralıklarıyla (ranges) çok güçlü bir dil...

Belki bu çalışma yeni uygulamalar için fikir temeli de olabilir ki D konsolu fikri aklıma geldi. Buna %100 etken Ali Çehreli'dir!

Evet, evet...:)

Duyurulur, bu tohumu kafama O soktu! Aslında böyle bir hedefim yoktu! Bütün suç O'nundur, şu an nöronlarımda filizleniyor (sinapslarda hareketlenme var...) ve bütün beynimi ele geçiriyor... :nuts:

Ne dersiniz? Parmakları göreyim...

Alıntı:

>

'/*
konsol.d (26.04.2012)
*/'

> import std.stdio, std.parallelism, std.range;
>
> void main() {
>     char oku;
>
>     while (true) {
>         write("=: ");
>         do {
>             readf("%s", &oku);
>             // enter(10)'a basılana kadar okumaya devam et...
>         } while (oku!=10);
>     }
> }
> ```

>
Örneğin şöyle bir komut verdiğimizde ''taskPool.reduce!'"a + b"'(iota('11'))'', bize Gauss'un toplamını ([n²+n]/2) yani 55'i versin. Verileri gerektiği şekilde bölmek için RegExp'i kullanabiliriz. Kabaca buradan 3 veri değerlendirilmeye alınacak. Biri komut, diğeri parametre ve üçüncüsü ise veri kaynağı. Belki bu Lisp'deki (string= "Ali" "Çehreli") şeklinde tanımlamalar da yapabiliriz.

Başarılar...

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

"D Konsolu" tam olarak nedir anlmadım Salih?

Ne yapacağız bir konsol mu yazacağız? Yani unix sistemlerindeki bash windowsdaki gibi dos konsolu gibi birşey mi?

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

April 26, 2012

Evet ama daha çok LISP görünümde (işlevinde değil) bir şey düşünüyorum...

Aslında verdiğim kod örneğindeki gibi bir şey olabilir. Klavyeden okuduğumuz değerler, anlamlı bir dizge (string) olduğunda ve/veya enter(10) tuşuna basıldığında üst döngüye geçecek. İşte burada, bilgi istiyorum işareti (=:) gelmeden evvel hesap yapılıp ekrana değer yazılacak.

Örneğin ilk başta iki sayıyı toplayabiliriz. Notasyonu bizim alışık olduğumuz, (3+4) gibi kullanabiliriz ve enter'a basıldığında alt satırada şöyle bir sonuç almalıyız:

'=: 3+4
(7)=: '

**Ekleme: **Maksat başlamak çünkü iyi bir alt yapı oluşturabilirsek zamanla D'nin desteklediği tüm komutları kullanabiliriz. Zafer uygun görürse, aklımda yapacağımız şeyin hafif sürümünü konsolKutusu isminde Divid içinde kullanmak da var. Ama bunun için bir başlangıç yapmalıyız...:)

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

April 26, 2012

Alıntı (Salih Dinçer):

>

Zafer uygun görürse, aklımda yapacağımız şeyin hafif sürümünü konsolKutusu isminde Divid içinde kullanmak da var. Ama bunun için bir başlangıç yapmalıyız...:)

Hala kafamde tam olarak netleştiremesemde bence sorun yok, hatta böyle bir çalışma çok güzel olur diye düşünüyorum. Divide eklenebilirse divid içinde güzel bir eklenti olur :)

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

April 26, 2012

Mantıklı görünüyor. Ben de elimden geldiğince katkı yapmaya çalışırım.
@Salih;
İlk aşama için dört işlem haricinde ne gibi şeyler düşünüyorsun?

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

April 26, 2012

Tabi, henüz çalışan bir örnek vermediğim için ne yapmak istediğimi gösteremiyorum. Ama ümit ediyorum, bu yakında olabilir. Yine de dört işlemde bile zorlandım; hiç de göründüğü gibi değilmiş. Bir de Ali hocamın cevap vermesini bekliyorum...

@Kadir
Dört işlem konusu sadece bir ısınma turu olabilir ve hatta bu turu bir çırpıda geçebiliriz. Ben daha çok D'nin gücünü ortaya çıkaran bir şeyler yapmak isterdim. Yani LISP/Scheme gibi dillerde bir defada (tek satırda) yapamayacağımız şeyleri hesaplatmayı becerebilseydik dikkat çekerdi diye düşünüyorum! Yukarıdaki 'reduce()' örneğine benzer...

Yoksa üssü, karesi, logaritması gibi şeyleri yapmak en az dört işlem kadar kolay. Ama dikkat, dün gece ben küsüratlı sayılarda tosladım...:)

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

April 26, 2012

Python gibi yorumlamalı dillerde son derece kolay tabii çünkü herşey çalışma zamanında gerçekleşiyor.

Bu konudaki gibi dört işlem aslında bilgisayar bölümü öğrencilerinin yakından tanıdıkları bir konudur. Bir satır okunduktan sonra sözcükleme (lexing) ve ayrıştırma (parsing) adımları uygulanır.

Çünkü o satırda aslında belirli bir konuya özel bir dil vardır (domain specific language - DSL).

Sözcükleme ve ayrıştırma adımları kod içinde açıkça yapılabileceği gibi lex ve yacc gibi araçlarla da halledilebilir.

Dört işlem kolay. :) Peki taskPool.reduce!"a + b"(iota(11)) verildiğinde kullanıcının önce import etmesini de isteyecek miyiz? Bu gibi konulara dallandıkça aslında bir D derleyicisi yazılmaya başlanacak. Onunla ilgili bir konu yakın zaman önce açıldı:

http://forum.dlang.org/post/jm8tat$24lg$1@digitalmars.com

Bir anlamda dmd'nin hizmetlerinin bir kütüphane olarak sunulması anlamına geliyor. Olsa, satırları dmd kütüphanesine verir ve derletiriz.

Dört işlemi ben halletmek istesem Stroustrup'un C++ kitabında kullandığı örneğe bakmak zorunda kalırdım çünkü şimdi hemen oturup yazamam. Ama onu uyguladıktan sonra istenen miktarda karmaşık ifadeler hallediliyor: ((1 + 2) * (3 + (4 - 5))) vs.

Bütün bunlara rağmen D'nin DSL'ler konusunda olağanüstü bir konumda olduğunu hatırlatmak isterim. CTFE (compile time function execution) olanağı ile Andrei'nin son sunumlarında da altını çizdiği süper hızlı işlemler gerçekleştirilebiliyor:

http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/Three-Unlikely-Successful-Features-of-D

Orada 'Slides'a tıklarsanız D'nin tam da bu gibi sorunları çözmek için nasıl derleme zamanında expression parser oluşturabildiğini 55 numaralı slayt'ta görüyorsunuz. Onu halleden kod da 51 numaralı slayt'ta...

60 numaralı slaytta'da derleme zamanında oluşturulan D regex motorunun nasıl bilinen en hızlı motor olduğu var.

Ali

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

April 26, 2012

Teşekkürler Ali hocam, yazdıkların bize yol gösterecek ve mutlaka tek başına bile faydası olacak şeyler. Kaynakları araştıracağım ve mantığı kavrayacağım inşaallah. Ancak o kitap biz de yok ve nakletmende de sakınca yoksa rica edeceğim. Çok mu bedavacıyım neyim...:)

Neyse balık tutmaktan çok balık tutmayı öğretmekten yanayım. Öyleyse şu kod ile başlayalım mı?

/*
   hesapMakinesi.d (25.04.2012)
*/
import std.stdio;

void main()
{
   enum işlem
   {
       çıkart,     // (-) = 0;
       topla,      // (+) = 1;
       böl,        // (÷) = 2;
       çarp,       // (x) = 3;
       üssü      // () = 4;
       // (√) = 5;
   } işlem xF;

   int i, xSay;
   int rakamlar[9];
   int sayılar[10];
   char oku;

   while (true)
   {
       writeln(sayılar);
       writefln("\trakamlar: %d", xSay);
       write("=: ");
       do {
           readf("%s", &oku);
           switch (oku) {
               case '-': xF = işlem.çıkart; goto sonraki;
               case '+': xF = işlem.topla; goto sonraki;
               case '/': xF = işlem.böl; goto sonraki;
               case '*': xF = işlem.çarp; goto sonraki;
               case 'k': xF = işlem.üssü; goto sonraki;
               case ' ':
                       break;
               case 10:
                       break;
               default:
                       xSay++;
                       break;
               sonraki:
                   xSay = 0;
                   writefln("%d - %s", ++i, xF);
           }
       } while (oku!=10);
   }
}

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

April 26, 2012

Bu konu enterasan ve güzel bir alana doğru kayıyor bu çok güzel, sözcükleme (lexing) ve ayrıştırma (parsing) her zaman ilgi duyduğum ama yetersiz bilgimden dolayı bir türlü tam olarak üstüne gidemediğim konular. Umarım bu basit başlangıç daha karmaşık ve gelişmiş bir yapıya ilk adım olur.

Bu arada konu ile alakasız ama buraya sıkştırayım. Fatih projesine (http://fatihprojesi.meb.gov.tr/tr/index.php) bizimde D dili ile bir katkımız olabilir mi? Ne dersiniz?

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

April 26, 2012

Kodu az önce derledim...

veee elbette, bu kod çok başarılı...:)

Değişkenleri eşitleyip birbiriyle işlem yapabiliyorsunuz bile. Bir de UTF'yi (Türkçe karakterli değişkenleri) destekleseydi. Gerçi bunu belki de D ile yapabilirdik. Kaynak koda fazla bakmadım ama çok sıkışırsam bakacağım. Dedim ya balık tutmayı seviyorum...

Alıntı (zafer):

>

Bu arada konu ile alakasız ama buraya sıkştırayım. Fatih projesine (http://fatihprojesi.meb.gov.tr/tr/index.php) bizimde D dili ile bir katkımız olabilir mi? Ne dersiniz?

Bizim D ile Android uygulamaları geliştirebilmemiz lazım. Belki bu cümle, bu dünyaya yabancı olduğum için Androidce oldu...:)

Ama bu tabletlerde, zannedersem mobile dünyanın yıldızları hüküm sürüyor. Elbette neden D'de olmasın?

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

« First   ‹ Prev
1 2 3 4 5