10-07-2017 Saat: 14:40
Ada, Pascal ve diğer dillerden gelen yapılandırılmış, statik olarak yazılmış, zorunlu, geniş spektrumlu ve nesne yönelimli yüksek düzey bilgisayar programlama dalıdır. Son derece güçlü yazma, açık eşzamanlılık, eş zamanlı ileti gönderme, korunan nesneler ve determinizm içermeyen dil desteği yerleşik olarak bulunmaktadır. Ada, çalışma zamanı hataları lehine hata bulmak için derleyici kullanarak kod güvenliği ve bakımını kolaylaştırır. Ada uluslararası bir standarttır; Geçerli sürümü (Ada 2012 olarak bilinir) ISO / IEC 8652: 2012 tarafından tanımlanmıştır.
DİLİN TARİHÇESİ
ADA dili Amerikan Savunma Departmanı (Department of Defence -DoD) desteği ile 70 li yıllar ve 80’li yılların başlarında geliştirilmiştir. Dod dünyadaki en büyük bilgisayar kullanıcılarından biridir. Bu kurum farklı yazılımsal gereksinimleri karşılamak için çok sayıda farklı programlama dili kullanıyordu ve tüm gereksinimlerini karşılayacak bir dil arayışına girdi. Dilin tasarlanması amacıyla uluslararası bir yarışma düzenledi. Yarışmayı kazanan şirket (CII- Honeywell Bull of France) Pascal dilini baz alan çalışmalar sonucunda Ada dilini geliştirdi. Ada dilinin dökümanları 1983 yılında yayımlanmıştır. (Ada ismi, şair Lord Byron’un kızı olan Lady Ada Lovelace’ın isminden alıntıdır. Ada Lovelace delikli kartları hesap makinalarında ilk olarak kullanılan Charles Babbage’in yardımcısıydı. Ada Lovelace Charles Babbage’ın makinası için delikli kartları ve kullanılacak algoritmaları hazırlıyordu. Bu bayanın 1800’lü yılların başında ilk bilgisayar programını yazdığı kabul edilmektedir.) 1980 de Ada programlama dili, Military Standard 1815 olarak kabul edildi. (1815 Ada Lovelace’in doğum yılıdır). 1995 de Ada 95 ilk nesne yönelimli (object oriented) programlama dili niteliği ile, ISO ve ANSI standardı ISO-1856:1995 olarak tescil edildi. Dilin şu anki versiyonu Ada 2005 olarak bilinir ve Ada 95’e “teknik bir düzeltme” olarak tanımlanır.
DİLİN TASARIM AMAÇLARI
Ada, nümerik ve sistem programcılığında kullanılan bir programlama dilidir. Fransa’da endüstri ve askeri uygulama gruplarınca tasarımlanmış, çok büyük yazılım sistemlerinin geliştirilmesi için ve Amerikan Savunma Bakanlığı‘nda, askeri ve havayolları sistemlerinin programlanması için geliştirilmiştir. Genel amaçlı bir dildir. Askeri sistemleri kontrol eden büyük programlarda maliyeti düşürmeyi ve güvenilirliği arttırmayı amaçlar.
DİLİN HEDEF KİTLESİ VE KULLANIM ALANLARI
ADA; yüksek kalitede yazılım geliştirmek için iyi tasarlanmış bir dildir. Bugün Ada, öncelikli olarak askeri, uzay ve uçuş sistemlerinde kullanılır. Özellikle kritik uygulamalarda örneğin uzay sanayinde tercih edilmektedir.
DESTEKLEDİĞİ PARADİGMALAR
Ada Programlama Dili, Nesne Yönelimli Programlamayı (OOP) en iyi şekilde destekler. Ada programlama dilinde, sarmalama (encapsulation), soyutlama (abstraction) ve bilgi saklama (information hiding) en üst düzeyde gerçekleştirilebilir. Özellikle ADA2005 bu konuda güçlendirilmiştir. Ada Programlama Dili paralel çok görevli (Multi-Tasking) süreçleri destekler.
ARİTMETİK İŞLEM NOTASYONU
Ada dilinin aritmetik işlem notasyonu infix’tir. Alışageldiğimiz ifadeler infix şeklindedir. Operatörlerin işlenecek operandlar arasına yerleştirildiği gösterim biçimidir. Bu gösterimde operatör önceliklerinin değiştirilebilmesi için parantez kullanılması şarttır.
BELLEK YÖNETİMİ
Dilin semantiği, erişilemeyen nesnelerin otomatik çöp toplama(garbage collection) mekanizmasına izin verdiği halde, gerçek zamanlı sistemlerde öngörülemeyen davranışlara neden olacağı için çoğu uygulama varsayılan olarak onu desteklemez. Ada, bölgesel tabanlı bellek yönetiminin sınırlı bir biçimini desteklemektedir; Depolama havuzlarının yaratıcı kullanımı sınırlı bir otomatik çöp toplama biçimi sağlayabilir, çünkü bir depolama havuzunun yok edilmesi havuzdaki tüm nesneleri de yok eder. Ada’nın dinamik bellek yönetimi, üst düzeydir. Ada genel veya untyped işaretçilerine sahip değildir. Bunun yerine, tüm dinamik bellek ayırma ve ayrılma, açıkça bildirilen erişim türleri aracılığıyla gerçekleştirilmelidir. Her erişim türünün, bellek yönetiminin alt düzey ayrıntılarını işleyen bir ilişkili depolama havuzu vardır; Programcı varsayılan depolama havuzunu kullanabilir veya yenilerini tanımlayabilir. (Bu Düzensiz Bellek Erişimi için özellikle önemlidir). Aynı türe işaret eden, ancak farklı saklama havuzları kullanan birkaç farklı erişim türünü bildirmek bile mümkündür. Ayrıca, dil, erişim değerinin işaret ettiği nesnenin türünün ömrünü uzatamamasını sağlayan derleme zamanında ve çalışma zamanında erişilebilirlik denetimleri sağlar.
DEĞİŞKEN KAPSAMLARI
Programlama dilleri genel olarak iki kategoriye ayrılabilir: sözlü olarak kapsamlı(lexical scope) diller ve dinamik olarak kapsamlı(dynamic scope) diller. İkisi arasındaki fark: Sözcük dağılımlı bir dilden, nitelendirilmemiş bir adın anlamı, program metnine bakarak tamamen belirlenebilir; Analiz “statik olarak” yapılabilir. Dinamik olarak kapsamlı bir dilde, niteliksiz bir adın anlamı çalışma zamanında değişebilir; İsim analizi yalnızca “dinamik olarak” yapılabilir. Ada lexical(static) scope bir dildir.
TİP SİSTEMİ VE TİP KONTROLÜ
Ada güçlü tip kontrolü yapan (Strong Typed) bir bilgisayar dilidir. Ada program dilinde kullanılan her büyüklük önceden tanıtılmalıdır. Kullanılacak her değişkenin önceden veri tipi ve varsa ön değeri belirtilmiş olmalıdır. Ada programlama dilinde ileride kullanılabilecek generic tipler oluşturulabilir. Başka program dillerinde ancak yeni geliştirilebilen bu özellik baştan beri Ada programlama dilinde bulunmaktadır. Programlama dillerinde yapılan her işlem öncesi hataları önlemek için verilerin tip kontrolü yapılır. Bu tür kontrollere ”Checking” adı verilir. Checking işlemleri compile-time (derleme esnasında) veya run-time (çalışma esnasında) olarak yapılır. Bu farklılık Statik Tipli ve Dinamik Tipli dillerin temel ayrım noktalarından biridir. Ada statik tipli bir dildir. Statik Tipli dillerde her değişkenin değişmez bir tipi olmak zorundadır. Bu tip ya uygulamayı geliştiren tarafından ya da derleyici tarafından belirlenir. Statik Tipli dillerde yapılan işlemlerden önce tip konrolü yapıldığı için, operandların tiplerinin belirlenmesi gerekir. Tip kontrolleri compile (derleme) esnasında yapılır.
Not:Alıntıdır.
DİLİN TARİHÇESİ
ADA dili Amerikan Savunma Departmanı (Department of Defence -DoD) desteği ile 70 li yıllar ve 80’li yılların başlarında geliştirilmiştir. Dod dünyadaki en büyük bilgisayar kullanıcılarından biridir. Bu kurum farklı yazılımsal gereksinimleri karşılamak için çok sayıda farklı programlama dili kullanıyordu ve tüm gereksinimlerini karşılayacak bir dil arayışına girdi. Dilin tasarlanması amacıyla uluslararası bir yarışma düzenledi. Yarışmayı kazanan şirket (CII- Honeywell Bull of France) Pascal dilini baz alan çalışmalar sonucunda Ada dilini geliştirdi. Ada dilinin dökümanları 1983 yılında yayımlanmıştır. (Ada ismi, şair Lord Byron’un kızı olan Lady Ada Lovelace’ın isminden alıntıdır. Ada Lovelace delikli kartları hesap makinalarında ilk olarak kullanılan Charles Babbage’in yardımcısıydı. Ada Lovelace Charles Babbage’ın makinası için delikli kartları ve kullanılacak algoritmaları hazırlıyordu. Bu bayanın 1800’lü yılların başında ilk bilgisayar programını yazdığı kabul edilmektedir.) 1980 de Ada programlama dili, Military Standard 1815 olarak kabul edildi. (1815 Ada Lovelace’in doğum yılıdır). 1995 de Ada 95 ilk nesne yönelimli (object oriented) programlama dili niteliği ile, ISO ve ANSI standardı ISO-1856:1995 olarak tescil edildi. Dilin şu anki versiyonu Ada 2005 olarak bilinir ve Ada 95’e “teknik bir düzeltme” olarak tanımlanır.
DİLİN TASARIM AMAÇLARI
Ada, nümerik ve sistem programcılığında kullanılan bir programlama dilidir. Fransa’da endüstri ve askeri uygulama gruplarınca tasarımlanmış, çok büyük yazılım sistemlerinin geliştirilmesi için ve Amerikan Savunma Bakanlığı‘nda, askeri ve havayolları sistemlerinin programlanması için geliştirilmiştir. Genel amaçlı bir dildir. Askeri sistemleri kontrol eden büyük programlarda maliyeti düşürmeyi ve güvenilirliği arttırmayı amaçlar.
DİLİN HEDEF KİTLESİ VE KULLANIM ALANLARI
ADA; yüksek kalitede yazılım geliştirmek için iyi tasarlanmış bir dildir. Bugün Ada, öncelikli olarak askeri, uzay ve uçuş sistemlerinde kullanılır. Özellikle kritik uygulamalarda örneğin uzay sanayinde tercih edilmektedir.
DESTEKLEDİĞİ PARADİGMALAR
Ada Programlama Dili, Nesne Yönelimli Programlamayı (OOP) en iyi şekilde destekler. Ada programlama dilinde, sarmalama (encapsulation), soyutlama (abstraction) ve bilgi saklama (information hiding) en üst düzeyde gerçekleştirilebilir. Özellikle ADA2005 bu konuda güçlendirilmiştir. Ada Programlama Dili paralel çok görevli (Multi-Tasking) süreçleri destekler.
ARİTMETİK İŞLEM NOTASYONU
Ada dilinin aritmetik işlem notasyonu infix’tir. Alışageldiğimiz ifadeler infix şeklindedir. Operatörlerin işlenecek operandlar arasına yerleştirildiği gösterim biçimidir. Bu gösterimde operatör önceliklerinin değiştirilebilmesi için parantez kullanılması şarttır.
BELLEK YÖNETİMİ
Dilin semantiği, erişilemeyen nesnelerin otomatik çöp toplama(garbage collection) mekanizmasına izin verdiği halde, gerçek zamanlı sistemlerde öngörülemeyen davranışlara neden olacağı için çoğu uygulama varsayılan olarak onu desteklemez. Ada, bölgesel tabanlı bellek yönetiminin sınırlı bir biçimini desteklemektedir; Depolama havuzlarının yaratıcı kullanımı sınırlı bir otomatik çöp toplama biçimi sağlayabilir, çünkü bir depolama havuzunun yok edilmesi havuzdaki tüm nesneleri de yok eder. Ada’nın dinamik bellek yönetimi, üst düzeydir. Ada genel veya untyped işaretçilerine sahip değildir. Bunun yerine, tüm dinamik bellek ayırma ve ayrılma, açıkça bildirilen erişim türleri aracılığıyla gerçekleştirilmelidir. Her erişim türünün, bellek yönetiminin alt düzey ayrıntılarını işleyen bir ilişkili depolama havuzu vardır; Programcı varsayılan depolama havuzunu kullanabilir veya yenilerini tanımlayabilir. (Bu Düzensiz Bellek Erişimi için özellikle önemlidir). Aynı türe işaret eden, ancak farklı saklama havuzları kullanan birkaç farklı erişim türünü bildirmek bile mümkündür. Ayrıca, dil, erişim değerinin işaret ettiği nesnenin türünün ömrünü uzatamamasını sağlayan derleme zamanında ve çalışma zamanında erişilebilirlik denetimleri sağlar.
DEĞİŞKEN KAPSAMLARI
Programlama dilleri genel olarak iki kategoriye ayrılabilir: sözlü olarak kapsamlı(lexical scope) diller ve dinamik olarak kapsamlı(dynamic scope) diller. İkisi arasındaki fark: Sözcük dağılımlı bir dilden, nitelendirilmemiş bir adın anlamı, program metnine bakarak tamamen belirlenebilir; Analiz “statik olarak” yapılabilir. Dinamik olarak kapsamlı bir dilde, niteliksiz bir adın anlamı çalışma zamanında değişebilir; İsim analizi yalnızca “dinamik olarak” yapılabilir. Ada lexical(static) scope bir dildir.
TİP SİSTEMİ VE TİP KONTROLÜ
Ada güçlü tip kontrolü yapan (Strong Typed) bir bilgisayar dilidir. Ada program dilinde kullanılan her büyüklük önceden tanıtılmalıdır. Kullanılacak her değişkenin önceden veri tipi ve varsa ön değeri belirtilmiş olmalıdır. Ada programlama dilinde ileride kullanılabilecek generic tipler oluşturulabilir. Başka program dillerinde ancak yeni geliştirilebilen bu özellik baştan beri Ada programlama dilinde bulunmaktadır. Programlama dillerinde yapılan her işlem öncesi hataları önlemek için verilerin tip kontrolü yapılır. Bu tür kontrollere ”Checking” adı verilir. Checking işlemleri compile-time (derleme esnasında) veya run-time (çalışma esnasında) olarak yapılır. Bu farklılık Statik Tipli ve Dinamik Tipli dillerin temel ayrım noktalarından biridir. Ada statik tipli bir dildir. Statik Tipli dillerde her değişkenin değişmez bir tipi olmak zorundadır. Bu tip ya uygulamayı geliştiren tarafından ya da derleyici tarafından belirlenir. Statik Tipli dillerde yapılan işlemlerden önce tip konrolü yapıldığı için, operandların tiplerinin belirlenmesi gerekir. Tip kontrolleri compile (derleme) esnasında yapılır.
Not:Alıntıdır.