İçeriğe atla

Common Language Infrastructure

Common Language Infrastructure veya kısaca CLI, programlama dili ve platformdan bağımsız bir şekilde uygulama geliştirme ve yürütmeyi mümkün kılan sistemleri belirleyen uluslararası bir teknik normdur. Standart, Uluslararası Standardizasyon Örgütü tarafından ISO/IEC 23271 numarası altında ve Ecma International tarafından ECMA-335 adı altında sürdürülmektedir. Mevcut versiyon, Haziran 2012'den itibaren 6 numaralı versiyondur.

CLI bir uygulama değil, bir şartnamedir. CLI standartlarının en yaygın yürütüldüğü uygulama, Microsoft'un Windows sistemleri için geliştirdiği .NET Framework'tür. Ancak Unix/Linux sistemleri, Mac OS X ve BSD işletim sistemleri için de CLI standartlarının uygulandığı sistemler mevcuttur.

Geliştirme büyük ölçüde Microsoft tarafından yapılır.

Gelişim tarihçesi

  • Ağustos 2000 – Microsoft, Hewlett-Packard ve Intel, CLI şartnamesini standardizasyon için ECMA'ya sundu.
  • Aralık 2001 – Standart ECMA-335 olarak kabul edildi. Geliştirmeye IBM, Fujitsu Software, Plum Hall, Monash Üniversitesi ve ISE katkıda bulundu.
  • Aralık 2001 - CLI spesifikasyonu standardizasyon için ISO/IEC'ye sunuldu.
  • Aralık 2002 – ECMA-335 2. versiyon standardının ilk revizyonu kabul edildi.
  • Nisan 2003 - ECMA-335 2. versiyonunun içeriği ISO/IEC tarafından ISO/IEC 23271 (CLI) ve ISO/IEC 23272 (CLI TR) olarak onaylandı.
  • Haziran 2005 – ECMA-335 3. versiyon ECMA tarafından standartlaştırıldı. Genel iyileştirmelere ek olarak, bu standart öncelikle genel veri yapıları için destek ve hata ayıklama bilgileri için standartlaştırılmış bir format sağlar.
  • Haziran 2006 – ECMA-335 4. versiyon ECMA tarafından standartlaştırıldı.
  • Aralık 2006 – ECMA-335 5. versiyon ECMA tarafından standartlaştırıldı
  • Haziran 2012 – ECMA-335 6. versiyon ECMA tarafından standartlaştırıldı.

Temel yapısı

Standart, aşağıdaki temel kısımları içermektedir:

CLI'yı oluşturan bölümler

CLI standardı ECMA-335 3. baskı, bölümler olarak adlandırılan altı bölüme ayrılmıştır. Bunlar ayrıntılı olarak:

  • Bölüm I: Konsept ve Mimari - CLI'nin genel mimarisini açıklar.
  • Bölüm II: Metadata Tanımı ve Semantiği - Metadatalar hakkında bilgi içerir: Bunların içinde dosyaların arayüz düzeni, içerikleri ve yapıları bulunur.
  • Bölüm III: CIL – CIL'nin talimatlarını açıklar
  • Bölüm IV: Kütüphaneler – CLI'nin bir parçası olarak standartlaştırılmış sınıfların ve bu sınıfların kütüphanelerinin özelliklerini içerir.
  • Bölüm V: Bileşik hata ayıklama biçimini açıklar.
  • Bölüm VI: Ekler.

CLI standartlarının uygulamaları

CLI'nin aşağıdaki uygulamaları mevcuttur:

Bu CLI uygulamalarının her birinin ayrıca bir VES (Virtual Execution System) uygulaması vardır. Bu VES uygulamalarının bilinen adları şunlardır:

  • Common Language Runtime (CLR), .NET Framework için
  • TinyCLR, .NET Micro Framework için
  • Portable.NET, DotGNU için
  • CoreCLR, .NET Core için

Kaynakça

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">C (programlama dili)</span> programlama dili

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

<span class="mw-page-title-main">C♯</span> programlama dili

C#; Microsoft tarafından .NET Teknolojisi için geliştirilen modern bir programlama dilidir. Sözdizimi C-like bir deneyim sunar.

<span class="mw-page-title-main">Ethernet</span> Bilgisayar ağı teknolojisi

Ethernet, Yerel ağlar için kullanılan Veri Çerçevesi tabanlı bilgisayar ağı teknolojileri ailesi. Kelimenin kökeni etherden gelmektedir. OSI ağ modelinin Fiziksel katmanı için Veri bağlantısı katmanı/ Ortam erişim kontrolü üzerinden ağ erişimi yoluyla bir dizi kablolama ve sinyalleşme standardı ve ortak bir adresleme formatı tanımlar.

