14 Haziran 2012 Perşembe

Fuzuli programlama dili

Merhabalar,

Uzun zamandır blogumda paylaşım yapmıyordum. Yeniden paylaşım yapmamı tetikleyen harika bir gelişme oldu.
Ne oldu ? Fuzuli tekrar doğdu. Bu kez ete kemiğe bürünmüş Fuzuli olarak değil, bir programlama dili olarak doğdu.
Bu dili kim yaptı ? Abimden daha çok sevdiğim (Bu arada abim yok :))) İsmail Doğan hocamın içinde bulunduğu ekip tarafından yapıldı. Yani Türk insanı yaptı. Yani yazılım ve insanlık konusunda kafamın aynı olduğu (kafamızın aynı olması öğrencisi olduğum için beni yontmasından kaynaklanıyor) kişi/kişiler tarafından yapıldı. Konuyu çok fazla geyiğe sarmadan dil ile alakalı bir şeyler yazmak zorunda hissediyorum. Daha doğrusu hak ediyor.

Peki ben bu dil hakkında ne yazabilirim?

Projenin resmi sitesinde pek Türkçe kaynak bulamadım. Dil hakkında nedir ne değildir konusuna değinmek istiyorum. Belki sizlerde dil hakkında Türkçe bilgi almak istersiniz diye düşündüm.

Programlama dili nedir?

Programlama dili, çok basit anlamda şudur : Siz kendi bildiğiniz dilde, kendinize uyan söz diziliminde (syntax) bir komut dizisi yazarsınız ve dil bunu makinenin (PC, telefon, faks, araba alarmı gibi) anlayacağı hale getirir. Bu makinenin anlayacağı hale çevirmede 2 seçenek vardır.
1 - Gerçekten makine diline çevirmek
     Yazılan dosya, insan tarafından okunamaz hale gelir ve ek bir şeye ihtiyaç duymadan direk makine içerisinde çalışır. (C++, Pascal, Delphi )
2 - Yorumlanarak çalışmak
      Yazılan program bir metin dosyası olarak kalır. Dosyanın içeriği insanlar tarafından okunur. Dilin yorumllayıcısına talimatlar göndermek sureti ile işlemlerini yapar. (Python, PHP, Perl)

Fuzuli, 2. maddede bahsedilen tarzda bir dildir. Yorumlanır. Yazılan kodlar tabiiki ileride makina diline çevrilip, bağımsız halde kullanılabilecek hale gelecektir. Fakat dilin genel çalışma mantığı budur. Dosyayı yazarsınız (Notepad gibi bir editör ile) ve daha sonra yorumlayıcı ile çağırırsınız.

Dilin söz dizilimi (syntax) biraz LISP i andırmaktaymış. Tabii ki LISP kopyası değil. Her dilden güzel olan şeyler esinlenilerek yapılmış. Üreticiler, kullanıcının en kolay yazabileceğine inandığı hale getirmek için tüm diller arasında bir seçim yapmak zorundadırlar.

Dil tamamen açık kaynak kodu ile dağıtılmakta. Yani : Dilin yorumlayıcısını kaynak kodları ile indirip, kardeşim burasında hata var, neden böyle yaptın deme şansınız var. Bulduğunuz hatayı başlarına çalma hakkına sahipsiniz ki üreticinin istediği de bu. Bu arada Fuzuli dili, en güçlü dillerden birisi olan C++ ile yazılmış.

Kütüphaneleri (DLL) desteklemekte. Yani bazı dillerde yazılmış olan DLL dosyalarını kullanabilmekte. Bir dil için en önemli özelliklerden birisi. Mesela C++ ile yazılmış bir SQL bağlantı DLL ini kullanarak TSQL komutlarını çalıştırmanıza olanak sağlayabiliyor olacak. Bu konuda bir kısıtlamanız olmayacak. Dilin yapamadıklar azalacak/hiç kalmayacak. Şu anda C++ üzerinde çalışan IO (Dosya kontrolü) ve MySQL kütüphaneleri ile çalışabilmekte. Dahası tabiiki var.

Çöp toplayıcısı (Garbage collector) mevcut. Yani bir değişken, yaşam döngüsünü tamamladığında bellekten uçuyor. Bellekte yer kaplamaması için uzayın boşluklarına yollanıyor. Bu sorunu aşmak için, tüm güçlü diller gibi lokal ve global değişken mantığını benimsemiş.

Yapımcı, Linux (Daha doğrusu X sistemleri diyelim) aşığı olduğu için ilk önce bu sistemlerde denenmiş ve Windows versiyonu yeni tamamlanmıştır. Bu şu anlama geliyor : Fuzuli ile yazdığınız bir uygulamayı tüm sistemlerde çalıştırma şansına sahipsiniz. Sınırınız yok.

Windows forms desteği geliyor. Yani klasik windows kullanıcılarının alıştığı pencere uygulamaları yapılabilecek.

Dilin genel bilgileri bunlar. Daha ileride örneklerle karşınıza çıkmayı düşünüyorum. Şimdi linklere geçelim. Aşağıdaki linkler ve açıklamalarına dikkat edelim :)

Ekipten İsmail Doğan kişisel blogu
http://ismaildogan.com.tr/blog/

Projenin web sayfası
http://www.fuzuliproject.org/

Projenin facebook sayfası
http://www.facebook.com/FuzuliProgramlamaDiliVeYorumlayici

Windows versiyonu indirme linki
http://www.fuzuli.googlecode.com/files/fuzuli-win_0.1-5.zip

Dilin referans wiki si
http://code.google.com/p/fuzuli/wiki/LanguageAndFunctionReference

Manual (kitapçık)
http://fuzuliproject.org/docs/

Umarım sever ve deliler gibi kullanırsınız.




Hiç yorum yok:

Yorum Gönder