June 28, 2012

Alıntı:

>

; satır sonu anahtarı yanı aslında sayfalarca kod donuyor phpmyadmin ' de görmüş olmanız gerekir

Doğru ancak dkvG'nin mysql kadar özelliği yok ki onun kadar kod döndürsün. Ayrıca bir fikir yarına da hazır olması gerekmiyor. Sadece bir şeyler öğrenmek için. Zaten ben şuan kod yazacak kadar bir şey bilmiyorum. Her şeyi unutmuşum. Ali Bey'in enfes derslerini tekrar etmem gerekiyor.

Alıntı:

>

ama benim aklıma takılan konu mysql deki verilerin nasıl bir mantıkta saklandıkları

Onu araştırmak lazım o çok büyük hesapların işi. Koskoca oracle gibi firmalar yazdığına göre, mysql bile çok basit sistemler dendiğine göre ben sql bilmiyorken bu kadarını araştırmam. Ancak eş zamanlı programlama ve ikili kodda yazım ile ilgili değişik bir sistem kullansalar gerek. Gereksiz veri okumamak içinde her şeyi birbirinden ayrı tutuyorlardır.

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

June 08, 2013

Zekeriya buna bir el atacaktı...

Sadece bir hatırlatmak istedim...:)

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

June 09, 2013

Hatırlatmanız çok iyi oldu Salih hocam :)

Aynı anda o kadar çok şeye dalıyorum ki neyi yapmalıyım hatırlamakta zorluk çekiyorum.

Projede parser a gerek olmadığını düşünüyorum ve gelişmiş bir veri yönetimi havuzuna da ihtiyaç yok gibi gözüküyor. Sadece Lexer yeterli bence ve ayriyetten matematiksel işlemleriniz için HumanLook algoritması. Github da projeyi açıyorum o halde?

https://github.com/Rhodeus/DConsole

Bir kaç bir şey yapınca commit atarım.

Zekeriya

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

June 09, 2013

Salih hocam bir başlangıç yaptım.

İçerisine RhS nin lexerini ve parserini attım ve gereksiz yerleri törpüledim. Şu anda işlem önceliklerini dikkate alarak hesaplama işlemleri yapabiliyor konsol :)

Zekeriya

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

June 09, 2013

Kodlar üzerinde bazı gereksiz tanımlamalar var onları eğer yarın zaman bulabilirsem inşallah çıkartacağım ve birkaç ekleme yapacağım.

Belki de bu konu altında olabilecekleri güzel bir şekilde listelesek fena olmaz, ne dersiniz?

Değişken tanımlamaları. (Bunun için birkaç yol kullanabiliriz yine variant, sınıflar veya struct. Ali hocamın sınıflarda final olaylarını söylemesi beni sınıflar konusunda cezbetti açıkçası hem bu konsol uygulamasında hızın çokta bir önemi yok gibime geliyor. Daha düzenli bir yapı olması için sınıf yapıları kullanılabilir ne dersiniz? )

"1 + 2 = a + 4" şeklinde bir ifadeyi yazınca a nın değerini verse çok hoş olmaz mı? Ama bunu nasıl yapabileceğimize dair bir fikrim yok şimdilik.

Bütün D fonksiyonlarını doğrudan konsola entegre edebilme şansımız var bence. Yani konsol üzerinde writeln işlevini tanımlamasak da onu bazı özel yöntemlerle otomatik algılanmasını sağlayıp çalıştırabiliriz. Mesela bir compile time işlev ile kaynak kod üzerinde işlev taraması yaparız. Bu işlevleri de adres ve aldığı parametreler olarak saklarız. DLL çağırma işlemi için yaptığım iasm ile işlev çağırma olaylarını kullanıp her fonksiyonu yeniden tanımlamaktan ve depolama sıkıntısından kurtulabiliriz.

Biraz uzun, saçma veya projeyi başlangıç noktasından uzağa götürdüğünü düşünebilirsiniz ama bunlar sadece fikir :)

Zekeriya

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

June 10, 2013

Estağfirullah bunlar güzel fikirler ve de başlamışsın bile...:)

Öncelikle eline sağlık çünkü RhS ile halihazırda olan emeklerini sanırım çok fazla uğraştırmadan bir 'base consol'a uyarladık bile. Ben elimden geldiğince app.d kısmını geliştirmeye çalışacağım. Bir yandan da diğer arkadaşlarımızdan gelen fikirler sayesinde, emin adımlar ile ilerleyebiliriz diye düşünüyorum.