"International Organization for Standardization" İngilizce açılımı kısaltılınca "ISO", Fransızca da Organisation internationale de normalisation kısaltılırsa "OIN" olmasından dolayı yunanca "eşit" anlamına gelen "isos" tan türetilerek şu an kullanılan "ISO" olarak adlandırılmıştır. Uluslararası alanda uygulanacak kalite sistem standardı çalışmaları ilk kez merkezi Cenevre'de olan Uluslararası Standartlar Organizasyonu ISO (standart) tarafından başlatılmıştır. ISO (standart), 23 Şubat 1947 tarihinde kurulmuş olup, 135 üye ülkeden oluşmaktadır. Her ülkeden bir üye bulunmaktadır ve her üye eşit oy hakkına sahiptir. Bu amaçla ISO (standart)'nun aktif üyeleri olan ABD, İngiltere, Kanada tarafından bu çalışmaları yürütmek üzere Teknik Komite oluşturulmuştur. Bu komitenin çalışmaları sonucu ISO 9000 Kalite Sistem Standartları Mart 1987'de yayınlanmış ve birçok ülke tarafından benimsenerek uygulamaya geçilmiştir.

Arabellek aşımı ya da arabellek taşkını, iki yazılım arasında veri iletişimi için ayrılmış olan bir arabelleğe boyutundan daha fazla veri konulması ile ortaya çıkan durumdur.

<span class="mw-page-title-main">Microsoft SQL Server</span>

Microsoft SQL Server, Microsoft tarafından geliştirilen ve yönetilen bir ilişkisel veritabanı yönetim sistemidir. SQL Server, büyük ve karmaşık veritabanlarını depolamak, yönetmek, sorgulamak ve işlemek için kullanılan bir yazılım ürünüdür. Veri depolama, veri güvenliği, yedekleme, geri yükleme, veri entegrasyonu, analiz ve raporlama gibi çeşitli veritabanı yönetimi işlevlerini destekler.

<span class="mw-page-title-main">VRML</span>

VRML 3 boyutlu etkileşimli vektör bilgisayar grafiklerini tanımlamak için bir standart dosya biçimidir. VRML basit bir metin dosyası içerisine 3B sahneyi oluşturmak için gerekli olan tüm bilgilerin uygun biçimde yazılmasıyla kullanılmaktadır. Bu VRML dosyası bir HTML sayfası içerisine gömülmektedir. Daha sonra VRML görüntüleme eklentileri yardımıyla bu içerik web üzerinden görüntülenmektedir. Kullanıcı oluşturulan sahnelerle VRML'in sağladığı ses, canlandırma, ışıklandırma, klavye fare vb. şekillerde etkileşim kurabilmektedir.

Office Open XML ya da bilinen adıyla OOXML, XML tabanlı bir dosya sistemi olup, elektronik belgelerin saklanmasını amaçlar.

Microsoft Visual Studio, Microsoft tarafından geliştirilen bir tümleşik geliştirme ortamıdır (IDE). Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework ve Microsoft Silverlight tarafından desteklenen tüm platformlar için yönetilen kod ile birlikte yerel kod ve Windows Forms uygulamaları, web siteleri, web uygulamaları ve web servisleri ile birlikte konsol ve grafiksel kullanıcı arayüzü uygulamaları geliştirmek için kullanılır.

<span class="mw-page-title-main">OpenSceneGraph</span>

OpenSceneGraph açık kaynaklı, geçişli platformlarda uçuş simülasyonu, oyun, sanal gerçeklikler ve bilimsel sanallaştırmalar gibi yüksek performansta grafik uygulamaları geliştirebilmek için kullanılan grafik araçlarıdır. SceneGraph kaynağının temelini, OpenGL’nin üzerinde bulunarak geliştiriciyi düşük seviyeli grafik çağırımlarını uygulama ve uyumlaştırma gibi işlemlerden kurtaran nesneye yönelik bir framework ile desteklemektedir. Ayrıca grafik uygulamasında hızlı geliştirme için birçok ek özellikleri (utilities) de desteklemektedir.

<span class="mw-page-title-main">H.264/MPEG-4 AVC</span>

H.264 bir görüntü sıkıştırma standardıdır ve MPEG-4 Bölüm 10 ya da MPEG-4 AVC in muadilidir. 2008 yılı itibarıyla, ITU-T, Video Coding Experts Group (VCEG), ISO/IEC içindeki Moving Picture Experts Group (MPEG) tarafından oluşturulan Birleşik Video Ekibi tarafından geliştirilen en son blok-yönelimli hareket-kompanzasyonuna dayalı çözücü standardıdır. ITU-T H.264 ve ISO/IEC MPEG-4 Bölüm 10 standartları birlikte sürdürülmektedir, dolayısıyla aynı teknik içeriğe sahiptirler. Standartın ilk nihai taslak metni Mayıs 2003'te tamamlanmıştır.

