Mesajlarını aradığınız kullanıcı: Alper# (8)

konu: Regex Nasıl Tasarlandı  ; forum:: Diğer Konular
Alper# #1
Üye Haz 2015 tarihinden beri · 8 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
İbrahim:
Merhaba, bu konudaki yorumları okuyunca aklıma şu sorular geldi:

1) Derleyici (örn. C++ derleyicisi) veya yorumlayıcılarda (örn. python yorumlayıcısı) bulunan regex kütüphaneleri nasıl bu kadar hızlı çalışıyorlar? Çünkü mesela ben bir regex yorumlayıcısı yapmak istesem bir sürü döngü ve yineleme içine girerim ve bu da bana performans sorunu oluşturuyor. Tüm dillerin (derlenen veya yorumlanan) regex ayrıştırıcıları nasıl bu kadar hızlı çalışıyorlar? (Ya da ben öyle zannediyorum :) ).

2) Github'da kabaca bir kaç derleyici ve yorumlayıcı kodlarına göz gezdirdim (HHVM, gcc, ruby, python falan felan), bunların hiçbiri de istenilen kod kurallarını regex kullanarak ayrıştırmamış (parse). Sorum ise bu regex bu kadar kolay, hızlı ayrıştırma işlemi yapmasına rağmen neden dil tasarlamada kullanılmıyor? Kullanılmamasındaki sebep nedir? (Bu soru yalnızca sözdizimi kurallarını kontrol etmeyi kasteder.)

Teşekkürler!

1) Python koca gövdeli kütüphanesiyle hızlı çalışmıyor. Biz öyle sanıyoruz. C/C++ hızlı olması doğasında olan birşey.

2) Hızlı olmak zorundalar. Derleyici(beklenirde) yada yorumlayıcı(bu siteye neden girmiyor yav xD) yavaş çalışırsa programcının vay haline. Farklı bir yöntem kullandıkları kesin ama nasıl olduğuna hiç bakmadım.

Regex her zaman doğru cevap vermez. Hata yapmamak için yapılmış birşey olması gerekli. Hele yorumlamalı diller. Her seferinde bir hata verip ve yavaş kalırsa iş çığırından kopar.
konu: Regex Nasıl Tasarlandı  ; forum:: Diğer Konular
Alper# #2
Üye Haz 2015 tarihinden beri · 8 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 11703
Regex abartıldığı kadar optime çalışmıyor. Çok karmaşık bir patternde kafayı yedirtecek kadar olasılığı hesaplamaya çalışıyor. Günümüzün bilgisayarları bunu çok rahat halledecek seviyede. Sadece biz olan biteni çok küçük seviyede algılamamız çok zor.

Yukarıda python kodunu kaç kere işleme girdiğini hesaplayacak birşey olsa herşey çok net anlaşılacak. Online olarak Regex uygulamaları var. Hazırladığım küçük bir patterni uzun bir texte aratınca ortala 500 kere döngüye sokuluyor. İşi biraz daha kızştırınca iş işten geçiyor.

https://github.com/google/re2/tree/master/re2 güzel bir kaynak buldum sanırsam. Zamanı olan inceler.

Regex işin kolayı kaçmaktır. Eğer amacınız siteyi komple taratıp, veri çekip ve ayıklamaksa kullanmak için en basit yöntem oluyor. İşe yaradığıda doğrudur.

Şimdi aklıma bir yöntem geldi işe yararmı bilemeyeceğim.

const int a = 0x0001
const int b = 0x0002
const int c = 0x0004
const int d = 0x0008
const int e = 0x0016
const int f = 0x0032
const int g = 0x0064
const int h = 0x0128

örnek metin: acdasdfgghas
örnek pattern [a-d] diyelim. a ve d harfleri arasındaki bölümleri çıkartacak.

acdasdfgghas

a | b | c | d = 15

a | c | d | a = 15

Burada tek tek karekterlere değer verip (sürekli iki kat artacak) ve bitwise | işemi yapıp bileşkesini almak olur.
Böylece acda kısmını çıkartırıp, sonraki s harfi bileşkeyi bozacağı için onu dahil etmeden önceki kısmı veri olarak alabilir.

Bissürü yöntemi var denemek size kalmış. Regex yerine şifreleme algoritmasıyla kafa patlatılsa daha yararlı :)
konu: D Language Foundation kuruldu  ; forum:: Duyurular
Alper# #3
Üye Haz 2015 tarihinden beri · 8 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 11423
Ali Hocam öncelikle yeni görevinizde başarılar dilerim. D'nin Türkiye'de gelişimi hakkında verdiğiniz katkıları görmüş olmalılar ki bu önemli projede sizide yanlarında görmek istemişler. Bizim gibi teknolojiyi geride takip eden toplum olarak, güzel bir gelişme.

