.NET Derleme, Çalıştırma CLR, MSIL Kavramları

.Net bize platform bağımsız bir ortam sunar. Yani sadece Windows yüklü sistemlerde değil, .net frameworkü kurulu tüm sistemlerde programlarımız çalışacaktır.

Peki bu durum nasıl gerçekleşiyor ?

Öncelikle platforma bağımlı bir yazılım nasıl gerçekleştirilir onun üzerinden düşünürsek;

Yazdığımız programlar derlenirken makine diline çevrilir ve program çalışılan PC üzerindeki işletim sistemi ile bağlantı kurarak çalışır. Yani Windows, Linux yada Mac kurulu sistemler aynı programın kodunu çalıştıramazlar. Programın çalışması için, bu platformlar için programın ayrıca yazılıp, bu sistemler için ayrıca hazırlanmış derleyiciler üzerinde derlenmeleri gerekir.

Buradan platform bağımsız bir program geliştirebilme düşüncesine geçersek, bunu yapabilmek için;

Tüm bu kurulu sistemlerin anlayacağı bir ortak dil kullanmak ve her bir platform(işletim sistemi) için bu aradili anlayacak ve yürütecek derleyiciler geliştirmek yeterli olacaktır. İşte Microsftun geliştirmiş olduğu bu aradil MSIL (Microsoft intermediate Language)’dir. .Net ortamında hangi dil ile program yazarsak yazalım ,yazdığımız programın kodu öncelikle aradil olan MSIL diline çevrilir. Yani anlayacağımız üzere MSIL CPU’dan bağımsız taşınabilir bir Assembly dili tanımlar. Bu arakod(MSIL yada CIL) herhangi bir platform üzerinde, bu platforma uygun geliştirilmiş bir derleyici sayesinde bunu anlar ve programı çalıştırır.

Yukarıda programın derlenmesinden ve arakod olan MSIL’E çevrilmesinden bahsettik.Bu derleme,çalıştırma ve arakod oluşturma olayını sağlayan yapı CLR (Common Language Runtime)'dir.

CLR, çalışma zamanı servislerinden sorumludur. Programlama dillerinin entegrasyonu, güvenlik, bellek, thread vb. yönetimleri. CLR, .Net programlarını farklı platformlarda, makineye ve işletim sistemine göre programlarımızı çalıştırır. CLR, .NET kodunun çalıştırılmasını (run) idare eder.

Yani özetle, CLR , “Kaynak kod istenilen dilde yazılır ve ortak formata çevrilir (MSIL). Bunun ardından derlenir ve çalışacak şekle gelir”, işlemlerinden sorumludur.

Tam tersi olarakta , program çalıştığı zaman arakodu(MSIL) çalıştırılabilir koda çevirmekte CLR’nin görevidir. Taşınabilirlik manasında düşündüğümüzde , arakod (MSIL) türetilen tüm programlar, CLR nin bulunduğu her ortamda çalıştırılabilir.

 

KONUYLA İLGİLİ DİĞER KAVRAMLAR

Common Type System (CTS) :
CLR içerisine inşa edilmiş güçlü ve zengin bir tip sistemidir(type system). Çoğu programlama dilinde bulunan tipleri ve bu dillerin operasyonlarını desteklemektedir. Birçok programlama dilinde bulunan tiplerin Common Type System içerisinde gerçekleştirimi yapılabilmiş durumdadır.

Common Language Specification (CLS):

CLS, bünyesinde barındırdığı birtakım yapıları ile kütüphane(library) ve derleyici(compiler) yazabilmek için rehberlik yapmaktadır. CLS, yazılan bir kütüphanenin CLS’yi destekleyen diğer programlama dilleri ile entegre şekilde çalışabilmesini ve bu diller tarafından da kullanılabilmesini sağlamaktadır. CLS, CTS’nin bir altkümesidir. CLS uygulama geliştiriciler için büyük önem arzetmektedir. Öyle ki bir uygulama geliştirici yazdığı kodun diğer kod geliştiriciler tarafından da kullanılabilir olmasını göz önünde bulundurmalıdır. CLS’nin kriterleri ve kuralları gözönünde bulundurularak yazılan bir API(Application Program Interface), diger programlama dilleri içerisinden kullanılabilmekte,CLR tarafından da isletilebilmektedir.

 

Yorumlar