Uzak yordam çağrısı (ya da uzak prosedür çağrısı; İngilizce: Remote Procedure Call , bir diğer adres uzayı üzerinde programcı açıkça bu uzaktan etkileşim detayları kodlama olmadan çalıştırmak için bir alt yordam veya prosedürü sağlayan bilgisayar programına izin veren süreçler arası iletişim teknolojisidir. Sunucu üzerindeki servisleri kontrol ettiğimizde karşımıza çıkan RPC, arka plânda birçok şeyi gerçekleştiren bir servistir. RPC, temelde istemci ve sunucu arasında yapılan işlemlerin iletişimi için tasarlandı. Bir işlemin gerçekleşmesi için bir gönderici ve bir de istemci vardır.. Yani programcı, alt prosedür ister çalışan programın yerelinde ister uzağında olsun, temelde aynı kodu yazar. Bu bir tür istemci-sunucu etkileşimidir ve tipik olarak bir istek-yanıt mesaj geçirme sistemi aracılığıyla uygulanır. Nesne yönelimli programlama modelinde, RPC'ler uzaktan yöntem çağırma ile temsil edilir. RPC modeli bir konum şeffaflığı seviyesini ifade eder, yani çağrı prosedürleri yerel ya da uzak olsun büyük ölçüde aynıdır, ancak genellikle aynı değildirler, bu nedenle yerel çağrılar uzak çağrılardan ayırt edilebilir. Uzak çağrılar genellikle yerel çağrılardan çok daha yavaş ve daha az güvenilirdir, bu nedenle bunları ayırt etmek önemlidir.

Bilgi işlem platformu, bir uygulama yazılımı çalıştırmak için donanım mimarisi ve bir yazılım çerçevesi, yazılım, çeşitli bazı kombinasyon veya sıralamalarını içermektedir. Tipik platformlarda bir bilgisayar mimari, işletim sistemi, programlama dilleri ve ilgili kullanıcı arabirimi içerir.

<span class="mw-page-title-main">Mac OS X Tiger</span> Mac OS Xin beşinci büyük sürümü

Mac OS X Tiger, Mac OS X'in, Mac bilgisayarlar için Apple'ın masaüstü ve sunucu işletim sisteminin beşinci büyük sürümüdür. Takma isim olarak yeni sürüme Kaplan ismi verilmiştir. Sürüm Apple Software Update yöntemi ile güncellenmekte. Tiger Mac OS X Pantherin halefi olarak 129.95 dolara 29 Nisan 2005 tarihinde kamuoyuna sunuldu. Yeni özelliklerden bazılarına 64-bit PowerMac G5 için geliştirilmiş destek, Spotlight adlı bir hızlı arama sistemi, Safari web tarayıcısının yeni bir sürümü dahildir.

AOT derlemesi C veya C++ gibi daha üst düzey bir programlama dili, Java bytecode veya .NET Framework Ortak Ara Dil kodu gibi bir ara temsilciliğin yerli bir makine diline derleme eylemidir. Sonuçta ortaya çıkan ikili dosya yerel olarak çalıştırılabilir.

Windows Runtime, 2012 yılında ilk olarak Windows 8 ve Windows Server 2012'de tanıtılan platform tabanlı bir uygulama mimarisidir. WinRT, C++/WinRT, C ++/CX, JavaScript-TypeScript, yönetilen kod dilleri C Sharp ve Visual Basic .NET (VB.NET) 'in geliştirilmesini destekler. WinRT uygulamaları, hem x86 hem de ARM mimarisini doğal olarak destekler ve daha fazla güvenlik ve kararlılık sağlamak için sandbox ortamında çalışabilir. WinRT bileşenleri, yerel, yönetilen ve betik dilleri dahil olmak üzere birden fazla dil ve API arasında birlikte çalışabilirlikle tasarlanmıştır.

IronPython, Python programlama dilinin .NET Framework ve Mono'yu hedefleyen bir gerçeklemesidir. Proje Jim Hugunin tarafından başlatılmış, Hugunin 5 Eylül 2006'da yayınlanan 1.0 sürümüne kadar aktif olarak katkıda bulunmuştur. IronPython 2.0 10 Aralık 2008'de piyasaya sürüldü. 1.0 sürümünden sonra, 2.7 Beta 1 sürümüne kadar Microsoft'ta küçük bir ekip tarafından geliştirildi. Hugunin'in Google'da çalışmaya başlamasının ardından Microsoft, IronPython'u geliştirmeyi 2010 yılının sonlarında sonlandırdı. Proje şu anda GitHub'da bir grup gönüllü tarafından yürütülmektedir. Ücretsiz ve açık kaynaklı bir yazılımdır ve Microsoft Visual Studio IDE için ücretsiz ve açık kaynaklı bir uzantı olan Visual Studio için Python Tools (PTVS) ile uygulanabilir.

OpenWindows, SunView, NeWS ve X Window System protokollerini birleştiren Sun Microsystems iş istasyonları için tasarlanmış ve artık geliştirilmesi devam etmeyen bir masaüstü ortamıdır. OpenWindows, Solaris 9'da Common Desktop Environment (CDE) ve GNOME 2.0 lehine kaldırılıncaya kadar SunOS 4 ve Solaris işletim sistemlerinin sonraki sürümlerine dahil edildi.

Common Type System (CTS), Microsoft'un .NET Framework'te veri tipi tanımlarının ve bunların belirli değerlerinin bilgisayar belleğinde nasıl temsil edildiğini belirten bir standarttır. Farklı programlama dillerinde yazılan programların kolayca bilgi paylaşmasına olanak sağlamak amaçlanır. Programlama dillerinde kullanıldığı şekliyle bir veri tipi, bir değer kümesinin tanımı ve bu değerler üzerinde izin verilen işlemler olarak tanımlanabilir.