Bu maddenin içeriğinin Türkçeleştirilmesi veya doğrultusunda düzeltilmesi gerekmektedir. Bu maddedeki yazım ve noktalama yanlışları ya da anlatım bozuklukları giderilmelidir. (Yabancı sözcükler yerine Türkçe karşılıklarının kullanılması, karakter hatalarının düzeltilmesi, dilbilgisi hatalarının düzeltilmesi vs.) Düzenleme yapıldıktan sonra bu şablon kaldırılmalıdır. |
Ada, yapısal, , , ve nesne yönelimli bir bilgisayar programlama dilidir. Pascal ve diğer dillerin genişletilmiş halidir. Gömülü design-by-contract (DbC), güçlü yazımı, açık eşzamanlı, senkronize mesaj geçişi, korunmuş objeli ve belirsiz bir dildir. Ada kod güvenliğini ve sürdürebilirliğini derleyicide hataları bularak geliştirdi.
Paradigması | Çok paradigmalı |
---|---|
İlk çıkışı | Şubat 1980 | )
Tasarımcı | MIL-STD-1815/Ada1983: ; Ada1995: ; Ada2005: Tucker Taft |
Kararlı sürüm | Ada 2005 (1 Şubat 2016 | ) )
, , , güvenli, | |
Ada 83, Ada 95, Ada 2005 | |
Etkilendikleri | ALGOL 68, Pascal, (Ada 95), Smalltalk (Ada 95), Java (Ada 2005) |
Etkiledikleri | , , (PL/SQL), VHDL, Ruby, Java, Seed7 |
Olağan dosya uzantıları | .adb, .ads |
Web sitesi | www.adaic.org |
Ailesi | Pascal |
Ada Fransız bilgisayar bilimcisi ve ekibi tarafından Amerika Birleşik Devletleri Savunma Bakanlığı ile sözleşmeli olarak geliştirildi. Ordudaki çeşitli donanımları çalıştıracak ortak bir yazılım olarak düşünülmüştür. Temel alınan diller arasında ALGOL, Pascal ve vardı ama C yoktu.
İngiliz şairi Lord Byron'ın 1834'te ilk bilgisayar makinesi sayılacak Charles Babbage'in analitik makinesini destekleyen kızı Lady Ada Lovelace (1815-1852)'ın ismini taşır. 95'te dinamik iletimi içeren nesne yönelimli programlama desteği dahil edildi.
Özellikler
Ada çok gelişmiş yazılım sistemlerinin gelişimi için oluşturulmuştur. Ada paketleri ayrı ayrı derlenebilir ve dahası, tutarlılık kontrolü için yürütme olmadan Ada paket tayini ayrı ayrı derlenebilir. Bu yürütme başlamadan önce kurulum safhasındaki problemlerin bulunmasına imkân sağlar. Derleme zamanındaki kontroller, farklı dillerdeki oluşabilecek fark edilmeyen hataları azaltmak için desteklendi.
Ada'nın özellikleri Güçlü yazımı, modüler programlama mekanikleri (paketler), paralel işleme (görev ve mesaj senkronizasyonu), hata işleme ve genel programlamayı kapsar.
Ada'nın sözdizimi, temel işlemleri gerçekleştirme yöntemlerinin yolunu en aza indirir ve İngilizce anahtar kelimelerini tercih eder (mesela "or else" ve "and then") veya sembolleri tercih eder ("||" ve "&&"). Ada basit "+", "-", "*","/" matematik operatörleri kullanır ancak diğer sembolleri kullanmaktan kaçınır. Kod blokları "declare","begin", "and" ve "end" ile sınırlıdır ve ancak döngülerle (if ... end if, loop ... end loop) birlikte kullanılır.
Ada çok geniş uygulamalar geliştirilmek için tasarlanmıştır. Ada'nın paketleri ayrı ayrı şekilde derlenebilir. Ada'nın paket özellikleri aynı zamanda tutarlılığı kontrol etmek için gerekli uygulamalar olmadan da derlenebilir. Bu da geliştirilen uygulamanın erken safhasında hatayı tespit etme imkânı sağlar.
Çok sayıda derleyici kontrolcüsü çalıştırılana kadar tespit edilemeyen hataları tespit edebilmesi için gereken komutların projeye eklenmesi dışında kendisi hataları tespit edebilir. Güçlü yazımlara bağlılığı birçok sıradan kod hatalarını (yanlış parametre, dizi ihlalleri, geçersiz referanslar, eşleşmeyen tipler, vb.) derleme sırasında veya çalışma sırasında tespit etmede yarar sağlar. Eşzamanlı çalışma dilin bir parçası olduğu için derleyeci bazı durumlarda potansiyel sorunları tespit edebilir.
Tarihçesi
1970'lerde Amerika Birleşik Devletleri Savunma Bakanlığı gömülü bilgisayar sistemlerinde farklı programlama dillerinin kullanılmasından endişelendi. Çoğu eski veya donanıma bağlı idi ve hiçbiri modüler programlamayı desteklemiyordu. 1975'te Yüksek Derece Dil Çalışma Grubu Amerika Birşelik Devletleri Savunma Bakanlığı ve Birleşik Krallık Savunma Bakanlığı gereksinimlerine uygun olan programlama dilini bulmak için veya oluşturmak için kuruldu. Birçok denemelerden sonra nihai programlama dili Ada olarak adlandırıldı. Bu tür projeler için kullanılan üst düzey programlama dillerinin toplam sayısı 1983'te 450'ye 1996'da 37'ye düştü. HOLFG Grubu Steelman dil gereksinimlerini oluşturdu. Bir programlama dilinin karşılaması gerektiğini düşündükleri gereksinimleri belirten bir dizi belge yayınlamışlardı. Mevcut olan birçok dil resmi olarak yeniden gözden geçirildi, ancak 1977'de takım hiçbir dilin gereksinimlerini karşılayamadıkları kanısına vardı. 1978 nisanında, kamu incelemesinden geçtikten sonra yeni bir programlama dili için tasarı talepleri belirtildi ve dört yazılımcı istenilen talepleri karşılamak için Kırmızı (Benjamin Brosgol liderliğinde Intermetrics) Yeşil (Jean Ichbiah liderliğinde CII Honeywell Bull) Mavi John Goodenough liderliğinde SofTech) ve Sarı (Jay Spitzen liderliğinde SRI International) isimleri verilen yazılımcılar işe alındı. Nisan 1978'de kamu denetiminden sonra, Kırmızı ve Yeşil tasarılar sonraki aşamaya geçti. Mayıs 1979'da Jean Ichbiah tarafından CII Honeywell Bull'da tasarlanan proje seçildi ve Ada ismi verildi. Ada dilinden sonra, bu teklif Ichibah ve ekibinin 1970 lerde geliştirdiği LIS dilinden etkilendi. Ada'nın ilk kitabı haziran 1979'da ACM SIGPLAN Notices'da yayınlandı. 10 aralık 1980'de (Ada Lovelace'in doğum günü) kitap askeri standartlarını karşıladığını onayladı ve Ada Lovelace'in doğum günü şerefine MIL-STD-1815 ismi verildi. 1981'de Tony Hoare Turing Ödülü konuşmasında Ada'yı aşırı karmaşık ve dolayısıyla güvenilmez olduğunu eleştirmek için fırsat kolladı. ancak sonrasında önsözünde bu fikrinden geri adım attığını ve Ada için ders kitabı hazırladığı görüldü.
Ada yayınlandığı ilk zamanlarda programlama topluluğu tarafından büyük ilgi gördü. Dilin destekçileri sadece savunma ile alakalı işler değil, aynı zamanda genel programlama dili dünyasında baskın dil olabileceğini öngördüler. Ichbiah resmi olarak on yıl içerisinde sadece iki programlama dilinin varolacağını belirttli. Bunlar: Ada ve Lisp idi. İlk Ada derleyicileri geniş, karmaşık dili derlemede zorluk çekti ve hem derleme hem de çalışma performansı yavaş ve araçları ilkel olmaya yatkındı. Derleyici satıcıları emeklerinin çoğunu dilin uyum sağlama testlerini geçebilmek için harcadı. Bilgisayar korsanlarının 1975-1983 arası argo sözlüğü olan Jargon Dosyası Ada'nın girişinde "para ile bu tür bir onay verildiğinde tam olarak beklenebilecek şeydir; komite için geliştirildi... kullanımı zor ve tam bir felaket. Milyar dolardan fazla tamamen gereksiz bir iş... Ada Loverace... isminin sonradan kullanılmaya başlanmasıyla kesin olarak bembeyaz olurdu; onun hakkında söylenen en nazik şey, büyük olasılıkla genişliğinin içinden çıkmak için çığlık atan güzel bir küçük dil olduğudur."
Ada'nın doğrulanan ilk uygulaması NYU Ada/Ed translator idi. 11 Nisan 1989'da onaylandı. Bir takım ticari şirketler (Alsys, TeleSoft, DDC-I, Advanced Computer Techniques, Tartan Laboratories, TLD Systems ve Verdix) Ada derleyicilerini ve geliştirme araçlarını önermeye başladılar.
1991'de Amerika Birleşik Devletleri Savunma Bakanlığı tüm yazılımlarında Ada'yı kullanma şartı getirmişti, ancak bu kurala genel istisnalar verilmişti. Savunma Bakanlığı DoD'un ticari kullanıma hazır olmasıyla 1997'de Ada'yı etkin bir şekilde kullanımdan kaldırdı. Benzer gereksinimler diğer NATO ülkelerinde de baş gösterdi: Komuta, kontrol ve diğer fonksiyonlar için Ada'ya gereksinim duyuldu. Aynı zamanda Ada; İsveç, Almanya ve Kanada için savunma ile ilgili uygulamalar yazılmak için tercih edildi.
80'li yılların sonu 90'ların başlarında Ada derleyicileri performanslarını arttırmışlardı ancak gerçek zamanlı programcıların alıştığı farklı görev modeli dahil Ada'nın tüm gücünü açığa çıkarmak için daha hâlâ engeller vardı. Ada'nın kritik güvenliği destekleyen özellikleri sayesinde günümüzde sadece askeri uygulamalarda değil aynı zamanda yazılım hatalarının ağır sonuçlar doğurabileceği havacılık, hava trafik kontrolü, Ariane 4, Ariane 5, Yapay uydu ve diğer uzay sistemleri, demiryolu ulaşımı, bankacılık uygulamaları için de kullanıldı. Mesela uçak bilgi yönetim sistemi, Fly-by-wire ve Boeing 777'deki sistem yazılımı Ada ile yazıldı. DDC-I danışmanları işbirliğinde Honeywell Air Transport Systems geliştirildi. Bu proje sivil veya askeri tartışmasız en iyi Ada projesiydi. Kanada Otomatik Hava Kontrol Sistemi 1 milyon Ada satır koduyla yazıldı. ileri seviye dağıtık hesaplama, dağınık veri tabanı, nesne yönelim içeriyordu. Ada aynı zamanda diğer hava trafik sistemleri için de kullanıldı, örneğin Birleşik Krallık gelecek nesil Geçici Gelecek Bölge Kontrol Araç Desteği (IFACTS) SPARK Ada ile tasarlandı ve uygulandı.
Standartlaşması
Dil 1983'te ANSI standartlarına uygun kabul edildi ve Fransızcaya çevrildi ardından İngilizce sürümünde herhangi bir değişikliğe uğramadan 1987'de ISO standartlarına kabul edildi. ANSI'in benimsemesi ile birlikte dilin bu versiyonu Ada 83 olarak bilindi, ancak ISO'nun da benimsemesi ardından Ada 87 olarak da anıldı.
Ada'nın ISO/ANSI standartlarına uygun olmasının ardından Şubat 1995'te Ada 95 yayınlandı. Ada 95 ilk ISO standartlarına uygun nesne yönelimli programlama dili olmuştu. Yeniden düzenlemelere yardım etmek ve gelecek onaylamalar için Amerika Birleşik Devletleri Hava Kuvvetleri GNAT derleyicinin geliştirilmesi adına yatırım yaptı. Günümüzde GNAT derleyicisi GNU Derleyici Koleksiyonu'nun bir parçası.
Çalışmalar Adanın teknik içeriğini geliştirmek ve güncellemek için devam edildi. Ada 95'e tekniksel düzenleme Ekim 2001 de yayınlandı ve önemli değişiklik ISO/IEC 8652:1995/Amd 1:2007 25 Ocak 2021 tarihinde Wayback Machine sitesinde . 9 Mart 2007'de yayınlandı. Stockholm'deki 2012 Ada-Avrupa konferansında Ada Kaynak Bağlantısı (ARA) ve Ada-Avrupa Ada dilinin son versiyonunu bitirdiklerini duyurdu.
Dil Yapısı
Ada "if, then else, while, for" kontrol yapıları içeren ALGOL benzeri bir dil. Ancak, Ada aynı zamanda orijinal ALGOL 60'ta içermeyen tür tanımları, kayıtlar, işaretçiler, numaralandırılmış türler gibi bir sürü veri yapısı kolaylıkları ve soyutları içeren bir dildi. Bu yapılar aynı zamada Pascal'dan miras almış veya esinlenmiştir.
Ada'da "Merhaba Dünya"
Kod yazımında yaygın örneği olan Merhaba dünya programı: (Merhaba.adb)
with Ada.Text_IO; use Ada.Text_IO; procedure Merhaba is begin Put_Line ("Merhaba Dünya!"); end Merhaba;
Bu uygulama ücretsiz ve açık kaynak kodlu derleyici GNAT ile derlenebilir.
gnatmake Merhaba.adb
Veri Tipleri
Ada'nın veri tipleri önceden tanımlanmış ilkel türlere bağlı değildir, ancak kullanıcılara kendi türlerini bildirmelerine izin verir. Bu bildiri, sırayla türün dahili temsiline değil, ulaşılması gereken hedefi açıklamaya dayanmaktadır. Bu da derleyicinin tür için uygun hafıza boyutunu belirlemeye olanak sağlar ve derleme veya çalışma sırasında tür tanımı ihlallerini (dizi ihlalleri, ara bellek taşmaları, tür tutarlılığını" kontrol eder. Ada bir dizi tarafından tanımlanmış sayısal türleri modül türleri, toplama türleri, (kayıtlar ve diziler) numaralandırılmış türleri destekler. Türsüz işaretçilerin kullanılmasına izin vermez. Dil tarafından özel türler görev türleri ve korunmuş türlerdir.
Örneğin, bir tarih böyle gösterilebilir:
type Day_type is range 1 .. 31; type Month_type is range 1 .. 12; type Year_type is range 1800 .. 2100; type Hours is mod 24; type Weekday is (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday); type Date is record Day : Day_type; Month : Month_type; Year : Year_type; end record;
Türler, alt türlere bildirilerek işlenebilir:
subtype Working_Hours is Hours range 0 .. 12; -- Günde en fazla 12 saat çalışılır subtype Working_Day is Weekday range Monday .. Friday; -- Çalışılacak Gün sayısı Work_Load: constant array(Working_Day) of Working_Hours -- Veri Bildirilmiş := (Friday => 6, Monday => 4, others => 10); -- başlatma ile çalışma saatleri için arama tablosu
Türlerin sınırlı, soyut, özel vb. Değiştiricileri olabilir. Özel türler yalnızca erişilebilir ve sınırlı türler yalnızca onları tanımlayan paket kapsamında değiştirilebilir veya kopyalanabilir. Ada 95, türlerin nesne yönelimi için daha fazla özellik ekler
Kontrol Yapıları
Ada Yapısal programlama dilidir. Kontrol akışı standart ifadelerle yapılandırılmıştır. Tüm standart yapılar desteklenmiştir. Bu yüzden, "go to" komutu kullanımı nadiren ihtiyaç duyulmuştur.
-- a b'ye eşit değilken döngüsü. while a /= b loop Ada.Text_IO.Put_Line ("Waiting"); end loop; if a > b then Ada.Text_IO.Put_Line ("Condition met"); else Ada.Text_IO.Put_Line ("Condition not met"); end if; for i in 1 .. 10 loop Ada.Text_IO.Put ("Iteration: "); Ada.Text_IO.Put (i); Ada.Text_IO.Put_Line; end loop; loop a := a + 1; exit when a = 10; end loop; case i is when 0 => Ada.Text_IO.Put ("zero"); when 1 => Ada.Text_IO.Put ("one"); when 2 => Ada.Text_IO.Put ("two"); -- durum ifadeleri tüm muhtemel durumları kapsamalıdır: when others => Ada.Text_IO.Put ("none of the above"); end case; for aWeekday in Weekday'Range loop -- loop over an enumeration Put_Line ( Weekday'Image(aWeekday) ); -- output string representation of an enumeration if aWeekday in Working_Day then -- check of a subtype of an enumeration Put_Line ( " to work for " & Working_Hours'Image (Work_Load(aWeekday)) ); -- access into a lookup table end if; end loop; Packages, procedures and functions Among the parts of an Ada program are packages, procedures and functions. Example: Package specification (example.ads) package Example is type Number is range 1 .. 11; procedure Print_and_Increment (j: in out Number); end Example; Package body (example.adb) with Ada.Text_IO; package body Example is i : Number := Number'First; procedure Print_and_Increment (j: in out Number) is function Next (k: in Number) return Number is begin return k + 1; end Next; begin Ada.Text_IO.Put_Line ( "The total is: " & Number'Image(j) ); j := Next (j); end Print_and_Increment; -- package initialization executed when the package is elaborated begin while i < Number'Last loop Print_and_Increment (i); end loop; end Example;
Bu uygulama ücretsiz ve açık kaynak kodlu derleyici GNAT ile derlenebilir.
gnatmake -z example.adb
Ayrıca Bakınız
- APSE – a specification for a programming environment to support software development in Ada
- Ravenscar profile – a subset of the Ada tasking features designed for safety-critical hard real-time computing
- SPARK (programming language) – a programming language consisting of a highly restricted subset of Ada, annotated with meta information describing desired component behavior and individual runtime requirements
Uluslararası Standartlar
- ISO/IEC 8652: Information technology—Programming languages—Ada
- ISO/IEC 15291: Information technology—Programming languages—Ada Semantic Interface Specification (ASIS)
- ISO/IEC 18009: Information technology—Programming languages—Ada: Conformity assessment of a language processor (ACATS)
- IEEE Standard 1003.5b-1996, the POSIX Ada binding
- Ada Language Mapping Specification, the CORBA interface description language (IDL) to Ada mapping
Kaynakça
- ^ . 19 Aralık 2023 tarihinde kaynağından arşivlendi.
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Bu maddenin iceriginin Turkcelestirilmesi veya Turkce dilbilgisi ve kurallari dogrultusunda duzeltilmesi gerekmektedir Bu maddedeki yazim ve noktalama yanlislari ya da anlatim bozukluklari giderilmelidir Yabanci sozcukler yerine Turkce karsiliklarinin kullanilmasi karakter hatalarinin duzeltilmesi dilbilgisi hatalarinin duzeltilmesi vs Duzenleme yapildiktan sonra bu sablon kaldirilmalidir Ada yapisal ve nesne yonelimli bir bilgisayar programlama dilidir Pascal ve diger dillerin genisletilmis halidir Gomulu design by contract DbC guclu yazimi acik eszamanli senkronize mesaj gecisi korunmus objeli ve belirsiz bir dildir Ada kod guvenligini ve surdurebilirligini derleyicide hatalari bularak gelistirdi AdaParadigmasiCok paradigmaliIlk cikisiSubat 1980 44 yil once 1980 02 TasarimciMIL STD 1815 Ada1983 Ada1995 Ada2005 Tucker TaftKararli surumAda 2005 1 Subat 2016 8 yil once 2016 02 01 guvenli Ada 83 Ada 95 Ada 2005EtkilendikleriALGOL 68 Pascal C Ada 95 Smalltalk Ada 95 Java Ada 2005 EtkiledikleriC PL SQL VHDL Ruby Java Seed7Olagan dosya uzantilari adb adsWeb sitesiwww adaic orgAilesiPascal Ada Fransiz bilgisayar bilimcisi ve ekibi tarafindan Amerika Birlesik Devletleri Savunma Bakanligi ile sozlesmeli olarak gelistirildi Ordudaki cesitli donanimlari calistiracak ortak bir yazilim olarak dusunulmustur Temel alinan diller arasinda ALGOL Pascal ve vardi ama C yoktu Ingiliz sairi Lord Byron in 1834 te ilk bilgisayar makinesi sayilacak Charles Babbage in analitik makinesini destekleyen kizi Lady Ada Lovelace 1815 1852 in ismini tasir 95 te dinamik iletimi iceren nesne yonelimli programlama destegi dahil edildi OzelliklerAda cok gelismis yazilim sistemlerinin gelisimi icin olusturulmustur Ada paketleri ayri ayri derlenebilir ve dahasi tutarlilik kontrolu icin yurutme olmadan Ada paket tayini ayri ayri derlenebilir Bu yurutme baslamadan once kurulum safhasindaki problemlerin bulunmasina imkan saglar Derleme zamanindaki kontroller farkli dillerdeki olusabilecek fark edilmeyen hatalari azaltmak icin desteklendi Ada nin ozellikleri Guclu yazimi moduler programlama mekanikleri paketler paralel isleme gorev ve mesaj senkronizasyonu hata isleme ve genel programlamayi kapsar Ada nin sozdizimi temel islemleri gerceklestirme yontemlerinin yolunu en aza indirir ve Ingilizce anahtar kelimelerini tercih eder mesela or else ve and then veya sembolleri tercih eder ve amp amp Ada basit matematik operatorleri kullanir ancak diger sembolleri kullanmaktan kacinir Kod bloklari declare begin and ve end ile sinirlidir ve ancak dongulerle if end if loop end loop birlikte kullanilir Ada cok genis uygulamalar gelistirilmek icin tasarlanmistir Ada nin paketleri ayri ayri sekilde derlenebilir Ada nin paket ozellikleri ayni zamanda tutarliligi kontrol etmek icin gerekli uygulamalar olmadan da derlenebilir Bu da gelistirilen uygulamanin erken safhasinda hatayi tespit etme imkani saglar Cok sayida derleyici kontrolcusu calistirilana kadar tespit edilemeyen hatalari tespit edebilmesi icin gereken komutlarin projeye eklenmesi disinda kendisi hatalari tespit edebilir Guclu yazimlara bagliligi bircok siradan kod hatalarini yanlis parametre dizi ihlalleri gecersiz referanslar eslesmeyen tipler vb derleme sirasinda veya calisma sirasinda tespit etmede yarar saglar Eszamanli calisma dilin bir parcasi oldugu icin derleyeci bazi durumlarda potansiyel sorunlari tespit edebilir Tarihcesi1970 lerde Amerika Birlesik Devletleri Savunma Bakanligi gomulu bilgisayar sistemlerinde farkli programlama dillerinin kullanilmasindan endiselendi Cogu eski veya donanima bagli idi ve hicbiri moduler programlamayi desteklemiyordu 1975 te Yuksek Derece Dil Calisma Grubu Amerika Birselik Devletleri Savunma Bakanligi ve Birlesik Krallik Savunma Bakanligi gereksinimlerine uygun olan programlama dilini bulmak icin veya olusturmak icin kuruldu Bircok denemelerden sonra nihai programlama dili Ada olarak adlandirildi Bu tur projeler icin kullanilan ust duzey programlama dillerinin toplam sayisi 1983 te 450 ye 1996 da 37 ye dustu HOLFG Grubu Steelman dil gereksinimlerini olusturdu Bir programlama dilinin karsilamasi gerektigini dusundukleri gereksinimleri belirten bir dizi belge yayinlamislardi Mevcut olan bircok dil resmi olarak yeniden gozden gecirildi ancak 1977 de takim hicbir dilin gereksinimlerini karsilayamadiklari kanisina vardi 1978 nisaninda kamu incelemesinden gectikten sonra yeni bir programlama dili icin tasari talepleri belirtildi ve dort yazilimci istenilen talepleri karsilamak icin Kirmizi Benjamin Brosgol liderliginde Intermetrics Yesil Jean Ichbiah liderliginde CII Honeywell Bull Mavi John Goodenough liderliginde SofTech ve Sari Jay Spitzen liderliginde SRI International isimleri verilen yazilimcilar ise alindi Nisan 1978 de kamu denetiminden sonra Kirmizi ve Yesil tasarilar sonraki asamaya gecti Mayis 1979 da Jean Ichbiah tarafindan CII Honeywell Bull da tasarlanan proje secildi ve Ada ismi verildi Ada dilinden sonra bu teklif Ichibah ve ekibinin 1970 lerde gelistirdigi LIS dilinden etkilendi Ada nin ilk kitabi haziran 1979 da ACM SIGPLAN Notices da yayinlandi 10 aralik 1980 de Ada Lovelace in dogum gunu kitap askeri standartlarini karsiladigini onayladi ve Ada Lovelace in dogum gunu serefine MIL STD 1815 ismi verildi 1981 de Tony Hoare Turing Odulu konusmasinda Ada yi asiri karmasik ve dolayisiyla guvenilmez oldugunu elestirmek icin firsat kolladi ancak sonrasinda onsozunde bu fikrinden geri adim attigini ve Ada icin ders kitabi hazirladigi goruldu Lovelace Kontesi Ada yayinlandigi ilk zamanlarda programlama toplulugu tarafindan buyuk ilgi gordu Dilin destekcileri sadece savunma ile alakali isler degil ayni zamanda genel programlama dili dunyasinda baskin dil olabilecegini ongorduler Ichbiah resmi olarak on yil icerisinde sadece iki programlama dilinin varolacagini belirttli Bunlar Ada ve Lisp idi Ilk Ada derleyicileri genis karmasik dili derlemede zorluk cekti ve hem derleme hem de calisma performansi yavas ve araclari ilkel olmaya yatkindi Derleyici saticilari emeklerinin cogunu dilin uyum saglama testlerini gecebilmek icin harcadi Bilgisayar korsanlarinin 1975 1983 arasi argo sozlugu olan Jargon Dosyasi Ada nin girisinde para ile bu tur bir onay verildiginde tam olarak beklenebilecek seydir komite icin gelistirildi kullanimi zor ve tam bir felaket Milyar dolardan fazla tamamen gereksiz bir is Ada Loverace isminin sonradan kullanilmaya baslanmasiyla kesin olarak bembeyaz olurdu onun hakkinda soylenen en nazik sey buyuk olasilikla genisliginin icinden cikmak icin ciglik atan guzel bir kucuk dil oldugudur Ada nin dogrulanan ilk uygulamasi NYU Ada Ed translator idi 11 Nisan 1989 da onaylandi Bir takim ticari sirketler Alsys TeleSoft DDC I Advanced Computer Techniques Tartan Laboratories TLD Systems ve Verdix Ada derleyicilerini ve gelistirme araclarini onermeye basladilar 1991 de Amerika Birlesik Devletleri Savunma Bakanligi tum yazilimlarinda Ada yi kullanma sarti getirmisti ancak bu kurala genel istisnalar verilmisti Savunma Bakanligi DoD un ticari kullanima hazir olmasiyla 1997 de Ada yi etkin bir sekilde kullanimdan kaldirdi Benzer gereksinimler diger NATO ulkelerinde de bas gosterdi Komuta kontrol ve diger fonksiyonlar icin Ada ya gereksinim duyuldu Ayni zamanda Ada Isvec Almanya ve Kanada icin savunma ile ilgili uygulamalar yazilmak icin tercih edildi 80 li yillarin sonu 90 larin baslarinda Ada derleyicileri performanslarini arttirmislardi ancak gercek zamanli programcilarin alistigi farkli gorev modeli dahil Ada nin tum gucunu aciga cikarmak icin daha hala engeller vardi Ada nin kritik guvenligi destekleyen ozellikleri sayesinde gunumuzde sadece askeri uygulamalarda degil ayni zamanda yazilim hatalarinin agir sonuclar dogurabilecegi havacilik hava trafik kontrolu Ariane 4 Ariane 5 Yapay uydu ve diger uzay sistemleri demiryolu ulasimi bankacilik uygulamalari icin de kullanildi Mesela ucak bilgi yonetim sistemi Fly by wire ve Boeing 777 deki sistem yazilimi Ada ile yazildi DDC I danismanlari isbirliginde Honeywell Air Transport Systems gelistirildi Bu proje sivil veya askeri tartismasiz en iyi Ada projesiydi Kanada Otomatik Hava Kontrol Sistemi 1 milyon Ada satir koduyla yazildi ileri seviye dagitik hesaplama daginik veri tabani nesne yonelim iceriyordu Ada ayni zamanda diger hava trafik sistemleri icin de kullanildi ornegin Birlesik Krallik gelecek nesil Gecici Gelecek Bolge Kontrol Arac Destegi IFACTS SPARK Ada ile tasarlandi ve uygulandi StandartlasmasiDil 1983 te ANSI standartlarina uygun kabul edildi ve Fransizcaya cevrildi ardindan Ingilizce surumunde herhangi bir degisiklige ugramadan 1987 de ISO standartlarina kabul edildi ANSI in benimsemesi ile birlikte dilin bu versiyonu Ada 83 olarak bilindi ancak ISO nun da benimsemesi ardindan Ada 87 olarak da anildi Ada nin ISO ANSI standartlarina uygun olmasinin ardindan Subat 1995 te Ada 95 yayinlandi Ada 95 ilk ISO standartlarina uygun nesne yonelimli programlama dili olmustu Yeniden duzenlemelere yardim etmek ve gelecek onaylamalar icin Amerika Birlesik Devletleri Hava Kuvvetleri GNAT derleyicinin gelistirilmesi adina yatirim yapti Gunumuzde GNAT derleyicisi GNU Derleyici Koleksiyonu nun bir parcasi Calismalar Adanin teknik icerigini gelistirmek ve guncellemek icin devam edildi Ada 95 e tekniksel duzenleme Ekim 2001 de yayinlandi ve onemli degisiklik ISO IEC 8652 1995 Amd 1 2007 25 Ocak 2021 tarihinde Wayback Machine sitesinde 9 Mart 2007 de yayinlandi Stockholm deki 2012 Ada Avrupa konferansinda Ada Kaynak Baglantisi ARA ve Ada Avrupa Ada dilinin son versiyonunu bitirdiklerini duyurdu Dil YapisiAda if then else while for kontrol yapilari iceren ALGOL benzeri bir dil Ancak Ada ayni zamanda orijinal ALGOL 60 ta icermeyen tur tanimlari kayitlar isaretciler numaralandirilmis turler gibi bir suru veri yapisi kolayliklari ve soyutlari iceren bir dildi Bu yapilar ayni zamada Pascal dan miras almis veya esinlenmistir Ada da Merhaba Dunya Kod yaziminda yaygin ornegi olan Merhaba dunya programi Merhaba adb with Ada Text IO use Ada Text IO procedure Merhaba is begin Put Line Merhaba Dunya end Merhaba Bu uygulama ucretsiz ve acik kaynak kodlu derleyici GNAT ile derlenebilir gnatmake Merhaba adb Veri Tipleri Ada nin veri tipleri onceden tanimlanmis ilkel turlere bagli degildir ancak kullanicilara kendi turlerini bildirmelerine izin verir Bu bildiri sirayla turun dahili temsiline degil ulasilmasi gereken hedefi aciklamaya dayanmaktadir Bu da derleyicinin tur icin uygun hafiza boyutunu belirlemeye olanak saglar ve derleme veya calisma sirasinda tur tanimi ihlallerini dizi ihlalleri ara bellek tasmalari tur tutarliligini kontrol eder Ada bir dizi tarafindan tanimlanmis sayisal turleri modul turleri toplama turleri kayitlar ve diziler numaralandirilmis turleri destekler Tursuz isaretcilerin kullanilmasina izin vermez Dil tarafindan ozel turler gorev turleri ve korunmus turlerdir Ornegin bir tarih boyle gosterilebilir type Day type is range 1 31 type Month type is range 1 12 type Year type is range 1800 2100 type Hours is mod 24 type Weekday is Monday Tuesday Wednesday Thursday Friday Saturday Sunday type Date is record Day Day type Month Month type Year Year type end record Turler alt turlere bildirilerek islenebilir subtype Working Hours is Hours range 0 12 Gunde en fazla 12 saat calisilir subtype Working Day is Weekday range Monday Friday Calisilacak Gun sayisi Work Load constant array Working Day of Working Hours Veri Bildirilmis Friday gt 6 Monday gt 4 others gt 10 baslatma ile calisma saatleri icin arama tablosu Turlerin sinirli soyut ozel vb Degistiricileri olabilir Ozel turler yalnizca erisilebilir ve sinirli turler yalnizca onlari tanimlayan paket kapsaminda degistirilebilir veya kopyalanabilir Ada 95 turlerin nesne yonelimi icin daha fazla ozellik eklerKontrol YapilariAda Yapisal programlama dilidir Kontrol akisi standart ifadelerle yapilandirilmistir Tum standart yapilar desteklenmistir Bu yuzden go to komutu kullanimi nadiren ihtiyac duyulmustur a b ye esit degilken dongusu while a b loop Ada Text IO Put Line Waiting end loop if a gt b then Ada Text IO Put Line Condition met else Ada Text IO Put Line Condition not met end if for i in 1 10 loop Ada Text IO Put Iteration Ada Text IO Put i Ada Text IO Put Line end loop loop a a 1 exit when a 10 end loop case i is when 0 gt Ada Text IO Put zero when 1 gt Ada Text IO Put one when 2 gt Ada Text IO Put two durum ifadeleri tum muhtemel durumlari kapsamalidir when others gt Ada Text IO Put none of the above end case for aWeekday in Weekday Range loop loop over an enumeration Put Line Weekday Image aWeekday output string representation of an enumeration if aWeekday in Working Day then check of a subtype of an enumeration Put Line to work for amp Working Hours Image Work Load aWeekday access into a lookup table end if end loop Package s procedures and functions Among the parts of an Ada program are packages procedures and functions Example Package specification example ads package Example is type Number is range 1 11 procedure Print and Increment j in out Number end Example Package body example adb with Ada Text IO package body Example is i Number Number First procedure Print and Increment j in out Number is function Next k in Number return Number is begin return k 1 end Next begin Ada Text IO Put Line The total is amp Number Image j j Next j end Print and Increment package initialization executed when the package is elaborated begin while i lt Number Last loop Print and Increment i end loop end Example Bu uygulama ucretsiz ve acik kaynak kodlu derleyici GNAT ile derlenebilir gnatmake z example adbAyrica BakinizAPSE a specification for a programming environment to support software development in Ada Ravenscar profile a subset of the Ada tasking features designed for safety critical hard real time computing SPARK programming language a programming language consisting of a highly restricted subset of Ada annotated with meta information describing desired component behavior and individual runtime requirementsUluslararasi StandartlarISO IEC 8652 Information technology Programming languages Ada ISO IEC 15291 Information technology Programming languages Ada Semantic Interface Specification ASIS ISO IEC 18009 Information technology Programming languages Ada Conformity assessment of a language processor ACATS IEEE Standard 1003 5b 1996 the POSIX Ada binding Ada Language Mapping Specification the CORBA interface description language IDL to Ada mappingKaynakca 19 Aralik 2023 tarihinde kaynagindan arsivlendi