Her ne kadar farklı notasyon olsa da Schema'daki gibi sınırsıza yakın matematiksel işlemler insanı cezbediyor ama bence önceliğimiz D olmalı. Amaç insanlara, D'yi uzaktan da olsa sevdirebilmek. Düşünsene bunun bir web uygulaması olduğunu ve insanlar std.algorithm'deki bir kaç olayı deneyebildiklerini.

Olay zor değil zannedersem? Yani kullanıcı bir veri (sayı da olabilir, tekrar eden bir metin dizisi de) beliryecek ve bunu D komutları ile tek satırda sunup sonucunu öğrenecek. Ama önce basitten başlayalım. Mesela, Fibonacci serisine ne dersin:

recurrence!("a[n-1] + a[n-2]")(1, 1).take(10).writeln;
// printout: [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

Hatta daha da ileri gidip (bilmem olur mu?) konsolda tek satırla kendimizi kısıtlamayıp şöyle bir döngü oluşturabilir miydik?

auto fibs = recurrence!("a[n-1] + a[n-2]")(1, 1);
foreach(i; 0..10) {
 fibs.popFront();
 fibs.front().writeln("\t=> fib(", i,")");
}

Bu sadece bir alternatifdi, yoksa take() kullanmak daha akıllıca ki bunun gibi map, reduce gibi bir sürü güzel örnek var. Haaa reduce()'a da bir örnek verelim. Bu da tek satır, kesin ve güzel...:)

reduce!((a,b) => a + b)(0, iota(1,10)).writeln;
// printout: 45

Özetle, std.algorithm'deki olaylar bizim gönlümüzü gözümüzü açar! Sanırım asıl mesele, komutları kütüphane ile ilişkilendirmekten çok parametreleri doğru bir şekilde lexer'dan geçirmek. Bu konuda da sen ustasın güzel kardeşim benim...: :cool:

Sevgiler, saygılar...

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

June 15, 2013

Öncelikle şunu düşünüyorum Salih hocam eğer bu dediğiniz şeyleri yaparsak konsol uygulaması olmaktan çıkıp bir yorumlayıcı olacaktır eğer öyle olacaksa projeye farklı bir isim verelim :)

Alıntı:

>

Hatta daha da ileri gidip (bilmem olur mu?) konsolda tek satırla kendimizi kısıtlamayıp şöyle bir döngü oluşturabilir miydik?

Elbette yapılabilir. Kafamdaki plan şu: parser ayrıştırmaya başladı { geldi ama } gelmedi tekrar veri isteyecek tekrar veri gelene kadar lexer işlemleri yapılacak ve parsera tokenler gönderilir.

Ve eğer bu işlemleri yapacaksak tür konusunda nasıl davranacağız? Verilere script dilindeki rahatlıkla mı erişeceğiz yoksa compiled dillerdeki kurallarla mı erişeceğiz. Buna göre veri yapısı oldukça değişir.

Aslında bir derleyici-derleyici yapsa idik bu parse işlemleri için hiç uğraşmazdık şöyle ki;
(Backus Naur Form)
sayı := 0-9
binary := sayı sayı
word := a-z
variable := word (sayı | word) *
ifstatement := if ( ....
Bu şekilde de parser çok daha rahat bir şekilde dizayn edilebiliyor ama benim şu an bunlar hakkında yeterli bilgim yok maalesef :(

Alıntı:

>

Bu konuda da sen ustasın güzel kardeşim benim...:

Estağfurullah hocam olur mu öyle şey.

Ben bu hafta seminerde idim yeni bitti. Bu yazıyı da pazartesi günü hazırladım ama ancak gönderebildim internette sorun vardı gönderemedim bir türlü :)

Zekeriya

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

June 17, 2013

Güzel şeyler olacak inşaallah...:)

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

June 18, 2013

Alıntı:

>

Aslında bir derleyici-derleyici yapsa idik bu parse işlemleri için hiç uğraşmazdık şöyle ki;

Aslında bunu c++ da bison sayesinde sağladılar ama bison ın tek sorunu türkçe karakter mevzularıydı sanırım :S

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

June 26, 2013

Bilgilendirme için teşekkürler...

Özellikle YouTube vidyosu hemen anlamak için "cuk" oturmuş...:)

Tam istediğim gibi !!!

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