Kendi çıkarımları üzerine D'nin gelişimi hakkında bir kaç fikrimi belirtmek isterim;

1) D'nin günümüzde varolduğunu göstermek amacıyla her hangi bir çok platformlu açık-kaynak kodlu tümleşik geliştirici ortamına doğal destek sunma amaçları var mı? Benim gibi D'yi yeni yeni öğrenen bireyler için çok büyük ilerleme olacağını düşünüyorum. Öğrenmenin en iyi yolu deneyip bulmakta geçer. Eğer böyle bir ortam sunurlursa yeni öğrenen kitleye çok büyük destek olurdu.

2) D'de kaynak sıkıntısı hatsafhada. Bir algoritmayı farklı bir dilde uygulamak bazen gerçekten zor olabiliyor. Forum konsepti dışında sözlük konseptine benzer bir alt alan açsalar gerçekten güzel olurdu. Açıklama biraz sıkıntı olduğunu düşünüp örnekle anlatacağım.

dlang.org resmi site. Örneğin book.dlang.org adından alt alan açılır. Orada insanlar yazdıkları kodları paylaşıp güzel bir bilgi platformu oluşturabilir. Örneğin ben üyelik açıp fibonacci sayıların nasıl hesapladığımı kodlarla yazıp çözüm olarak belirteceğim. Farklı kişilerde başlığı aratıp, farklı şekilde nasıl hesapladığını yazabilecekleri yada soru-cevap olarak bilgi paylaşabilecek bir platform olmasını isterdim. Böylelikle öğrenme safhası bıtkınlık vermeden geçirebileceğini düşünüyorum. Bir gün bir başkası çok farklı bir algoritma geliştirip kaynak kodlarını paylaşmak isteyebilir. Yada bir hata ile karşılaşılıp bunu burada belirtebilir. Forum'da bunu başarmak çok zor. Hem konular çok fazla oluyor hemde moderatörlerin forumu düzenli tutması güçleşiyor. Burada temel olan çözümler ve soru-cevap olarak bir başlık altından ikiye ayrılması. Böylelikle kargaşayıda en aşağı çekmiş olacağız.

Örnek başlık:
Geometrik cisimlerin hacim hesabı

Çözümler;
Kürenin hacminin hesabı: Kodlar...
Silindirin hacminin hesabı: Kodlar...

Soru-cevap:

45 derece eğik duran silindirin hacmi nasıl ölçerim.
Cevaplar geliyor ve kullanıcılar tarafından en çok beğeni alan (O cevabın işe yarar olduğunu gösterecek birşey) yorum zamanla çözüm olarak o başlığın altıdan yer alabilir.

Burada amaç bir bilgi paylaşım platformu yaratılıp kullancılar tarafından D ile yazılmış kodları paylaşmak.

PHP'nin bu derece yaygın olmasının sebebi çok fazla hazır kodlarının olması.
C/C++ vazgeçilememiş olmasının sebebi çok iyi altyapıya sahip olması.
C# gibi MS destekli dillerin gelişmiş olması güzel bir geliştiri ortamına sahip olması.
Java'nın bu denli Android'de patlama yaşaması geliştiricileri yaygın bir platforma çekmesi.

Eğer D bu denli büyük dillere karşı koyacaksa D'nin yaygınlaşması için kitap yada dökümantasyon yeterli olmadığını düşünüyorum. Yeni bir dili öğrenmenin başlangıç noktası kitabını alıp okumaktan geçsede o dil üzerinde iyi bir yetkinlik için deneme-yanılmada geçer. Eğer böyle bir platform geliştirilirse çok büyük adım olacağını inanıyorum. İnsanlar vaktinin çoğunu uygulamada geçirirse daha büyük adım olacağına gönülden inanıyorum.

Eskiden vaktimin çoğunu saçma sapan denilecek matematiksel hesapların kodlarını yazmakla geçirirdim. Şimdi ise eğitim sistemin içinde körelip gittim. Böyle bir platform olsa en çok ben takip ederdim :)


Yazım yanlışı yada anlaşılmayan bir yer olduysa belirtirseniz sevinirim.
konu: code::block ayarları !!  ; forum:: Ders Arası
Alper# #4
Üye Haz 2015 tarihinden beri · 8 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 11409
Hocam Eclipse C/C++ indirip, DDT kullanabilirsin.

Birçok editör var, hiçbiri işlevsel değil. Sadece günü kurtarıyor.

AYrıca editörlere buradan http://wiki.dlang.org/Editors buradan bakabilirsiniz.  ;-)
konu: Kütüphane (DLL) ilintileri  ; forum:: D Programlama Dili
Alper# #5
Üye Haz 2015 tarihinden beri · 8 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 11385
Ali hocam cevabiniz icin cok tesekkur ederim. Eve gidince C ile basit bir program yazip bunu D ile kullanmaya calisacagim.

