C# – CLR, CLS, MSIL olguları. ( .NET kodunun çalıştırılma esasları…

C# – CLR, CLS, MSIL olguları. ( .NET kodunun çalıştırılma esasları… ) C# ile üretilmiş kodların sistem üzerinde çalıştırılmasını sağlayan mekanizmadır… 

C# – CLR, CLS, MSIL olguları. ( .NET kodunun çalıştırılma esasları… )

Selam ile…

Bu dökümanı okumadan önce, bazı terimlerde güçlük çekmemeniz için " C# Programlama Dili, .NET Framework ve Programlama Dilleri Tarihinde Önemli Adımlar " adlı yazıyı okumanızı tavsiye ediyorum.

CLR ( Common Language Runtime ) – Ortak Dil Çalışma Zamanı

C# ile üretilmiş kodların sistem üzerinde çalıştırılmasını sağlayan mekanizmadır. C# ile oluşturduğunuz kodlar derlendiğinde elde edilen kod aslında çalıştırılabilir bir kod değildir. Hemen şaşırmayın! Bu kod Microsoft Intermediate Language ( MSIL ) denizel özel bir koddur. Bu kod " sözde kod " ( pseudocode ) içeren bir dosyadır. MSIL bu noktada işlemciden bağımsız taşınabilir kodlar tanımlar. Aslında bu Java ‘nın " bytecode " ‘u ile aynı gibi görülsede aslında önemli farklılıklar vardır.

Eğer kafanız karıştı ise şöyle ifade edeyim. C# veya Java da derlenmiş kodlar yani; gerek MSIL gereksede bytcode , bulunduğu sistemde bir ara program ile çalıştırılır. Bu program kendine gelen o programlama diline özgü kodu, sistem üzerinde çalıştırır. İşte C# ta bu CLR ‘dir. Yani CLR ‘nin olduğu her ortamda ( işletim sistemi ve işlemci farketmeksizin ) C# da derlenmiş kodlar daha doğrusu MSIL çalışacaktır. Bu aynı zamanda platform bağımsız ( Cross Platform ) bir programlama dili için bir zounluluk haline gelmiştir. Zira bilgisayarın işlemcisine giden kodların işlemciye göre yazılması gerektiği düşünüldüğünde, bu işin üstesinden gelebilmek için bir arayüz programı gerekmektedir.

C# Kodlarıın çalıştırılması

C# ile derlenen kodlar yani MSIL kodlar; bir JIT ( Just-In-Time – Tam zamanında ) derleyici tarafından kullanılarak çalıştırılabilir koda dönüştürülürler. C# ( veya .NET ) kodları çalıştırıldığı zaman CLR, bu JIT derleyiciyi çalıştırır. JIT derleyici programınızın ihtiyaçlarına göre MSIL ‘i yerel dile çevirir. Yani MSIL olarak ürettiğiniz her kod CLR ‘nin olduğu her ortamda o sisteme uygun bir dile çevrilir ve yürütülür.

Bu noktada MSIL ‘i Java ‘nın bytecode ‘undan ayıran en önemli özellik. Kodun içinde yeralan metadata olarak tanımlanan çıktıdır. Bu çıktı sayesinde programınızın diğer kodlarla etkileşimi sağlanır.

CLR ‘nin Kontrolünde Olan ve Olmayan Kodlar

Kontrol altında olan kod CLR ‘ye bağlı bir koddur. Bu sayade zaten kod bulunduğu her ortamda işlemci ve işletim sistemi gözetmeksizin çalışmaktadır. Aynı zamanda bu kodlar bir çok açıdan programa avantajlar sağlamaktadır, gelişmiş yönetimler, diller arası etkileşim ve güvenlik bunlardan sadece bir kaçıdır. Ama bunların yanında CLR ‘nin kontrolünde olan kodların dezavantajlarıda vardır. Derleyicinin mutlaka MSIL kod üretmesi ve Framework kütüphanelerine ( kabaca : gerekli dosyalara ) ihtiyacı olması gibi..

Kontrol altında olmayan kodlar ise CLR ile ilişkisiz kodlardır. Aslında buna en uygun örnek .NET ten önceki tüm windows programlarıdır. Tabi kontrol altında olan ve olmayan kodların bir arada çalışabilmesi C# ‘ın önceki programlarla olan ilişkisini kısıtlamamaktadır.

CLS ( Common Language Specification – Ortak Dil Spesifikasyonu )

Diyelimki C# ile ürettiğiniz kodları başka programlama dilleri ile kullanmanız gerekiyor. İşte bu noktada CLS devreye giriyor. CLS ‘nin görevi C# ile diğer dillerde olan ortak özellikleri tanımlamaktır. CLS diğer diller tarafından kullanılacak bileşenleri geliştirirken önem kazanır. Öğreneğin Delphi , Java veya başka bir dille yazdığınız programların C# ile yazdığınız programlara ulaşırken uygulayacağı veri tipleri ile ilgili kuralları CTS ( ortak tip sistemi ) belirler.

Son Sözler…

Bu dökümanda genel bilgi açısından gerekebilecek bazı önemli noktaları anlatmaya çalıştım. Aslında geçmişte programlama dili ile birazcık ilişkiniz oldu ise yazılanları iyi bir şekilde anladığınızdan eminim. Ama programlama dilleri ile daha önce hiç bir ilgisi olmayan arkadaşlar için de umutlu olduğumu söyleyebilirim. Zira bu gün için bilgisayar ve programlama dilleri ile ilgili hemen hemen herkesin bildiği, işletim sistemine göre kod yazılma, kodun çalıştırılma yöntemleri gibi konularda bilgili olduklarından eminim. 

Tarih : 29-Eylül-2002

Kaynak : The Complete Reference C# , .NET Framework SDK ve C# yardım dosyaları.

Alıntı : -

Dökümanı Yazan : Fatih Hood – zw@zeb.bizwww.zeb.biz

Arama Terimleri:

c# clr, msil clr, msil kodları, clr c#, c# çalışma esasları, cls programlama, cls program örnekleri, cls nedir nasıl kullanılır, cls kodları, cls kod

ceviz.net

Yazar - 23 Ekim 2003. Kategori PROGRAMLAMA. Bu yazıya yazılan yazıları RSS üzerinden takip edebilirsiniz RSS 2.0. Yorum yazabilir veya geri izlemede bulunabilirsiniz.

"C# – CLR, CLS, MSIL olguları. ( .NET kodunun çalıştırılma esasları…" için yapılan toplam yorum - 3

  1. diyorsunuz ki bu formu okumakta zorluk çekmemek için şurayı şurayı okuyun….biz gayet iyi okudukta.her sitede aynı şey bunları koyacağınıza güzelce kodlar,örnekler koysanız,kodların çalışma esaslarını anlatsanız daha yararlı olmazmıydı…sevgiler

    ceyda

  2. ceyda arkadaşım ekleme tarihini görmedin heralde teee 2003 yazıyo..bu site çoktan bum olmuş..

  3. Bende kıtapı var ıstersenız verebılırım…
    Sanal kıtap :)

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>