Ö. Faruk Terzioğlu

F Sharp

25/4/2008 -Kategori: C_

F Sharp (fonksiyonel programlama)

Fonksiyonel programlama bir programın tamamen fonksiyonlardan oluşmasını öngören programlama yöntemidir.

Fonksiyonel Programlama adının konulmasının sebebi tamamen fonksiyonlardan oluşan bir program olmasıdır.Fonksiyonel programlamlar kendi sonucunu hesaplamaktan baska bir etki üretmez.

Fonkiyonel programlar, atama deyimleri içermediği gibi değişkenlere verilen bir değer bir daha değiştirilemez.Bir fonksiyonun kendi sonucunu çıkarmaktan başka bir yan etkisi yoktur demiştik.Bu bir çok bug ın oluşmasını engellediği gibi,hiç bir yan etkinin önceden tanımlanmış deyimlerin değerini değiştirememesini ve fonksiyonların istenilen her hangi bir zamanda çalıştırılmasını sağlar ve sıralı işlem mantığınında dışında kalır. Fonksiyonel programların en iyi örnekleri, MATLAB, OCaml ve ML dir.

Microsoft'un fonksiyonel programlama alanındaki çözümü ise nesneye yönelik programlamanın kararlılığını ve kütüphanelerini, fonksiyonel programlamanın kabiliyeti, üreticiliği ve güçlü kod yapısı ile birleştiren, F Sharp dır.

 

F Sharp, .Net framework'e altyapı olması için tüm .Net dilleri ile beraber çalışacak şekilde Microsoft tarafından geliştirilen fonksiyonel programlama dilidir.Örneğin C# ile F# birbirlerini direk çağırabilirler.Bu demek oluyorki F#, Windows Presentation Foundation ve DirectX gibi tüm .Net Api'lerine ulaşabilmektedir.Benzer olarak F# tarafından geliştirilen kütüphaneler diğer .Net dilleri tarafındanda kullanılabilir.

Daha sonraki makalelerimizde F# ı derinlemesine incelemek üzere şimdilik sadece F# ın kurulum ve arayüzleri inceleyip bir kaç deneme yapmak üzere alt yapıyı hazırlayalım.

F# hakkında daha geniş bilgi ve döküman bulabileceğimiz Microsoft Research sitesinden bu linke tiklayarak F# ın en son sürümünün kurulumunu indirip yüklemeye başlayabiliriz.F# ın çalıştırabilmesi için bilgisayarınızda .Net framework 2.0 veya daha üstünün yüklü olması gerekmektedir."F# Interactive" F# ın derlenmesi için kullanılan konut satırıdır.Bunun yanında Visual Studio içinden de çeşitli samplelar ve intellisense ile desteklenerek F# derlenebilinmektedir.Onun için size C# için Visual Studio 2008 in express sürümünüde indirip kurmanızı tavsiye ederim.

Gerekli kurulumları yaptıktan sonra başlat menüsüne Microsoft Research F# 1.9.3.14 diye bir alt dizinin geldiğini göreceksiniz.Buradan "F# Interactive (console)" i tıklayarak F#'ı açalım.Gördüğünüz gibi karşımızda konsol çıkmıştır ve F# programlarımızı bu pencereden yazmaktayız.Burada ;

  

let x = 5;;

 

yazarak ilk değişkeninizi tanımlayabilirsiniz.Visual Studio'nun bir çok kolaylık sağladığından bahsetmiştim.Bunuda inceliyecek olursak, daha önce F#'ı açmak için kullandığımız kısa yolun altındaki "F# Interactive (Visual Studio)" i tıklarsanız karşınıza bir yardım dosyasının çıkmış olduğunu göreceksiniz.

Burda anlatılanları özetlersek, "F# Interactive" i Visual Studio içinde araç penceresi olarak kullanabileceğimizden bahsediyor.F# ı yüklediğimiz için bu otomatik olarak Visual Studio nun içine entegre olmuştur."F# Interactive" i aktifleştirmek için Visual Studio menülerinden "Tools->AddIn Manager" dan F# ın seçili olduğundan emin olun.(Eğer "F# Interactive for Visual Studio" listenmiyorsa tekrar yüklemeyi deneyin) "File->New->Project" yolunu izleyerek "New Project" penceresinden "Other Project Types " altında "F# Projects" seçip aşağıdan isim vererek yeni F# projemizi açalım.İlk başta ekrana herhangi bir şey gelmemektedir.Sağ taraftaki "Solution Explorer" (eğer yoksa View altından Solution Explorer ı tıklayarak açabilirsiniz)da uygulamamızın adına sağ tıklayarak "Add->New Item dedikten sonra karşımıza çıkan seçeneklerden şimdilik "F# Source File" ı seçelim.

Karşımıza bir çok kod ve açıklamalar gelmektedir.Burda yazılan kodları olduğu gibi değil "F# Interactive Tool Window" da çalıştıracağız.Onun için şimdi "Alt+Enter" tuş kombinasyonu ile "F# Interactive" i açalım. Kodlarımızı, bu komut penceresinin emulasyonu olan bu pencerede çalıştıracağız.Öncelikle daha rahat bir çalışma ortamı için bu pencereyi bir yere konumlardırın.(en alta iyi gidiyor). Yukarıda komut pencerisi için yazmış olduğumuz tanımlamayı burda da denersek çalıştığını göreceksiniz(kodları çalıştırırken komut satırında her satır sonunu mutlaka çift notkalı-virgül ile bitirken Visual Studio da otomatik olarak konulmakta.). Projemize yeni bileşen eklerken "F# Source File" yerine diğer seçenekleri seçerseniz hepsinin farklı bir şey anlattığını göreceksiniz.Buradaki kodları çalıştırabilmek için işlenmesini istediğiniz kodları seçim haline getirerek "Alt+Enter" tuş kombinasyonları ile veya kopyala-yapıştır ile komut satırı emülasyonuna yapıştırarak çalışmasını sağlayabilirsiniz.