Konu basligini istediginiz bir baslikla degistirerek, forum takipcilerinde yararlanabilecegi bir konu olmasi dilegiyle.

Tekrardan cevabiniz icin tesekkur ederim.
konu: Kütüphane (DLL) ilintileri  ; forum:: D Programlama Dili
Alper# #6
Üye Haz 2015 tarihinden beri · 8 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Kütüphane (DLL) ilintileri
Selam arkadaşlar foruma kayıt olup, ortadan kaybolup ve dayanayıp tekrar sessizce forumu takip eden bir arkadaşınız. Okulla bir kaç haftadır uğraşmamdan dolayı boş zamanı çok az oluyor. Ama sürekli D'nin bu kadar güzel sözdimini düşünce benim için çok önemli bir hobi amaçlı bir proje üstünde çok kafa yoruyorum.

Neyse esas konuma döneyim:

Basit bir 2D oyun motoru yapmak için kaç aydır araştırma yapıyordum. Amacım sıfırdan ortaya bir şey çıkarmak değildi. Yada kodları alıp yapıştırıp puzzle parçaları gibi birleştirmekte değildi. Bunu yapan insanlar nasıl düşünerek bu kodları yazdı. Sıfırdan yazamayacağım için bende azda olsa kopya çekme isteği doğdu. Mantıklarını kavramam gerekti. Sonra fark ettim ki matematiğin dibine vurmuşlar. Matematik sorun değil eksiklerimi Türkçe kaynaklarla hallediyorum. Basit fizik kurallarını kodlarla uyguluyorum. Birazcık üniversite fiziği birazcık kalkülüs derken bu işi yapacağıma çok eminim.

Esas sorularıma geçersek;

1) https://github.com/DerelictOrg/DerelictGLFW3 şu örnekte anladığım kadar Windows için glfw.dll dosyasının methodlarını kullanabiliyoruz. Language Bindings dedikleri olayı çok güzel şekilde açıklıyor. Anlamadığım nokta C/C++ ile yazılmış binary lib. nasıl iletişim kuruyor. İşaretçileri kullanarak nasıl methodları çağırıp işlem yaptırabiliyor.

Örneğin:
alias da_glfwCreateWindow = GLFWwindow* function( int,int,const( char )*,GLFWmonitor*,GLFWwindow* );

Bu kod bize ne anlatıyor?

2) Language Bindings nasıl yapılıyor. Tam olarak nasıl bir mantık işliyor. OpenGL C ile yazılmış grafik kütüphanesini başka dillerle nasıl hükmediliyor.

Aklımda daha çok soru var ama en önemlisi bunlar. Ciddi anlamda neyle uğraşmam gerektiğimi çözebilmiş değilim.

Şimdiden yardımlarınız için teşekkürler.
Bu mesaj 2 defa değişti; son değiştiren: acehreli; zaman: 2015-10-09, 09:19.
konu: Merhabalar  ; forum:: Tanışma ve Kaynaşma
Alper# #7
Üye Haz 2015 tarihinden beri · 8 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 11255
Herkese teşekkür ederim.
konu: Merhabalar  ; forum:: Tanışma ve Kaynaşma
Alper# #8
Üye Haz 2015 tarihinden beri · 8 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Merhabalar
Adım Alper Atay, uzun zamandır forumu takip ediyorum ve bilgili insanların yorumlarını okumak mutlu edici.

Aklımda bir kaç tane proje var onların gerçekleştirmek için uygun bir programlama dili arıyordum.

C ile uğraştım bir yerden sonra bunalttı.
C++ ile söz dizimi oldukça zor ve kafa karıştırıcı. İki şerli sayfalarla uğraşmak yorucu.
İlk göz bebeğim Pascal ile uğraştım tarihin tozlu raflarında kaldı.
Java ile uğraşıyorum bu seferde sanal makine üzerinde çalışması benim projeme ters geldi.

D ile karşılaşmam bir kaç yılı buluyor. Çok düzgün ve anlaşılır bir dil. Bir kaç gün sonra yazdığım kodu okumaya çalışsam hatırlamazdım ama D'de hatırlamak daha kolay. Gelişmeye açık bir dil.

Webtasarım, PHP üzerinde 2 yıllık bir geçmişim var. PHPde yardım gerekirse elimden geleni yaparım.

Herkese iyi günler, sağlıcakla kalınız.
Bu mesaj Alper# tarafından değiştirildi; zaman: 2015-08-05, 04:51.
Özel Karakterler:
Özel sorgulamalar

Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-19, 00:49:25 (UTC -08:00)