Ada
Ada je robustní silně typovaný programovací jazyk vyvinutý v 70. a 80. letech na objednávku amerického ministerstva obrany. Je primárně určen pro programování velkých a mission-critical projektů, přesto se jedná o univerzální programovací jazyk. Aktuální verze, Ada 95, již obsahuje podporu pro objektově orientované programování.
Byl pojmenován po „historicky první programátorce“ Adě, hraběnce z Lovelace.
Hlavní rysy
Čitelnost
Silný typový systém
Programování ve velkém
Toto není ani tak rys, jako spíš cíl. Rysy, které se jej snaží naplnit jsou zapouzdření a separátní kompilace. Zapouzdření se Ada snaží dosáhout nejen uplatňováním stejnojmenné zásady OOP, ale už od své první verze prostřednictím tzv. balíků (packages), které komunikují prostřednictvím jasně vymezeného rozhraní.
Datová abstrakce
Objektově orientované programování
Paralelismus (tasking, vícevláknovost)
Generické typy (šablony)
Portabilita a bezpečnost
Toto jsou také spíš cíle. Nejsou reprezentovány jednou konkrétní vymožeností jazyka, naopak bylo na ně myšleno při návrhu všech rysů Ady. Dobrá přenositelnost je zajištěna například způsobem zachazení s typy a možnostmi při jejich definici nebo zahrnutím podpory paralelismu. Bezpečnost je podporována množstvím jednak běhových kontrol a zejména pak kontrol při kompilaci.
Historie
Motivace
V polovině 70. let si americké ministerstvo obrany začalo uvědomovat, že utrací příliš mnoho prostředků na vývoj a údržbu softwaru. Jednou z příčin bylo to, že použitý programovací jazyk se často lišil projekt od projektu, například proto, že se psalo hodně programů pro tzv. vestavěné (embedded) systémy (systémy, které jsou součástí nějakého většího celku, například chemičky, rychlovlaku nebo atomové bomby). Ministerstvo se tedy rozhodlo nahradit co nejvíce techto jazyků jediným jazykem, žádného vhodného kandidáta splňujícího všechny jejich požadavky však nenašlo, a proto bylo rozhodnuto o vývoji nového jazyka, Ady.
Vývoj a současnost
Základním požadavkem pro použití ve vestavěných systémech byla portabilita, neméně důležitými požadavky byla bezpečnost, spolehlivost a podpora softwarového inženýrství (zejména tvorba "znovu-použitelných" komponent a snadná údržba stávajícího kódu).
Vývoj probíhal nejdříve paralelně formou výběrového řízení, poté byl dopracováván vítězný návrh. Tím byl návrh skupiny ze společnosti CII Honeywell Bull pod vedením francouze jménem Jean Ichbiah. Vývoj vyústil v roce 1983 v podobě standardu ANSI, který později adoptovala i organizace ISO. Tato první verze bývá označována jako Ada 83.
Ada 83 byla obsáhlým a velmi dobře přenositelným jazykem, ale na některé specializované úkoly ještě nestačila, proto byla v devadesátých letech vyvinuta nová verze, Ada 95. Aby se předešlo nadměrnému růstu specifikace jazyka, bylo definováno jádro jazyka (Core language) a několik specializovaných nadstaveb (specialized annexes - Systems Programming, Real-Time Systems, ...). Implementace těchto nadstaveb je volitelná. Další podstatné změny byly cíleny na zlepšení flexibility. Byla přidána podpora pro objektově orientované programování, dále byly vylepšeny možností sdílení dat při paralelním programování. Ada 95 zůstává, až na velmi řídké případy, kompatibiliní s předchozí verzí.
Ada se v současnosti používá k vývoji softwaru pro dopravní a vojenská letadla, systémy řízení letecké a vlakové dopravy a mnohých dalších systémů s požadovanou vysokou integritou, ale jako univerzální programovací jazyk se moc neprosadila. V této souvislosti a vzhledem k motivaci pro vznik jazyka se někdy o Adě mluví jako o Esperantu programování, neboť do značné míry sdílejí svůj osud.
Historie v datech
- 1974 – DoD (US Department of Defense) zamýšlí vyvinout nový jazyk
- 1983 – vydána Ada 83 – ANSI standard
- 1987 – vydán odpovídající ISO standard
- 1988 – zahájen projekt vývoje nové verze Ada 9X
- 1995 – vydána Ada 95 – ANSI/ISO standard – {přidáno: OOP, specializované moduly, ...}
- 2006 – Ada 2006 – {bude přidáno: podpora Unicode (i ve zdrojovém kódu), rozhraní (interfaces) ala java, ...}
Detaily
Kritika
Ada, jakožto univerzální jazyk, se navzdory mnohým výborným vlastnostem příliš nerozšířila. Následující nevýhody tomu mohly dopomoci:
- Kontrola integritních omezení při překladu dělá problémy zejména začínajícím programátorům, kteří ji považují za obtěžující
- Vyžaduje znalost relativně velké části jazyka i pro psaní poměrně jednoduchých programů malého rozsahu
- Podpora OOP není zrovna nejsilnější a má nezvyklou syntaxi i sémantiku
Literatura
- John Barnes, Programming in Ada 95, 2nd edition (Addison-Wesley 1998, ISBN 0-201-34293-6)
- (v knihovně na Malé Straně jich mají asi pět)
Externí odkazy
Česky
Miniseriál na rootu:
- Bezpečné programování ala Ada – úvod, typový systém, integritní omezení
- Příjemné programování ala Ada – atributy typů a jiných objektů, pole, vstupní a výstupní parametry procedur a funkcí
- Copaté programování (ala Ada) – paralelní programování z pohledu Ady a jeho podpora v jazyce
Anglicky
- Wikipedia: Ada, programming language
- Tutorial na wikibooks: Programming:Ada