Genel olarak bu makalemizde fonksiyonel programlamanın ne olduğundan, F# ın ne olduğundan ve temel kurulumlardan bahsettik.Bir dahaki makalemizde de F# kodlarını, çalışma mantığını, syntax yapısını , .Net kullanımını ile C# ile entegrasyonunu ve F# ın diğer müthiş özelliklerini anlatma üzere iyi günler dilerim.

 

Ö. Faruk Terzioğlu , Trabzon

 

Kaynaklar ;

Microsoft Research

Fonksiyonel Gezegen

Wikipedia

F # Manual

Yorum (yok) Yorum yaz! Kalıcı Bağlantı

15/4/2008 -Kategori: C_

C Omega, Microsoft Research tarafından geliştirilen, tamamen deneysel bir araştırma projesidir.C Omega dilini geliştiren ekip, deneme yanılma yoluyla yenilikler geliştirerek C# 'ın geliştirilmesine yardımcı olmaktadır.Microsoft tarafından yapılan açıklamaya göre, C Omega'yı ticari bir dile dönüştürme planları olmayıp, herhangi bir ürüne entegre edilmeside düşünülmemektedir.

C Omega, hiyerarşik veri (XML), ilişkili veri (SQL) ve .Net Common Type sistemlerinin arasındaki uçurumu köprülemek için yazılmış "veriye yönelik programlama" dır.Başka bir deyişle , XML, SQL ve CTS in genelleştirme mantığı ile birleştirilmiş ortak bir dildir.Veri yapısı açısından bakarsak C Omega ile amaçlanan, ilişkili ve XML veri modeli ile SQL in entegrasyonu sunacak şekilde C#'ı geliştirmektir. Daha iyi anlamak için bir örnek verecek olursak ;

public class card
{
    sequence
    {
        string  name;
        string  title;
        string  email;
        string? phone;
        logo?   logo;
    };
}

public class logo
{
    attribute string url;
}

public class Test
{
    static void Main()
    {
        card c =
                   John Doe
                   CEO, Widget Inc.
                   john.doe@widget.com
                   (202) 456-1414
                  
                
;
        c.*.{ Console.WriteLine(it); };
    }
}
 

Örneğin yukarıdaki kodun içine gömülmüş olan aşağıdaki XML kodu gibi.


                   John Doe
                   CEO, Widget Inc.
                   john.doe@widget.com
                   (202) 456-1414
                  

Ticari bir dil olarak geliştirmeyi düşünmüyoruz da deseler Microsot'un ne yapacağı belli olmaz diyerekten bu dili takip etmeye değer diyorum. Bu özelliklerinin bir de C# a eklendiğini düşünsenize. Belli mi olur bakarsınız .Net 4.0 ile C# dada kullanabiliriz belkide.

Yorum (yok) Yorum yaz! Kalıcı Bağlantı

Bİlişim Kahramanları Aramızda

15/4/2008 -Kategori: Duyuru

Bilişim Kahramaları tüm Türkiye'yi geziyor. Microsoft'un bilişim kahramalarının daha verimli ve başarılı çalışmaları için zamandan ve maliyetten tasarruf sağlayan en yeni ürünleri olanWindows Server 2008, SQL Server 2008, Visual Studio 2008 nun Türkiye'de ilk kez tanıtıldığı üniversite lansmanlarını kaçırmayıp bu ürünlerle tanışın.

Bölgesel olarak düzenlenen lansmanlardan İzmir, Kayseri ve Ankara'da olanlar gerçekleştirilmiş olup İstanbul ve Trabzon illerimizdekiler için aşağıdaki linklerden kayıt olup bu en yeni ürünlerle tanışma fırsatını kaçırmayın.

İstanbul Etkinliği 15 Nisan 2008, 13:30 – 17:30 Boğaziçi Üniversitesi Garanti Kültür Merkezi, Uçaksavar Kampüsü, Etiler Kayıt İçin Tıklayınız ≫
Trabzon Etkinliği 30 Nisan 2008, 13:00 – 17:00 Karadeniz Teknik Üniversitesi
Atatürk Kültür Merkezi Reşit Tarakçıoğlu Amfisi
Kayıt İçin Tıklayınız ≫

Yorum (yok) Yorum yaz! Kalıcı Bağlantı

Ziyaretçi Defteri

14/4/2008 -Kategori: Duyuru

Bloğum hakkında olumlu olumsuz eleştirilerinizi, isteklerinizi bu sayfaya yorum vererek yapabilirsiniz.

Yorum (yok) Yorum yaz! Kalıcı Bağlantı

Site Map

14/4/2008 -Kategori: Duyuru

14/4/2008: Bilişim Kahramanları Aramızda

14/4/2008: C Omega nedir?

Yorum (yok) Yorum yaz! Kalıcı Bağlantı