Ada Resource Association
Ada Overview
az Ada egy modern programozási nyelv, amelyet nagy, hosszú élettartamú alkalmazásokhoz-és különösen beágyazott rendszerekhez – terveztek, ahol a megbízhatóság és a hatékonyság elengedhetetlen. Eredetileg az 1980-as évek elején fejlesztették ki (ez a verzió általában Ada 83 néven ismert) Dr. Jean Ichbiah vezetésével a CII-Honeywell-Bull-nál Franciaországban. A nyelvet az 1990-es évek elején felülvizsgálták és továbbfejlesztették Tucker Taft úr vezetésével Intermetrics az Egyesült Államokban. A kapott nyelv, Ada 95, volt az első nemzetközileg szabványosított (ISO) objektum-orientált nyelv. Az ISO égisze alatt egy további (kisebb) felülvizsgálat befejeződött a szabvány módosításaként; a nyelv ezen változata Ada 2005 néven ismert. Egy jelentősebb felülvizsgálat befejeződött (beleértve a program annotációinak támogatását), és Ada 2012 néven ismert. Egy másik jelentős felülvizsgálat várhatóan 2022-ben fejeződik be.
az “Ada” név nem betűszó; Augusta Ada Lovelace (1815-1852), matematikus tiszteletére választották, akit Charles Babbage-vel végzett munkája miatt néha a világ első programozójának tartanak. Lord Byron költő lánya is volt.
az Ada világszerte jelentős felhasználást tapasztal a magas integritású / biztonságkritikus / magas biztonsági területeken, beleértve a kereskedelmi és katonai repülőgépek repüléstechnikáját, a légiforgalmi irányítást, a vasúti rendszereket és az orvostechnikai eszközöket. A modern szoftverfejlesztési elvek megvalósításával az Ada kiváló oktatási nyelv mind a bevezető, mind a fejlett számítástechnikai kurzusok számára, és jelentős egyetemi kutatások tárgyát képezte, különösen a valós idejű technológiák területén.
nyelvi áttekintés
az Ada sokoldalú. Az egyik szempontból ez egy klasszikus verem alapú általános célú nyelv, amely nem kötődik semmilyen konkrét fejlesztési módszertanhoz. Egyszerű szintaxissal, strukturált vezérlési utasításokkal, rugalmas adatösszetételi lehetőségekkel, erős típusellenőrzéssel, hagyományos kódmodulációs funkciókkal (“alprogramok”), valamint a kivételes futásidejű feltételek észlelésére és reagálására szolgáló mechanizmussal (“kivételkezelés”) rendelkezik.
de sokkal többet is tartalmaz:
Skalártartományok
a C szintaxison alapuló nyelvektől (mint például a C++, Java és C#) eltérően az Ada lehetővé teszi a programozó számára, hogy egyszerűen és explicit módon meghatározza a skalártípusok változóinak megengedett értéktartományát (egész, lebegőpontos, fixpontos vagy felsorolási típusok). A tartományon kívüli érték hozzárendelésének kísérlete futásidejű hibát okoz. Az a képesség, hogy meghatározza tartomány contraints teszi programozó szándék explicit, és megkönnyíti felismerni a fő forrása a kódolás és a felhasználói beviteli hibák.
programozás a nagy
az eredeti Ada 83 kialakítás bevezette a csomag konstrukciót, amely támogatja a kapszulázást (“információ elrejtése”) és a modularizációt, és amely lehetővé teszi a fejlesztő számára, hogy vezérelje az adott fordítási egységen belül elérhető névteret. Az Ada 95 bevezette a “gyermekegységek” fogalmát, jelentősen rugalmasabbá téve és megkönnyítve a nagyon nagy rendszerek tervezését. Az Ada 2005 kiterjesztette a nyelv modularizációs lehetőségeit azáltal, hogy lehetővé tette a csomag specifikációi közötti kölcsönös hivatkozásokat, ezáltal megkönnyítve az olyan nyelvekkel való interfészt, mint a Java.
Általános sablonok
az újrafelhasználható komponensek egyik kulcsa a modulok paraméterezésének mechanizmusa az adattípusok és más program entitások tekintetében, például egy tetszőleges elemtípushoz tartozó veremcsomag. Az Ada ezt a követelményt egy “generikus” néven ismert létesítményen keresztül teljesíti; mivel a paraméterezés fordítási időben történik, a futásidejű teljesítményt nem büntetik.
objektumorientált programozás (OOP)
az Ada 83 objektum-alapú volt, lehetővé téve a rendszer particionálását absztrakt adattípusoknak vagy absztrakt objektumoknak megfelelő modulokba. A teljes OOP-támogatást nem nyújtották, mivel egyrészt úgy tűnt, hogy nem szükséges az Ada elsődleges célpontja, a valós idejű tartományban, másrészt az automatikus szemétgyűjtés nyilvánvaló szükségessége OO nyelven akadályozta volna a kiszámítható és hatékony teljesítményt.
a nagy valós idejű rendszerek azonban gyakran tartalmaznak olyan összetevőket, mint például a GUI-k, amelyek nem rendelkeznek valós idejű korlátozásokkal, és amelyeket a leghatékonyabban az OOP funkciók segítségével lehet kifejleszteni. Részben ezért az Ada 95 átfogó támogatást nyújt az OOP számára a” tagged type ” eszközén keresztül: osztályok, polimorfizmus, öröklés és dinamikus kötés. Az Ada 95 nem igényel automatikus szemétgyűjtést, hanem olyan definíciós funkciókat biztosít, amelyek lehetővé teszik a fejlesztő számára, hogy típusspecifikus tárolási visszanyerési műveleteket (“véglegesítés”) végezzen. Az Ada 2005 további OOP funkciókat biztosított, beleértve a Java-szerű interfészeket és a hagyományos operation invocation jelölést.
az Ada metológiailag semleges, és nem ír elő “elosztott rezsit” az OOP számára. Ha egy alkalmazásnak nincs szüksége OOP-ra, akkor az OOP-funkciókat nem kell használni, és nincs futási idő büntetés.
egyidejű programozás
az Ada strukturált, magas szintű létesítményt biztosít a párhuzamossághoz. A párhuzamosság egysége egy “feladat” néven ismert program entitás.”A feladatok implicit módon kommunikálhatnak megosztott adatokon keresztül, vagy kifejezetten a rendezvous néven ismert szinkron vezérlő mechanizmuson keresztül. A megosztott adatelem elvontan definiálható “védett objektumként” (az Ada 95-ben bevezetett szolgáltatás), a műveletek kölcsönös kizárás mellett kerülnek végrehajtásra, ha több feladatból hívják meg őket. Az aszinkron tevékenységinterakciók is támogatottak, különösen az időtúllépések és a tevékenység megszüntetése. Az ilyen aszinkron viselkedést bizonyos műveletek során elhalasztják, hogy megakadályozzák a megosztott adatok következetlen állapotban hagyásának lehetőségét. Az Ada legújabb verziói könnyű mechanizmusokat tartalmaznak a többmagos architektúrák előnyeinek kihasználására, lehetővé téve a rendkívül hatékony párhuzamos számítástechnikát, miközben megőrzi a hordozhatóságot és a biztonságos és jól definiált Ada konkurencia modellen belül marad.
Rendszerprogramozás
mind a “core” nyelven, mind a Rendszerprogramozási mellékletben az Ada biztosítja a szükséges funkciókat, hogy a programozó közel kerüljön a hardverhez. Megadhatja például a rekord mezőinek bitelrendezését, meghatározhatja az igazítást és a méretet, az adatokat meghatározott gépcímekre helyezheti, és speciális vagy időkritikus kódsorozatokat fejezhet ki assembly nyelven. Azt is írni megszakítás kezelők Ada, a védett típusú létesítmény.
valós idejű programozás
az Ada feladatfunkciói lehetővé teszik a közös valós idejű idiómák (időszakos feladatok, eseményvezérelt feladatok) kifejezését, és a valós idejű melléklet számos lehetőséget kínál, amelyek lehetővé teszik a korlátlan prioritású inverziók elkerülését. Védett objektumzárolási házirend van meghatározva, amely prioritási felső határokat használ; ennek különösen hatékony megvalósítása van az Ada-ban (mutexek nem szükségesek), mivel a védett műveletek nem blokkolhatók. Ada 95 meghatározott feladat diszpécser politika, amely alapvetően megköveteli a feladatokat futtatni, amíg blokkolva vagy megelőzve, Ada 2005 bevezetett több más, beleértve a legkorábbi határidő első.
nagy integritású rendszerek
az Ada a hangszoftver-tervezési elvekre összpontosítva támogatja a nagy integritású alkalmazások fejlesztését, beleértve azokat is, amelyeket a DO-178B biztonsági szabványok és a biztonsági szabványok, például a Common Criteria szerint kell tanúsítani. Például az erős gépelés azt jelenti, hogy az egy célra szánt adatokhoz nem férnek hozzá nem megfelelő műveletekkel; megakadályozzák az olyan hibákat, mint például a mutatók egész számként történő kezelése (vagy fordítva). Az Ada tömbhatár-ellenőrzése megakadályozza a puffertúlcsordulási sebezhetőségeket, amelyek gyakoriak a C és a C++nyelvben.
a teljes nyelv azonban nem megfelelő a biztonság szempontjából kritikus alkalmazásokban, mivel az általánosság és a rugalmasság zavarhatja a nyomonkövethetőségi / tanúsítási követelményeket. Az Ada ezt a problémát egy fordító irányelv, pragma korlátozások, amely lehetővé teszi, hogy a nyelvi funkciókat egy jól definiált részhalmazra korlátozza (például a dinamikus OOP létesítmények kivételével).
az Ada fejlődése során folyamatosan nőtt a biztonság szempontjából kritikus és magas biztonságú alkalmazások támogatása. Az Ada 2005 szabványosította a Ravenscar profilt, amely olyan párhuzamossági funkciók gyűjteménye, amelyek elég erősek a valós idejű programozáshoz, de elég egyszerűek ahhoz, hogy a tanúsítás praktikus legyen. Ada 2012 bevezetett annotációs lehetőségek hozzáadása előfeltételek, utáni feltételek, és invariánsok programok. Az Ada 2022 ezeket további megjegyzésekkel egészíti ki az alapértelmezett kezdeti feltételekhez, a stabil tulajdonságokhoz, a nem blokkoláshoz és a globális objektumhasználathoz. Ezek mind futásidejű ellenőrzésre, mind statikus elemző eszközök bemenetére szolgálhatnak.
Ada előnyök összefoglaló
- segít megtervezni a biztonságos és megbízható kódot
- csökkenti a fejlesztési költségeket
- támogatja az új és változó technológiákat
- megkönnyíti a komplex programok fejlesztését
- segít a kód olvashatóvá és hordozhatóvá tételében
- csökkenti a biztonsági szempontból kritikus szoftver
Ada jellemzők összefoglaló
- objektumorientált programozás
- erős gépelés
- absztrakciók a program tartományához
- általános programozás/sablonok
- kivétel kezelése
- létesítmények moduláris szervezése kód
- szabványos könyvtárak I/O, karakterlánc kezelése, numerikus Számítástechnika, konténerek
- rendszerek programozása
- egyidejű programozás
- valós idejű programozás
- elosztott rendszerek programozása
- numerikus feldolgozás
- interfészek más nyelvekhez (C, COBOL, Fortran)
röviden, Az Ada egy nemzetközileg szabványosított nyelv, amely ötvözi az objektumorientált programozási funkciókat, a jól megtervezett párhuzamossági lehetőségeket, a valós idejű támogatást és a beépített megbízhatóság. Megfelelő eszköz a szoftverfejlesztők valódi problémáinak kezelésére, az Ada-t számos nagy iparágban használják olyan szoftverek tervezésére, amelyek védik a vállalkozásokat és az életet.
Leave a Reply