Ada Resource Association
Ada Overview
Ada je moderní programovací jazyk určený pro velké aplikace s dlouhou životností – a zejména pro vestavěné systémy-kde je nezbytná spolehlivost a účinnost. Původně byl vyvinut na počátku 80. let (tato verze je obecně známá jako ada 83) týmem vedeným Dr. Jean Ichbiahem v CII-Honeywell-Bull ve Francii. Jazyk byl revidován a vylepšen směrem nahoru kompatibilním způsobem na počátku 90. let, pod vedením pana Tuckera Tafta z Intermetrics v USA. Výsledný jazyk, Ada 95, byl prvním mezinárodně standardizovaným (ISO) objektově orientovaným jazykem. Pod záštitou ISO byla dokončena další (menší) revize jako změna normy; tato verze jazyka je známá jako Ada 2005. Byla dokončena významnější revize (včetně podpory anotací programu) a je známá jako ada 2012. Další významná revize by měla být dokončena v roce 2022.
název ” Ada ” není zkratka; byl vybrán na počest Augusty ady Lovelace (1815-1852), matematika, který je někdy považován za prvního programátora na světě kvůli její práci s Charlesem Babbageem. Byla také dcerou básníka Lorda Byrona.
Ada vidí významné využití po celém světě v oblastech s vysokou integritou / kritickou bezpečností / vysokou bezpečností, včetně avioniky komerčních a vojenských letadel, řízení letového provozu, železničních systémů a zdravotnických prostředků. Svým ztělesněním principů moderního softwarového inženýrství je Ada vynikajícím vyučovacím jazykem pro úvodní i pokročilé kurzy informatiky a je předmětem významného univerzitního výzkumu zejména v oblasti technologií v reálném čase.
přehled jazyků
Ada je mnohostranná. Z jednoho pohledu se jedná o klasický univerzální jazyk založený na zásobníku, který není vázán na žádnou konkrétní vývojovou metodiku. Má jednoduchou syntaxi, strukturované řídicí příkazy, flexibilní zařízení pro složení dat, silnou kontrolu typu, tradiční funkce pro modularizaci kódu (“podprogramy”) a mechanismus pro detekci a reakci na výjimečné podmínky běhu (“zpracování výjimek”).
ale také obsahuje mnohem více:
skalární rozsahy
na rozdíl od jazyků založených na syntaxi C (jako je C++, Java a C#) umožňuje Ada programátorovi jednoduše a explicitně určit rozsah hodnot, které jsou povoleny pro proměnné skalárních typů (celočíselné, plovoucí, pevné nebo výčtové typy). Pokus o přiřazení hodnoty mimo rozsah způsobí chybu za běhu. Schopnost určit rozsah kontraints je programátor záměr explicitní a usnadňuje detekci hlavní zdroj kódování a uživatelské vstupní chyby.
programování ve velkém
původní návrh Ada 83 představil konstrukci balíčku, funkci, která podporuje zapouzdření (“skrytí informací”) a modularizaci a která umožňuje vývojáři ovládat jmenný prostor, který je přístupný v dané kompilační jednotce. Ada 95 představila koncept “dětských jednotek”, což značně zvýšilo flexibilitu a usnadnilo návrh velmi velkých systémů. Ada 2005 rozšířila možnosti modularizace jazyka tím, že umožnila vzájemné odkazy mezi specifikacemi balíčků, což usnadnilo rozhraní s jazyky, jako je Java.
obecné šablony
klíčem k opakovanému použití komponent je mechanismus pro parametrizaci modulů s ohledem na datové typy a další programové entity, například balíček zásobníku pro libovolný typ prvku. Ada splňuje tento požadavek prostřednictvím zařízení známého jako “generika”; protože parametrizace se provádí v době kompilace, výkon za běhu není penalizován.
objektově orientované programování (OOP)
Ada 83 bylo objektově založené, což umožnilo rozdělení systému na moduly odpovídající abstraktním datovým typům nebo abstraktním objektům. Plná podpora OOP nebyla poskytnuta, protože, za prvé, zdálo se, že není vyžadováno v doméně v reálném čase, která byla primárním cílem Ada, a, za druhé, zjevná potřeba automatického sběru odpadků v jazyce OO by narušila předvídatelný a efektivní výkon.
velké systémy v reálném čase však často obsahují komponenty, jako jsou GUI, které nemají omezení v reálném čase a které by mohly být nejúčinněji vyvinuty pomocí funkcí OOP. Z tohoto důvodu poskytuje Ada 95 komplexní podporu pro OOP prostřednictvím zařízení “tagged type”: třídy, polymorfismus, dědičnost a dynamická vazba. Ada 95 nevyžaduje automatický sběr odpadků, ale spíše dodává definiční funkce umožňující vývojáři dodávat rekultivační operace specifické pro daný typ (“finalizace”). Ada 2005 za předpokladu, další OOP funkce, včetně Java-jako rozhraní a tradiční operace vyvolání notaci.
Ada je metologicky neutrální a neukládá “distribuovanou režii” pro OOP. Pokud aplikace nepotřebuje OOP, nemusí se používat funkce OOP a neexistuje žádný trest za běh.
souběžné programování
Ada poskytuje strukturované zařízení na vysoké úrovni pro souběžnost. Jednotka souběžnosti je programová entita známá jako ” úkol.”Úkoly mohou komunikovat implicitně prostřednictvím sdílených dat nebo explicitně prostřednictvím synchronního řídicího mechanismu známého jako setkání. Sdílená datová položka může být definována abstraktně jako “chráněný objekt” (funkce zavedená v Ada 95), s operacemi prováděnými pod vzájemným vyloučením při vyvolání z více úkolů. Podporovány jsou také asynchronní interakce úloh, konkrétně časové limity a ukončení úkolů. Takové asynchronní chování je během určitých operací odloženo, aby se zabránilo možnosti ponechat sdílená data v nekonzistentním stavu. Nejnovější verze Ada zahrnují lehké mechanismy, které využívají vícejádrových architektur, což umožňuje vysoce efektivní paralelní výpočty, při zachování přenositelnosti a zachování bezpečného a dobře definovaného modelu souběžnosti Ada.
programování systémů
jak v jazyce” core”, tak v příloze programování systémů poskytuje Ada potřebné funkce, které umožňují programátorovi přiblížit se k hardwaru. Můžete například určit rozložení bitů pro pole v záznamu, definovat zarovnání a velikost, umístit data na konkrétní adresy stroje a vyjádřit specializované nebo časově kritické sekvence kódu v jazyce sestavení. Můžete také psát obslužné rutiny přerušení v Ada pomocí zařízení chráněného typu.
programování v reálném čase
funkce ada tasking umožňují vyjádřit běžné idiomy v reálném čase (periodické úkoly, úkoly založené na událostech) a příloha v reálném čase poskytuje několik zařízení, která vám umožní vyhnout se neomezeným prioritním inverzím. Je definována politika zamykání chráněných objektů, která používá prioritní stropy; to má obzvláště efektivní implementaci v Ada (mutexy nejsou vyžadovány) , protože chráněné operace nelze blokovat. Ada 95 definovala zásady odesílání úkolů, které v zásadě vyžadují spuštění úkolů, dokud nebudou blokovány nebo předjížděny, a Ada 2005 představila několik dalších, včetně nejdříve Deadline First.
systémy s vysokou integritou
s důrazem na zásady zvukového softwarového inženýrství Ada podporuje vývoj aplikací s vysokou integritou, včetně těch, které musí být certifikovány podle bezpečnostních norem, jako je DO-178B, a bezpečnostních standardů, jako jsou společná kritéria. Například silné psaní znamená, že data určená pro jeden účel nebudou přístupná prostřednictvím nevhodných operací; je zabráněno chybám, jako je zacházení s ukazateli jako celými čísly (nebo naopak). A kontrola hranic pole Ada zabraňuje zranitelnostem překročení vyrovnávací paměti, které jsou běžné v C A C++.
úplný jazyk je však v bezpečnostní aplikaci nevhodný, protože obecnost a flexibilita mohou narušovat požadavky na sledovatelnost / certifikaci. Ada řeší tento problém tím, že dodá direktivu kompilátoru Pragma restrikce, která vám umožní omezit jazykové prvky na dobře definovanou podmnožinu(například s výjimkou dynamických OOP zařízení).
vývoj Ada zaznamenal pokračující nárůst podpory aplikací kritických pro bezpečnost a vysokou bezpečnost. Ada 2005 standardizovala profil Ravenscar, sbírku funkcí souběžnosti, které jsou dostatečně výkonné pro programování v reálném čase, ale dostatečně jednoduché, aby certifikace byla praktická. Ada 2012 zavedla anotační zařízení pro přidávání předběžných podmínek, post-podmínek a invariantů do programů. Ada 2022 je rozšiřuje o další anotace pro výchozí počáteční podmínky, stabilní vlastnosti, neblokování a globální využití objektů. Ty mohou sloužit jak pro kontrolu běhu času, tak jako vstup do nástrojů statické analýzy.
Ada výhody shrnutí
- vám pomůže navrhnout Bezpečný a spolehlivý kód
- snižuje náklady na vývoj
- podporuje nové a měnící se technologie
- usnadňuje vývoj komplexních programů
- pomáhá vytvářet kód čitelný a přenosný
- snižuje náklady na certifikaci bezpečnostního softwaru
Ada souhrn funkcí
- objektově orientované programování
- silné psaní
- abstrakce pro přizpůsobení domény programu
- obecné programování/šablony
- výjimka manipulace
- zařízení pro modulární organizaci kódu
- standardní knihovny pro I / O, manipulaci s řetězci, numerické výpočty, kontejnery
- programování systémů
- souběžné programování
- programování distribuovaných systémů
- numerické zpracování
- rozhraní s jinými jazyky (C, COBOL, Fortran)
Stručně řečeno, Ada je mezinárodně standardizovaný jazyk kombinující objektově orientované programovací funkce, dobře navržená zařízení souběžnosti, podpora v reálném čase, a vestavěný spolehlivost. Vhodný nástroj pro řešení skutečných problémů, kterým dnes vývojáři softwaru čelí, Ada se používá v celé řadě významných průmyslových odvětví k navrhování softwaru, který chrání podniky a životy.
Leave a Reply