Thread overview
Şablonları ve Derleme olanaklarını Lexer da kullanmak
Aug 17, 2013
Salih Dinçer
August 17, 2013

https://github.com/Rhodeus/Script/blob/master/source/RhLexer.d adresindeki kodlarda lexmap kısmında şablonlardan veya derleme zamanı olanaklarından birisini kullanarak daha hızlı bir yapı üretmemiz mümkün müdür?

Zekeriya

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

August 17, 2013

Derleme zamanı olanakları, çalışma zamanı yorumlayıp anında gönderen bir yazılımda kullanmak ne derece fayda verebilir ki?

Belki farklı derlemeler elde etmek için olabilir, bilemiyorum. FaceBook'un HipPop'ı gibi bir şey düşünüyorsak olabilir tabi...

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

August 17, 2013

Alıntı:

>

lexmap önce tek karakteri eşleme tablosunda arıyor. Bulmuşsa bir sonraki karakteri başka bir eşleme tablosunda arıyor.

Kesinlikle :)

Alıntı:

>

Öncelikle dmd'nin hash algoritmasında hız kazancı sağlandığını hatırlatayım. Hatta Walter bunu bir makale haline de getirmişti:

Ama anladığım kadarıyla buradaki hız kazancı derleme esnasında oluşan bir hız kazancı çalışma zamanında değil yanlış mıyım?

Alıntı:

>

Buna rağmen, ikinci tablo çok küçük olduğunda ikinci karakteri bir dizide sırayla aramak daha hızlı olabilir. O zaman daha hızlı olacağını hash hesabının yapılmayacağına bağlıyorum. Tabii denemek gerek.

Hmm o zaman bunlar için bir benchmark yapmak gerek. Bunları düşünürüm Parseri tamamlayayım bunlara geri dönerim tekrardan. Pegged gerçekten mükemmel incelemem şart oldu artık onu :)

Zekeriya

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

August 17, 2013

lexmap önce tek karakteri eşleme tablosunda arıyor. Bulmuşsa bir sonraki karakteri başka bir eşleme tablosunda arıyor.

Öncelikle dmd'nin hash algoritmasında hız kazancı sağlandığını hatırlatayım. Hatta Walter bunu bir makale haline de getirmişti:

http://www.drdobbs.com/cpp/increasing-compiler-speed-by-over-75/240158941

Buna rağmen, ikinci tablo çok küçük olduğunda ikinci karakteri bir dizide sırayla aramak daha hızlı olabilir. O zaman daha hızlı olacağını hash hesabının yapılmayacağına bağlıyorum. Tabii denemek gerek.

Öte yandan, bütün lexmap'ı ctRegex'in yaptığı gibi hızlandırmak da mümkün olmalı. Bunun için aklıma hep Pegged geliyor:

https://github.com/PhilippeSigaud/Pegged

Daha önce de söylediğim gibi, benim lexing ve parsing konularında hiç deneyimim yok. Kendim hızlı bir yöntem bulacağımı sanmıyorum. :)

Ali

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

August 18, 2013

Alıntı (zekeriyadurmus):

>

buradaki hız kazancı derleme esnasında oluşan bir hız kazancı çalışma zamanında değil

Haklısın. Ama yanılmıyorsam bu makalenin konusu dlang forumlarında geçerken birileri de çalışma zamanında da hız kazancı sağladılar. Eğer doğru hatırlıyorsam gelmekte olan dmd sürümü çalışma zamanında da hızlanacak. (O konu ilgisiz biçimde dallandığı için içine girip aramak istemiyorum. :) )

Alıntı:

>

bunlar için bir benchmark yapmak gerek. Bunları düşünürüm Parseri tamamlayayım bunlara geri dönerim tekrardan.

Walter'ın makalesinin özünü de unutmamak gerek: Önce hız kazancının nereden geleceğine bakmak gerek. dmd'nin -profile seçeneği yararlı olacaktır.

Ali

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