tévék. Konzolok. Projektorok és tartozékok. Technológiák. Digitális TV

Ada (programozási nyelv). mindent tudni akarok. Ada nyelv Az ada nyelvet írásra tervezték

A pokol nyelve többé-kevésbé mindig is jelen volt. Az iskolában röhögtünk a nevén, az egyetemi tantervben szárazon emlegették, mint az amerikai védelmi minisztérium felkérésére kifejlesztett nyelvet, de a szintaxist vagy alkalmazást valóban csak ritka programozók jutottak el. Ebből az a téves vélemény alakult ki, hogy az ada nyelv csak évszázados berendezéseken működik, és a természetes modernizációval együtt megszűnik az igény.

És ez nagyon távol áll az igazságtól.

Megjelenés

A 20. század 70-es éveiben, a hidegháború tetőpontján az Egyesült Államok Védelmi Minisztériuma nemzetközi versenyt szervezett, melynek eredménye alapján katonai célú programozási nyelvet kellett választani. A meglévő nyelvek közül azonban egyik sem elégítette ki a bizottság tagjait, így hosszas válogatás és több módosítás eredményeként megszületett az ada nyelv, amelyet Ada Lovelace-ről neveztek el. Ezután sok évnyi bürokrácia kezdődött szabványosítással, védjegybejegyzéssel, az egyedi fordítók betiltásával és más olyan akciókkal, amelyek eltántorították a tömegközönséget attól, hogy Adával dolgozzon.

Az eredmény egy meglehetősen szűkszavú nyelv, amelyet fokozott biztonsági követelményekkel rendelkező, összetett számítástechnikai rendszerekhez terveztek. Ismét a Pentagon követelményei és a szigorú szabványok miatt a más programozási nyelvekkel való interakció rendkívül nehéz, így Adának egészen a közelmúltig gyakorlatilag esélye sem volt a tömegpiacra való áttérésre. De ahogy a berendezések olcsóbbakká válnak, és az alkalmazott technológiák bonyolultabbá válnak, megjelenik egy ilyen lehetőség.

Szintaxis

Kezdetben az Ada egy moduláris programozási nyelv, erős gépeléssel, a szintaxist a Pascaltól és az Algoltól örökölte. Ha az elsőt az iskolában vagy az egyetemen tanultad, akkor nézd meg a „Helló, világ!” nosztalgikusnak kell lennie:

Ada.Text_IO-val;

Eljárás Hello van
használja az Ada.Text_IO;
kezdődik
Put_Line("Szia, világ!");
vége Hello;

A nyelvvel szemben támasztott egyik fő követelmény a használat megbízhatósága volt. Ennek megfelelően ez szigorú megszorításokkal járt a szerkezet, a típusok, a helyesírás és még sok más tekintetében. Ráadásul itt szinte minden hibát az összeállítási szakaszban észlelnek.

További követelmény volt a kód maximális olvashatósága nyomtatott formában, ami a kapott nyelv nehézkességét és csekély rugalmasságát eredményezte.

A későbbi szabványok részben megoldották ezeket a problémákat, de nyilvánvaló okokból nem készítettek második Pythont a pokolból.

Ma Ada

A széles közönség véleményével ellentétben a pokol nyelvét továbbra is aktívan használják, nemcsak az Egyesült Államokban és nem csak a hadiiparban. Például a Beriev Be-200 kétéltű repülőgép szoftverének egy része Adán van írva. A számos nagyvárosban (Párizsban, Londonban, New Yorkban stb.) közlekedő, vezető nélküli metrószerelvények is amerikai katonai nyelvi felszerelést használnak.

És igen, természetesen az „ügyfelek” között volt katonai és polgári légi közlekedés (különösen a Boeing 777), rakéták, siklók, műholdak - általában a végtelenül drága amerikai termékek szinte teljes listája, amelyek a legmagasabb fokú biztonságot igénylik. .

Kilátások

A Pokol nyelvét már megjelenésekor és akkor is kritizálták, amikor kiderült, hogy a Pentagon grandiózus tervei nem egészen illeszkednek a valósághoz, és most még inkább. Ennek oka a kényelmetlen nyelvezet, az 1983-ban és 1995-ben írt szabványok bonyolultsága, valamint a fejlesztők rövidlátása, akik megfosztották az ada nyelvet tömeges közönségtől.

A közel 40 éves aktív használat azonban megerősíti, hogy talán a pokol nyelve megbirkózott fő feladatával - segítségével még mindig lehet alkotni megbízható kód fokozott biztonsági követelményeket támasztó rendszerekhez. Ugyanakkor, ha megnézzük a jelenlegi trendeket, az ilyen termékek száma folyamatosan növekszik: robotpilóta és hibrid motorral felszerelt autók, magán űrhajók és kisrepülőgépek, nagysebességű vonatok, valamint hatalmas számú beágyazott rendszer. Mindez potenciális terepe a pokol nyelvének tevékenységének. Ha ehhez hozzávesszük azt a tényt, hogy a szabványt 2012-ben komolyan felülvizsgálták és modernizálták, a munkához szükséges eszközöket is kiadják és frissítik.

Így a pokol nyelve egyrészt egy nem túl kellemes múlt töredéke, másrészt a fényes jövő építésének egyik eszköze. És biztosan nem tervezi a visszavonulást.

Szergej Bobrovszkij

Ennek a nyelvnek a története nem 1975-ben kezdődik, amikor az Egyesült Államok Védelmi Minisztériuma (DoD) úgy döntött, hogy megkezdi az amerikai fegyveres erők, majd az egész NATO egységes programozási nyelvének fejlesztését. Története a névvel kezdődik, ugyanis Ada az első programozónak tartott Augusta Ada Lovelace, Byron angol költő és bizonyos Anabella Milbank lánya, akitől férje egy hónappal lánya születése után örökre elvált. aki 1815. december 10-én született. Általánosságban elmondható, hogy a kibernetika történetét sötét rejtély borítja, és csak töredékes tényekből lehet megállapítani, hogy e tudomány alapítói az elmúlt kétszáz évben különféle misztikusok és okkultisták voltak, kezdve Augustus de Morgantől, Ada egyik tanítójától. és Wiener Norbert társaival, akik a közvélemény formálásának módszereit és annak manipulálását tanulmányozták.

Miután Charles Babbage megépítette mechanikus számítógépét, Ada megírta az első programot a Bernoulli-együtthatók kiszámítására. Ezt követően kidolgozta a programozás valós elméletét, bevezette a ciklus fogalmát és számos más kulcsfogalmat, amelyeket ma szinte szó szerint tanulnak a kibernetikai fakultások hallgatói! Manapság Adát mindenki az első programozóként ismeri – és ez minden, de vajon honnan van egy fiatal lánynak ilyen egyedi képességei? Ő maga őszintén válaszolt erre a kérdésre: „Esküszöm az ördögre, hogy 10 éven belül bizonyos mennyiségű életvért szívok ki az Univerzum titkaiból, mégpedig oly módon, amit a hétköznapi halandó elmék és ajkak nem tudnának megtenni micsoda félelmetes energia és erő rejlik még mindig kihasználatlanul kicsi, rugalmas teremtményemben..." A számítógépes projektnek azonban nem voltak szponzorai - még nem voltak nukleáris rakéták, és Ada, miután minden vagyonát elvesztette a versenyeken, és egy piszkos történetbe keveredett, 37 évesen meghalt, akárcsak híres apja.

Ezért nagyon vitatott kérdés, hogy az amerikaiaknak ennyire dicsérniük kellett volna Adát, és az ő nevét használták-e egy ilyen ambiciózus projekt elnevezéseként.

De térjünk vissza magához a nyelv történetéhez. Öt évvel a projekt kezdete után szakértők százai választották ki 17 lehetőség közül az egyetlen nyelvet, amely megfelel az ML követelményeinek, amelyet a tehetséges tudós, Jean Ishbia által vezetett kis csapat fejlesztett ki. Az ISO 8652:1987 nemzetközi szabvány végleges változata 1987-ben jelent meg. A hivatalos jelentések szerint a világ összes legjobb programozó szakembere részt vett ennek a nyelvnek a megalkotásában és finomításában, ami azonban kétségeket vet fel. Ezt erősíti meg például az is, hogy az Ada eredeti verziójából hiányzik az objektum fogalma, és nyilvánvaló okokból a szovjet programozók nem vettek részt ebben a projektben.

Több tízmilliárd dollárt fektettek be az Ada infrastruktúrájának fejlesztésébe világszerte. Ez olyan ambiciózus kijelentések megjelenéséhez vezetett, mint „A 20. század Ada jegye alatt fog elhaladni”, azonban szokás szerint az élet mindent a helyére tett.

Sajnos az Egyesült Államok Védelmi Minisztériuma (és ennek megfelelően Amerika „potenciális ellenfelei” szerencséjére) e nyelv egyértelmű szabványának kidolgozása és a hatékony fordítóprogramok létrehozása éppen abban az időben (a 80-as évek elején) fejeződött be, amikor a szoftveripar. kezdett kirajzolódni a láthatáron új nyelv C++ tárgyideológiával. Most nehéz megmondani, mit érzett az Ada fejlesztési bizottsága, amikor látták a C++ és a régi, jól elfeledett, tárgyalapú gondolkodásmód növekvő népszerűségét. De a kiutalt forrást már elköltötték, a színvonalat megteremtették, és nem volt visszaút.

Az Ada szerkezete nagyon hasonlít a Pascalra, pontosabban a Modulára. A legtöbb állítás és leírás szintaxisa szinte megegyezik a Modula szintaxisával, bár az Adával szinte egy időben jelent meg, és nehéz megmondani, hogy ki volt kire hatással, ha egyáltalán. Az Adában különösen sok különféle kiterjesztést adtak hozzá, így ez a nyelv nem nevezhető kompaktnak a Pascalhoz képest. A lehetőségek számát tekintve inkább a PL/1-re hasonlít. De mivel az Ada készítői a fő hangsúlyt az amerikai „első osztályok” kívánalmainak teljesítésére helyezték, az adatlezárás (láthatóság) és a különálló blokkok létrehozásának lehetősége más fejlesztők specifikációi (modulok felületi leírása) felhasználásával. idejükhöz képest a legfejlettebbek. Például annak a programozónak, aki ténylegesen megírta a kódot egy cirkálórakéta repülési útvonalának kiszámításához, fogalma sem volt, hogy a modulját hol és milyen célokra használják majd, bár hozzáférhetett más alkalmazottak szükséges specifikációihoz, és hibakeresést végezhetett a saját részében. a kódot minden probléma nélkül. A különböző szintű specifikációkhoz való hozzáférés szigorú differenciáltsága miatt néha még azt sem lehet meghatározni, hogy egy adott eljárást miért és milyen eszközökkel hívnak meg. Ez az önálló programfejlesztés iránti vágy azonban a modulspecifikációk és néhány mellékhatásokat kiváltó „lyuk” megjelenéséhez vezetett, amelyek jelenlétét azonban még az Egyesült Államok Védelmi Minisztériuma is hasznosnak ítélte. .

Az adattipizálás elemei jelentősen megerősödtek, maguk a típusok pedig formalizáltabbak lettek. Az összes I/O-hoz kapcsolódó funkciót eltávolították a szabványos szintaxisból, és a kivételkezelés a nyelv szerves részévé vált. Ezen túlmenően az irányítási struktúrák erejét a határra hozták, ami az Ada-t a legfejlettebbé tette a többi Pascal-szerű nyelv között.

A Borland hamarosan kiadta Turbo Pascal-ját, amelyben a modul koncepcióját is beépítették, és a Pascal verzióját képességeiben közelebb hozta az Adához, de szerencsére nem történt további kísérlet harmadik generációs, nem objektív programozási nyelvek létrehozására. nagyon nagy projektek fejlesztésére szolgálnak. Ezért Ada az egyszerű procedurális nyelvek hosszú sorának a végét jelentette, kezdve a Fortrannal és az Algollal. Valójában minden, amit a strukturált programozás ideológiája keretein belül elképzelni lehetett, a Pokolban testesült meg. Aztán az objektumprogramozás felrobbant, és Ada háttérbe szorult.

Ennek a nyelvnek azonban még mindig van egy olyan rése, amelyben még nincs párja. A modulok külön összeállítása és a specifikációk hierarchikus titkosságának biztosítása mellett ez a nyelv olyan tulajdonságot valósított meg, mint a párhuzamos programozás támogatása. Többé-kevésbé próbálkozott magas szintű az ALGOL-68-ban, majd Modula-2-ben fejlesztették ki, nagyon erős Ada-létesítményekben, az úgynevezett feladatokban testesült meg, amelyek párhuzamos számítógépeken egymástól függetlenül is végrehajthatók. Ez egy teljes programozási ideológia megszületéséhez vezetett, amely olyan feladatokon alapult, amelyeket „pszeudo-párhuzamosan” lehetett végrehajtani – egyetlen processzorral rendelkező számítógépen. Ugyanakkor a megoldandó problémát egyidejűleg működő eljárások sorozatára osztották, amelyek egymástól függetlenül kölcsönhatásba léptek egymással. Ez egy kicsit emlékeztetett a Prolog problémamegoldásának módjára: egy bizonyos virtuális világot egyszerűen leírnak, majd mintegy „beindítják” működésbe, és magától meg is találják a megoldást.

Annál meglepőbb, hogy az Egyesült Államok Védelmi Minisztériuma ilyen vagy olyan okból feladta az objektív ideológiát, amely tökéletesen megtestesült

60-as években a Simula-67-ben, és valószínűleg többször is megbánta. Igaz, az objektum-orientált programozás nyújtotta lehetőségek egy bizonyos szánalmas helyettesítése bekerült az Ada nyelvbe - az úgynevezett templates, azaz meghatározatlan típusú paraméterekkel rendelkező eljárások. Ennek ellenére az Ada fő előnye, amely lehetővé teszi számára, hogy ellenálljon a fejlettebb nyelvek rohamainak, az erőteljes finanszírozáson túl a feladatok párhuzamos végrehajtásának beépített támogatása, ill. erőteljes eszközök kölcsönhatásuk koordinálása. Meg kell jegyezni, hogy Ada fő irányzata nem az Egyesült Államok Védelmi Minisztériumának számviteli automatizálási rendszerei, hanem tisztán harci küldetések ilyen például egy irányítórakéta mikroprocesszoros valós idejű navigációja, ahol különböző érzékelőktől folyamatosan érkező információkat egyidejűleg kell feldolgozni. Korábban az assemblerben írták az ilyen feladatokat, ami sok hibához és karbantartási nehézséghez vezetett. Az ilyen feladatokra Ada természetesen tökéletesen alkalmas.

Az Ada azonban továbbra is jó eszköz a nagyok fejlesztéséhez szoftverrendszerek. Igaz, most már halkabban szólalnak meg a nyelvet támogató hangok, valahogy így: „Ada legalább nem rosszabb, mint C.” Az Egyesült Államok Védelmi Minisztériuma, figyelembe véve fő hibáját - a létesítmények hiányát, a programfejlesztési technológia modern követelményeinek megfelelően - kifejlesztette új szabvány ISO/IEC 8652:1985(E) nyelv. A nyelv Ada95 (vagy Ada9X) verzióját írja le. A legérdekesebb, hogy ez a verzió a világ első objektum-orientált programozási rendszere, amelyhez nyilván megrendelésre bevezettek egy nemzetközi szabványt (C++-al ez még nem működik). Ezen túlmenően a nyelv továbbfejlesztette az adatok láthatóságának koordinálását a modul specifikációiban, és eszközökkel bővítette a párhuzamos feladatok hatékonyságát.

Az Egyesült Államok Védelmi Minisztériuma meglehetősen féltékeny annak drága ötletére, és még az „Ada” szót is bejegyezte védjegyeként. Később azonban a Moszkvai Régió a védjegy helyett úgy döntött, hogy az „Ada”-t használja belső tanúsított védjegyeként. Az Egyesült Államok Védelmi Minisztériuma nem különösebben örül ennek a nyelvnek a kereskedelmi verzióinak megjelenésének. Természetesen senkinek nincs joga megtiltani, hogy saját fordítóprogramot írjon, de ahhoz, hogy kereskedelmi elismerést kapjon, meg kell felelnie egy katonai szabványnak, és a tesztelést csak az Egyesült Államok Védelmi Minisztériumának AJPO bizottsága végzi. , amely nagyon szigorúan ellenőrzi, hogy a fordító megfelel-e számos követelménynek, beleértve nyilvánvalóan és tisztán politikai követelményeket is.

Azonban különböző verziók Adát lehet kapni, ahogy a programozási nyelveknél lenni szokott, ingyen, vagyis semmiért, de nem kalóz módon, hanem egyszerűen freeware verziókban, és persze pénzért.

A szabadon terjesztett verziók közül először is ki kell emelni a GNAT fordítót - GNU Ada95. Forráskódban elérhető a GNU (szabad szoftver) projektből. Egy processzoros számítógépen is működhet, de az operációs rendszernek támogatnia kell a többfeladatos működést. Ez lehet például a UNIX vagy az OS/2 valamelyik verziója. Ami az MS DOS-t illeti - találd ki magad. Ha azonban valóban száz-két párhuzamos folyamatot szeretne futtatni a személyi számítógépén MS DOS 6.x alatt, akkor kipróbálhatja az Ada/Ed-t – a nyelv 1987-es verziójának fordítóját és értelmezőjét, amely azonban teljesen összeegyeztethetetlen a szabvánnyal és nem tartalmaz számos lényeges elemet.

Ha van pénzed, akkor a helyzet természetesen könnyebbé válik. Egy átlagos orosz programozó havi fizetésén belül megvásárolhatja például a FirstAdát és írhat egy hűtőszekrényvezérlő rendszert. Megpróbálhat drágább, az Egyesült Államok Védelmi Minisztériuma által hitelesített Windows, OS/2 vagy UNIX rendszereket vásárolni közvetlenül a fejlesztőcégektől, amelyekből körülbelül egy tucat van.

Érdekesség, hogy nem csak magát a nyelvet szabványosították, ami lehetővé tette könnyen hordozható programok létrehozását, hanem egy sor fejlesztői segédletet is - különféle bemeneti-kimeneti könyvtárakat és grafikus felület szervezeteket, előfeldolgozókat, hitelesítőket, kódgenerátorokat, elemzőket. logikai szerkezet forráskód, fordítótesztelő programok stb. Természetesen vannak nagy csomagok, amelyek az összes szabványos fejlesztőeszközt tartalmazzák, de ezek nagyon drágának tűnnek.

Nagyon érdekes lenne tudni, hogy a Szovjetunió dolgozott-e olyan nyelveken, amelyeket hasonló katonai problémák megoldására terveztek. Vagy csak Assembly-be írták a szakembereink?

A nyelv jellemzői

– Szervusz, világ! Adán

Néhány különféle lehetőségeket"Helló, világ!" megtekinthető a Wikikönyvekben (angol). A különbségek a Put_Line függvénytár használatának szükségességéből adódnak – ebben a nyelvben három van különböző módokon ilyen felhasználás megszervezése.

Ada.Text_IO-val;

eljárás Hello van

Használja az Ada.Text_IO;

Put_Line("Szia, világ!");

vége Hello;

Itt a Put_Line függvény használatához az azt tartalmazó Ada.Text_IO csomag importálásra kerül a use konstrukcióval, amely lehetővé teszi a függvény minősítés nélküli név szerinti meghívását - a függvényt tartalmazó csomag nevének megadásával a hívásban.

Történet

keretein belül valósult meg a nyelvfejlesztés nemzetközi verseny, amelyet az Egyesült Államok Védelmi Minisztériuma szervezett és finanszírozott A fejlesztés célja egy olyan programozási nyelv beszerzése volt, amely egységessé válhat katonai megrendelések, elsősorban katonai célú beágyazott rendszerek fejlesztésére, illetve nagy katonai számítógépekre. (az Intel iAPX 432 processzorán alapul). A munka 1975-ben kezdődött egy olyan nyelvi követelményrendszer kialakításával, amely teljes mértékben kielégíti az ilyen típusú rendszerek fejlesztőit. A „Szalma” kódnevű kezdeti követelménylistát számos szervezetnek és cégnek benyújtották felülvizsgálatra, és két év alatt fokozatosan finomodtak, és végül az „Acél” elnevezésű végleges dokumentum lett.

A követelmények teljesítése után elemzésre került sor, amely kimutatta, hogy a meglévő programozási nyelvek egyike sem felelt meg kellően a követelményeknek, ezért egy új nyelv fejlesztése mellett döntöttek. Az elkészítésére 1977-ben versenyt hirdettek a fejlesztőknek, hogy a három nyelv valamelyikére alapozzák: Pascal, Algol-68 vagy PL/1.

A pályázatra benyújtott 15 projekt közül 4-et választottak ki (mindegyik Pascal alapján). Ezeket a projekteket továbbfejlesztésre küldték. A következő szakaszban 4 projektből kettőt választottak ki, amelyek közül további finomítás után egyet választottak ki. Ezt a nyelvet „Adának” nevezték el – a francia Jean Ishbia vezette csoport, amely kidolgozta, Augusta Ada King Lovelace (J. Byron költő lánya) tiszteletére adta a nyelvet, akit a világ első programozójaként tartanak számon. Babbage számítógépéhez való programok fejlesztésének világa.

Dijkstra egyik cikkében kételkedett abban, hogy egy ilyen összetett nyelv, mint az Ada, megfigyelhető és kezelhető lenne. Megjegyezte: „Ha az Ada szabványt kíván kiadni, azt akarja, hogy azt egyértelműen dokumentálják. Legalább két csoport próbálkozott ezzel; ennek eredményeként mindkettő mintegy 600 oldalnyi hivatalos szöveget készített. Ez sokkal több annál, mint ami ahhoz szükséges, hogy ne lehessen még szilárdan megállapítani, hogy mindkét dokumentum ugyanazt a nyelvet határozza meg. E két dokumentum látszólagos ellenőrizhetetlenségének hibája nem sem az őket alkotó két csoportban, sem az általuk elfogadott formalizmusban rejlik, hanem csak magában a nyelvezetben: anélkül, hogy maguk adnának formális definíciót arra vonatkozóan, hogy a kidolgozók el tudják-e rejteni, hogy irányíthatatlan szörnyeteget javasolnak. Az, hogy az Ada csökkenti a programozási problémákat, és az elfogadható határokig növeli terveink megbízhatóságát, csak egyike azon meséknek, amelyeket csak katonai hátterű emberek hihetnek el.”

Hoar nehezményezte, hogy "a harangok és a sípok elsőbbséget élveznek a megbízhatóság és a biztonság alapvető követelményeivel szemben", és óva intett attól, hogy "egy rakéta armada rossz irányba menjen az Ada fordítóprogramban észlelt hiba miatt". Niklaus Wirth visszafogottabban, de negatívan is beszélt. Azt mondta: „Túl sokat dobnak a programozóra. Nem hiszem, hogy Ada egyharmadának tanulmányozása után normálisan dolgozhat. Ha nem sajátítod el a nyelv minden részletét, a jövőben belebotlasz, és ez kellemetlen következményekkel jár.” Jean Ishbia, az Ada fejlesztőcsapatának vezetője, miközben kifejezte "tiszteletét és csodálatát" Wirt iránt, nem értett egyet vele, és azt mondta: "Wirth hisz egyszerű megoldásokösszetett problémák. Nem hiszek az ilyen csodákban. Az összetett problémák komplex megoldásokat igényelnek."

Kételyeket vet fel az az eljárás is, hogy a fordítóprogram nyelvi szabványnak való megfelelését teszteléssel ellenőrizzük. Az általános megfontolások alapján világos, hogy a tesztelés találhat ellentmondásokat, de nem garantálja a helyességet. Ennek gyakorlati megerősítése az a tény, hogy a hitelesített fordítók, amikor egy másik tesztsorozaton tesztelték, nem feleltek meg a szabványnak.

Az Ada támogatói azzal érvelnek, hogy a nagy projektekben a nagy és összetett nyelv egyetlen alternatívája több kompakt nyelv használata, ami elkerülhetetlenül olyan kompatibilitási problémákhoz vezet, amelyektől az Adát azért találták ki, hogy megszabaduljon. Azt is megjegyzik, hogy az adai fejlesztés bonyolultságáról alkotott elképzelés csak részben igaz: egy egyszerű program megírása Adában több időt vesz igénybe, mint más, kevésbé formális nyelveken, mint például a C, de a programok hibakeresése és karbantartása különösen nagy. és összetettek, nagymértékben leegyszerűsödnek. Stephen Zeiger, a Rational Software Corporation munkatársa szerint a fejlesztés szoftver Adában az összköltség 60%-kal olcsóbb, és a kifejlesztett programnak 9-szer kevesebb a hibája, mint a C nyelv használatakor.

Eloszlás, kilátások

A gyakorlatban kiderült, hogy Ada, miután elfoglalta a tervezett rést a katonai és a beágyazott rendszerek kapcsolódó fejlesztéseiben, soha nem lépte túl ezt a rést, sem Nyugaton, sem a Szovjetunióban, sem a posztszovjet térben. Ennek számos oka van. A nyelv ellenzői a nyelv bonyolultságára és hiányosságaira helyezik a hangsúlyt, elsősorban a nyelv megjelenésének objektív körülményeiről és a megvalósítás folyamatának negatív oldalairól. Érdekes S. I. Rybin, a Moszkvai Állami Egyetem Kutatói Számítástechnikai Központjának vezető kutatója, az AdaCore EU tanácsadója, az ISO nyelvi szabványokkal foglalkozó munkacsoport ada nyelvének szakértője véleménye. Úgy véli, hogy Ada két fő oknak köszönheti kudarcait:

  • A nyelv tervezése során a Pentagon azt feltételezte, hogy minden új szoftver csak Adában készül. Emiatt Ada rendkívül primitív eszközöket kapott a más nyelvű programokkal való interakcióhoz. A gyakorlatban kiderült, hogy mindent Adán írni irreális volt (már csak azért is, mert szükség volt más nyelvű kész fejlesztésekkel való interakcióra). Ezért azokban az iparágakban, ahol nem volt szigorú követelmény, hogy „csak Adán írjunk”, más nyelveket részesítettek előnyben, amelyek jobban igazodtak a többnyelvű környezethez. Az 1995-ös szabvány megoldotta a más nyelvekkel való interoperabilitás problémáját, de az idő elveszett.
  • Paradox módon Ada terjedését a Pentagon anyagi és szervezeti támogatása akadályozta meg. A katonaság számára írt Ada programok az elérhető legerősebb számítástechnikai hardveren futottak, így a fordítóprogram-fejlesztők elsősorban az ACVC-tesztek teljesítésével foglalkoztak, és csak azután a fordító és az általa előállított kód hatékonyságával. Az 1980-as évek elején a mikroszámítógépek fellendülése kezdődött, és a köznyelvek (Pascal, C, BASIC) fordítóit gyorsan optimalizálták az alacsony fogyasztású rendszerekre. Az Adát nem ösztönözte az efféle modernizáció, így a személyi számítógépek, amelyek néhány évvel később a világ számítástechnikai flottájának nagy részét képezték, kiváló minőségű Ada-fordító nélkül találták magukat. Ada természetesen elvesztette ezt a piaci szegmenst. Csak viszonylag nemrég jelent meg a GNAT fordító, kiváló minőségű és produktív, de itt is elveszett az idő.

Jelenleg az Ada meglehetősen szilárdan megállja a helyét a nagyobb megbízhatóságú beágyazott rendszerek fejlesztésében, gyakorlatilag nincs erős versenytársa. A nyelvhasználat fokozatosan, bár meglehetősen lassan növekszik. Egyes óvatos előrejelzések szerint az olcsóbb hardverek és a komplex szoftveres beágyazott rendszerek elterjedésével jelentősen bővülhet az Ada-programok piaca, és a nyelvhasználat is növekedni fog.

Emellett Ada alkalmazása – bár nagyon korlátozott – a felsőoktatás területén is van. A Moszkvai Állami Egyetemen és a Harkovi Egyetemen Adáról speciális kurzusokat tartanak. Ugyanezen S. I. Rybin szerint azonban

... most a posztszovjet térben a szoftveripar és az oktatás területén nyilvánvaló ördögi kör alakult ki: az iparban gyakorlatilag nem tudnak Adáról, ennek megfelelően az iparból nem kérnek oktatást Adai szakembereket képeznek, az egyetemekről pedig új emberek érkeznek az iparba, akik gyakorlatilag semmit sem tudnak Adáról.

Ada nyelven írt operációs rendszerek

Beágyazott rendszerek

  • Az RTEMS egy nyílt forráskódú operációs rendszer, amelyet az Egyesült Államok Védelmi Minisztériumának DARPA fejlesztett ki
  • Ravenskar
  • RTOS-32 - szabadalmaztatott operációs rendszer

Rendszerek fejlesztés alatt

  • AuroraUX (az OpenSolaris kernelt Adába való átírására szolgáló projekt)
  • Lovelace (kernel operációs rendszer)

Már nem létező rendszerek

  • BiiN™
  • Pulse™
  • AdaOS

A pokol fordítói

NévVállalatVáltozatoperációs rendszerWeboldal
AdaMagicSofCheckAda 95 ? www.sofcheck.com
AdaMULTIGreen Hills szoftverAda 83, Ada 95,
Minden programozási nyelv két csoportra osztható:

1. „statikus” (vagy „erős”) típusokkal;

2. „dinamikus” (vagy „gyenge”) típusokkal.

Mindkét nyelvcsoportnak megvannak a maga előnyei és hátrányai. A cikk fő tézise: „Ada a nyelvek közül a legjobb statikus típusok».

A statikus típusokkal rendelkező nyelvek előnyei (és ezért automatikusan az Ada előnyei, mivel az Ada egy statikus típusokkal rendelkező nyelv):

1. több nagy sebesség a program többszöri (gyakran százszoros) végrehajtása (mellesleg a processzor haszontalan fűtéséhez szükséges villamosenergia-fogyasztás ugyanennyivel csökken);

2. a „hülye” hibák, például „zavaros” számok és egy karakterlánc-változó (karaktersorozat) megbízhatóbb ellenőrzésének lehetősége (teljesen megvalósítva az Adában).

Az ada bizonyos értelemben a "legerősebb" típusú nyelv az erősen tipizált nyelvek közül. Innen az automatikus következtetések:

1. Az Ada az egyik leggyorsabb programozási nyelv az összes programozási nyelv közül. A program valójában százszor gyorsabban tud futni a dinamikus programozási nyelvekhez képest.

2. Ada teljesen elutasítja a "hülye" hibákat összekevert adattípusokkal. Ezt az alábbiakban részletesebben tárgyaljuk.

Ada története

Ada megjelenésének története külön figyelmet érdemel.

A Pentagon (ahogy az amerikai védelmi minisztériumot hívják, mert egy Pentagon formájú épületben találhatók) pályázatot hirdetett a katonai problémák megoldására alkalmas programozási nyelv megalkotására. A nyelvnek biztosítania kellett a programok nagy megbízhatóságát, lehetővé kellett tennie nagy komplex rendszerek fejlesztését, gyorsnak és „olvashatónak” kell lennie a programozók számára (akkor is, ha a program szövegét más programozó írta), valamint támogatnia kellett a többprocesszoros rendszerek hatékony használatát. (újabban elterjedt formában többmagos processzorok- figyelje meg, hogyan tekintettek a fejlesztők a jövőre!)

A versenyt az „Ada” nyelv nyerte (a 19. századi matematikusnőről, Ada Lovelace-ről kapta a nevét). 1983-ra megírták az Ada úgynevezett formális specifikációját, amely Ada83 néven vált ismertté.

Az Ada83 nem felelt meg a modern programozási nyelv követelményeinek. Ezért ennek alapján jött létre a már modern nyelvnek nevezhető Ada95 (1995), majd később Ada2005 és Ada2012 (jól látható, hogy melyik évben).

Az Ada elterjedt a fokozott megbízhatóságot igénylő területeken (hadiipar, pénzügy, infrastruktúra menedzsment stb.), Adán készült például az F-16-os repülőgép.

Az Ada előnyeinek listája

Az Ada fő előnyeinek listája:

1. Az Ada az egyik leggyorsabb programozási nyelv. A program valójában százszor gyorsabban tud futni.

2. Ada teljesen elutasítja a "hülye" hibákat összekevert adattípusokkal.

3. Jó vezérlési támogatás még kevésbé súlyos hibák ellen is. (Ez négyszer kevesebb hibát ad az Ada programokban). Az alábbiakban erről részletesebben kitérünk.

4. A nyelv moduláris felépítése. Nagy és összetett programok támogatása.

5. Nagyon jó támogatás a modern többmagos processzorokhoz, valamint a több processzorral rendelkező szuperszámítógépekhez.

6. Egy "erős" modern programozási nyelv: objektum-orientált programozás, sablonok, rugalmas memóriafoglalás-kezelés, stb. stb. (Ne aggódj, ha nem érted a terminológiát: ez csak azt jelenti, hogy az Ada egy erőteljes modern nyelv).

7. Meglehetősen gyors fordítás (a programozó kevesebbet vár arra, hogy Ada elkészítse az .exe fájlt, és több szabadideje marad a programozásra és a hibakeresésre).

8. Mindenféle eszköz támogatása: számítógépek, beágyazott elektronika, űrhajók stb.

9. A nyelv olyan, hogy nem csak írni, hanem olvasni is kényelmes (ha programozó vagy).

10. Van egy ingyenes, de jó fejlesztői környezet (programozók számára készült programok).

11. Létezik egy nemzetközi szabvány.

12. A tizedes törtek lehetővé teszik, hogy például pénzügyi információkkal dolgozzon.

Megbízhatóság vagy sebesség

Természetes ellentmondás van a megbízhatóság és a gyorsaság követelménye között:

Ahhoz, hogy a program a lehető legnagyobb sebességgel fusson, fel kell hagyni a program helyességének ellenőrzésével futás közben.

Például van egy 10 számból álló lista. Ha a program megpróbálja megváltoztatni a 12. számot ebben a listában, az nonszensz. Ha az ellenőrzést nem végezték el, akkor ez a program a 12-es számunkat, szakkifejezéssel élve „mindenhová”, kiírja, és a program akár el is ronthatja magát, és értelmetlen tevékenységbe kezd.

Ezért a megbízhatóság érdekében a programnak ellenőriznie kell az ilyen értelmetlen műveleteket. De az ellenőrzések processzoridőt igényelnek.

Ennek az ellentmondásnak a feloldása Adában a következő: Két működési mód van: csekkekkel és ellenőrzés nélkül (pontosabban több mód van, mert lehetőség van bizonyos típusú ellenőrzések szelektív engedélyezésére, illetve letiltására). Ellenőrzésekkel többször lassabban tud működni egy program, de ellenőrzéseknél sokszor ritkábban fordul elő, hogy a program teljes hülyeséget kezdjen csinálni.

Az ellenőrzéseket gyakran bekapcsolva hagyják a program kezdeti hibakeresése (a hibák keresése és kijavítása) során, és kikapcsolják, amikor a program készen áll a sebesség növelésére és a processzor fűtéséhez szükséges villamosenergia-költség csökkentésére. Ha megbízol Adán programozással, megegyezünk, hogy engedélyezve hagyjuk-e a csekkeket, miután átadtam Önnek a kész programot.

Az Ada egyébként nem csak a legkiemelkedőbb hülyeségeket (például a 10 számból álló lista 12. elemét vagy a nullával való osztást), hanem a kevésbé súlyos hibákat is kész ellenőrizni. Az Adában az „erős” típusok egyedi rendszere képes például automatikusan ellenőrizni, hogy a hónap mindig az 1...12 intervallumban legyen (és nem például a 14. hónap). Ezek az ellenőrzések sokkal megbízhatóbbá teszik a programot, mint a többi programozási nyelvű program. Az Ada legújabb verziói ráadásul lehetővé teszik a programozó számára, hogy bármilyen ellenőrzést elvégezzen, amit szeretne.

Mítoszok a pokolról

1. tévhit: Az Ada egy „ősi” programozási nyelv

Valójában ez a mítosz csak az Ada első verziójára, az Ada83-ra igaz, amelyet 1983-ban fejlesztettek ki.

A legújabb verziója Az Ada specifikációi, az Ada2012 egy nagyon friss és modern programozási nyelv modern funkciókkal, például objektum-orientált programozással és sablontípusokkal.

Azt mondanám, hogy az Ada még "modernebb" nyelv, mint a többi modern programozási nyelv.

2. tévhit: Az Ada csak nagy rendszerek számára készült

Igen, az Adát elsősorban nagy rendszerekre tervezték, például a Pentagon összetett védelmi projektjeihez.

De ezek a „nagy” képességek kevésbé összetett rendszerekben is hasznosak. Általában egyszerűbbé és megbízhatóbbá teszik a programozást, még kisebb programok esetén is. Csökkentik a hibakeresési időt (hibakeresést), és így csökkentik teljes idő fejlesztés. Ez azt jelenti, hogy ugyanazt a munkát rövidebb idő alatt végzem el.

3. tévhit: Az Ada az elektronikához való

Valóban, Ada... jó nyelv programozás "beágyazott" rendszerekre (elektronika), de jó a hétköznapokra is személyi számítógépek. Egyszerűen univerzális.

4. tévhit: Az Ada drága technológiát igényel

Valójában van egy ingyenes Ada fordító (GNAT) a legtöbb modernhez operációs rendszerek. A professzionális programozók számára szükséges összes szoftvert tartalmazza.

Elsősorban Linux-szal dolgozom. És természetesen van GNAT Linuxhoz.

Ada hátrányai

Talán igazságtalan lenne csak az előnyökről beszélni, a hátrányokról nem.

Adának a következő hátrányai vannak:

1. Az Ada egy erős professzionális eszköz, ezért az ügyes használatához magasan képzett szakemberre van szükség (mint én!)

2. Sajnos az ada nem lett túl népszerű nyelv. Ennek eredményeként számos feladathoz hiányoznak az „összetevők” (kész programtöredékek). Például Adában nincsenek igazán jó összetevők a webhelyek fejlesztéséhez.

3. Egy Ada program valamivel hosszabb lehet, mint más programozási nyelvekben; ezért ami egy szövegoldalra elfér, mondjuk Pythonban (egyébként Pythonban is programozok), az Adában nem biztos, hogy egy oldalra fér.

4. Vannak más hátrányok is (amiről nem beszélek részletesen, mivel egy ilyen beszélgetés speciális terminológiát igényel), de ezek előnynek tűnhetnek más programozási nyelvek hátrányaival szemben.

Ha megkérdezünk egy hazai informatikust: „Mi az Ada?”, a legtöbben csak a vállát vonják meg meglepetésében, sőt, van, aki azt mondja, hogy ez egy halott nyelv, valamikor a Pentagon találta ki, ma pedig gyakorlatilag nem használják. Valójában még ma is az Ada egy teljesen virágzó programozási nyelv, amelyet különféle területeken aktívan használnak. Igaz, a legtöbb orosz programozó keveset tud róla.

Valószínűleg mindenki, akinek a párizsi metró tizennegyedik vonalát kellett használnia, meglepődött, amikor először látott egy vonatot, amelyben nem volt vezetőfülke. Ezen a vonalon a vonatmozgást teljes mértékben az Ada program irányítja.

Mindennek ellenére a technológia bizonyos területein Oroszország még mindig „előre jár a többieknél”. És ezek egyike a kétéltű repülőgépek tervezése és gyártása. Ezen a területen a nemzetközileg elismert vezető a TANTK névadója. G.M. Beriev. A cég a közelmúltban vásárolt Ada-alapú repüléselektronikai szoftverfejlesztő eszközöket legújabb Be-200 modelljének frissítéséhez.

Mindeközben a hazai informatikusok többsége jó esetben semmit sem tud az ada nyelvről, rosszabb esetben pedig teljesen téves elképzelése van az adáról, mint egy szörnynyelvről, amelyet valamikor a Pentagon talált ki katonai rendszerek fejlesztésére, és mára teljesen feledésbe merült.

Egy kis történelem

Az Ada programozási nyelv hivatalos születésnapjának 1983. február 17-ét tekinthetjük – az ANSI/MIL-STD-1815-A-1983 szabvány jóváhagyásának dátumát.

A Honvédelmi Minisztérium által az Ada létrehozására és megvalósítására irányuló projekt részeként hozott technikai és adminisztratív intézkedések teljes mértékben megakadályozták a nyelv dialektusainak megjelenését és elterjedését. 1983-tól napjainkig minden ipari megvalósítás támogatja a jelenlegi Ada szabványt. Amikor az Ada részhalmazokról van szó, ezeket nem a megvalósítás, hanem egy adott rendszerosztály fejlesztési szabványai határozzák meg.

1987-ben az ANSI szabványt változtatás nélkül átvették ISO-szabványként (ISO/IEC 8652), majd amikor a 90-es évek elején a szabvány felülvizsgálatának szükségessége vált szükségessé, a revíziós munka is irányítása alatt, ill. az Egyesült Államok Védelmi Minisztériumának pénzeszközei. Elindult egy új nemzetközi projekt, amely 1994 végén jóváhagyással és 1995 eleji megjelenéssel zárult új verzió ISO/IEC 8652 szabvány. Ez a dokumentum ma az Ada programozási nyelv definíciójaként szolgál.

A Szovjetunióban a 80-as évek elején alakult meg Munkacsoport az Ada programozási nyelven az Állami Tudományos és Technológiai Bizottságnál. A projekttel kapcsolatos minden nyílt információt gondosan gyűjtöttek és elemeztek, és a speciális szolgálatok erőfeszítései révén minősített információkhoz is jutottak. Szinte minden akkoriban használatos számítógép-architektúrára szerveztek projekteket az Ada megvalósítására, és ezek egy része nagyon sikeresnek bizonyult. A Szovjetunió összeomlása véget vetett ennek a tevékenységnek. Ma az Adát Oroszországban és a FÁK-ban az egyéni rajongók használják.

Mi az Ada

Minden modern ipari nyelv lényegében ugyanazt az alapvető képességkészletet kínálja, nem abban különböznek, hogy mit tesznek lehetővé, hanem abban, hogy pontosan hogyan. Az Ada azonban legalább két szempontból kibővíti a modern nyelvek szabványos képességeit. Először is, az Ada magas szintű programozási eszközöket biztosít az aszinkron folyamatokhoz. Másodszor, ez az egyetlen nyelv, amely minden fenntartás nélkül modulárisnak nevezhető.

Egy ilyen példa egyszerűen szükséges ahhoz, hogy megcáfoljuk azt a meglehetősen elterjedt mítoszt, hogy az Ada egy nagy, összetett és „nehéz” nyelv, amely csak szupernagy és szuperbonyolult rendszerek írására alkalmas. Valójában az Adával kis- és közepes méretű programokat lehet fejleszteni ugyanolyan sikerrel, mint a C, Pascal, BASIC és Java modern klónjai. Tehát egy klasszikus példa a „Hello, World!” programra. így néz ki Adában:

Könnyen belátható, hogy az Ada kód hasonló a prototípusnak választott Pascal kódhoz. Az első sor leírja ennek a lefordított modulnak a kapcsolatát más modulokkal – ez jelzi, hogy a Hello_World rutint az Ada.Text_IO modullal együtt kell lefordítani, amely az előre meghatározott könyvtár összetevője.

A következő program két aszinkron folyamatot határoz meg:

A Tasking_Example eljárás helyi deklarációk szakasza leírja az Outputter feladatot (6. sor; a 8–17. sor tartalmazza ennek a feladatnak a törzsét). Amikor a Tasking_Example eljárásnak megfelelő folyamatban a vezérlés eléri a 20-as sort, az Outputter feladatnak megfelelő folyamat az első utasítás végrehajtása előtt elindul, majd a két folyamat egymástól függetlenül aszinkron módon él és fut. A késleltetési utasítás végrehajtása (14. és 20. sor) a megfelelő folyamat felfüggesztéséből áll a megadott számú másodpercre. Így a Tasking_Example folyamat 20 másodpercre felfüggesztésre kerül, míg a kimeneti folyamat megkezdi a növekményes számlálóértékek nyomtatását, és minden egyes érték kinyomtatása után egy másodpercre szünetel. 20 másodperc elteltével a Tasking_Example folyamat a Befejezett jelzőt igaz értékre állítja, ezzel lezárva a ciklust az Outputter folyamatban. A Finished változó atomi adatobjektumként történő meghatározása (4. sor) lehetetlenné teszi ennek a változónak az értékének egyidejű olvasását és megváltoztatását.

Az alábbiakban egy függvénysablon található, amely lehetővé teszi két egydimenziós tömb komponensenkénti hozzáadását. Ez a sablon tetszőleges típusra állítható be, amely egy egydimenziós tömb, amelynek összetevőihez hozzárendelési és összeadási műveletek vannak meghatározva (az összeadásnak nem kell aritmetikai összeadásnak lennie).

Az 1–6. sorok az egyéni függvény deklarációját, a 8–20. sorok pedig a törzsét tartalmazzák. A beállítási paraméter lényegében egy tetszőleges egydimenziós szabályos típus, meghatározatlan indextartománnyal (4. sor), amelyről csak annyit tudni, hogy a komponens típusa tetszőleges, de a hozzárendelési művelet komponensekre van definiálva (2. sor), az index típusa tetszőleges diszkrét (4. sor) . Mivel két tömböt komponensenként fogunk hozzáadni, tudnunk kell, hogy mi az összeadási művelet az összetevőtípushoz. Mivel ez egy tetszőleges típus, kénytelenek vagyunk formális beállítási paraméterként átadni az összetevő típushoz tartozó összeadást (5. sor).

A függvény törzsében először ellenőrizzük, hogy az operandusok hossza megegyezik-e (12. sor), különben nincs értelme a komponensenkénti összeadásnak. Az operandushosszak egyeztetése nem garantálja az indextartományok illeszkedését, ezért az első argumentum indextartománya feletti ciklusban (15. sor) minden alkalommal ki kell számítanunk a második argumentum megfelelő összetevőjének indexét. Az Index típusnál ezt nem tudjuk megtenni, mivel csak azt tudjuk róla, hogy diszkrét, ezért a diszkrét típus értékétől átmegyünk a sorszámához (attribútum?Pos), kiszámítjuk a szükséges eltolódást a sorszámhoz. és térjen vissza az Index típus megfelelő értékéhez (attribútum?Val).

Vegye figyelembe, hogy a "+" Bal és Jobb (egyéni) függvény paraméterei Arr típusúak, amelyek indextartománya nincs megadva. A Bal és a Jobb azonban formális paraméterek, amelyek helyére a „+” függvény meghívásakor (a konkretizálás eredményeként) bizonyos ismert indextartományú tömbök kerülnek behelyettesítésre. A „+” függvény törzsében tömb attribútumokat (?Tartomány, ?First, ?Length) használunk, hogy információt szerezzünk az objektum indextartományáról.

Miért Ada?

Egy szoftverprojekt nyelvének kiválasztása korábban pusztán technikai kérdés volt. Mára ez stratégiai jelentőségű üggyé vált, amelynek messzemenő következményei vannak a projekt sikerére nézve. Soroljunk fel néhány okot, amelyek miatt az Ada nyelvet választották szoftverprojektek megvalósításához különböző cégek, vagy kötelezővé tették a pályázatokon való felhasználást.

  • A fejlesztés alatt álló rendszer megbízhatóságának növelésének vágya, mivel a szoftverhibák súlyos következményekkel járhatnak az emberi egészségre, a gazdaságra, a környezetre stb. (Az Ada beépített megbízhatósági funkciókkal rendelkezik.)
  • A rendszerfejlesztési és karbantartási költségek csökkentésének vágya.
  • Nemzetközi szabványok és nyelvi fordítók elérhetősége szinte minden platformon.
  • A szoftverfejlesztés fegyelmezett megközelítésének előnyei különösen jelentőssé válnak a szoftver méretének és összetettségének növekedésével.
Ada és Si

Vezetéskor összehasonlító elemzések A népszerű nyelvek olyan sok példányát feltörték, hogy ma ezt a témát gyakran a „vallási háborúk” kategóriába sorolják. Ezért korlátozzuk magunkat a hivatkozásra híres cikk, amely számos beszédes következtetést von le.

  1. Az Ada nyelvű programok fejlesztése 60%-kal kevesebbe kerül, mint a C nyelven megvalósított hasonló szoftverprojektek.
  2. Egy Ada programnak 9-szer kevesebb hibája van, mint egy C nyelvű programnak; egy C++ program még alacsonyabb jellemzőkkel rendelkezik, mint egy C program.
  3. Előnyben részesíti a C-t a tapasztalt és tapasztalatlan programozók számára, valamint azoknak a programozóknak, akiknek a csoportjukban a maximális és a minimális értékelés is van.
  4. Az ada nyelv tanulásának bonyolultsága nem haladja meg a C tanulás bonyolultságát.
  5. Az Ada programok megbízhatóbbak, mint a C programok.

E következtetések illusztrálására adunk egy példát a C-130J repülőgép fedélzeti szoftverének fejlesztésére a DO-178B szabvány A szintű követelményeinek megfelelően. Ugyanakkor a kód minősége 10-szer magasabb volt, mint az A szintű szoftvereknél a munkatermelékenység négyszeresére nőtt a hasonló szoftverprojektekhez képest.

Ada és Java

A Microsoft kénytelen volt az alábbi záradékot belefoglalni az operációs rendszerei licencszerződésébe ( www.microsoft.com/msdownload/ieplatform/ie/license.txt): "Megjegyzés a támogatással kapcsolatban Java nyelv...A Java technológia nem hibatűrő, és nem valós idejű vezérlőrendszereken belüli használatra készült... ahol a Java nyelv meghibásodása halált, sérülést vagy súlyos infrastruktúra- vagy környezetkárosodást okozhat. Sun Microsystems, Inc. köteles Microsoft cég tedd közzé ezt a figyelmeztetést."

Olyan cikkekre is rámutatunk, amelyek bemutatják az Ada nyelv előnyeit a Java-val szemben.

"Pokol" mítoszok

Az Ada gyakran olyan tartós tévhitekhez kötődik, amelyek mind a nyelv elterjedését, mind az Ada mint projektvégrehajtási nyelv tudatos megválasztását akadályozzák.

Az Ada egy halott nyelv, most már senki sem programoz. Valójában az Ada magabiztosan foglalja el a megnövekedett megbízhatósági követelményekkel járó nagy beágyazott rendszerek rést. A „dobozos” Windows-termékekhez képest az ilyen rendszerek nem annyira feltűnőek, mivel vagy egy példányban léteznek (mi értelme replikálni a metrószerelvények mozgását vezérlő programot), vagy a rendszer részeként terjesztik amelyeket felépítettek (fedélzeti szoftver).

Az Ada egy kizárólag katonai alkalmazásokra szánt nyelv. Az Ada valóban az Egyesült Államok Védelmi Minisztériumának közreműködésével készült, de semmiféle technikai, adminisztratív vagy egyéb ok nem akadályozza az Ada polgári rendszerek fejlesztésére való felhasználását. Az ezen a nyelven alapuló „civil” projektek száma ma összemérhető a „katonai” projektek számával.

Az Ada túl nagy és összetett nyelv ahhoz, hogy egy kis projektben használjuk. Az összes modern ipari nyelv mennyisége és összetettsége szinte azonos, és ennek meggyőződéséhez elegendő egyszerűen összehasonlítani a leírások mennyiségét. Ez a mítosz a 80-as évek elejére nyúlik vissza, amikor Adát Pascalhoz, Fortran 77-hez vagy BASIC-hez hasonlították.

Kevés olyan programozó van, aki ismeri Adát, a nyelv elsajátítása túlzott erőfeszítést és időt igényel. Valójában az igazi nehézséget az jelenti, hogy olyan szakembereket találjunk, akik megértik a beágyazott rendszerek sajátosságait, és képesek jó minőségű programokat készíteni számukra. Például a BAE, az Ada nyelv egyik aktív használója, nem követeli meg a jelöltektől, hogy ismerjék ezt a nyelvet; ehelyett olyan embereket keresnek, akik ismerik a beágyazott rendszereket és az ipari minőségű szoftverek létrehozásának folyamatait. Az ilyen emberek felvétele után mindössze két hétbe telik megtanítani őket a pokol nyelvére.

A miénk személyes tapasztalat azt mutatja, hogy azoknak a programozóknak, akik ismerik a Pascal bizonyos ízeit, mindössze néhány napra van szükségük ahhoz, hogy elkezdjék az egyszerű programok fejlesztését Adában.

A meglévő Ada technológiák nem hatékonyak; Mind a fordítókat, mind az általuk generált kódot alacsony teljesítmény jellemzi.

Ez a mítosz is a 80-as évek első felére nyúlik vissza, amikor megjelentek az Ada első implementációi, amelyek valójában csak „a szabványnak megfelelő Ada-fordító létezésének tételét bizonyították”. Elég egy sor egyszerű kísérletet lefolytatni úgy, hogy programozunk valamilyen modellproblémát Ada, Pascal és C/C++ nyelven, majd összehasonlítjuk (összehasonlítható fordítóparaméterekkel) a fordítási sebességet, a generált kód mennyiségét és a végrehajtás sebességét. biztos abban, hogy nincsenek konkrét hiányosságok, jellemző Adára, egyszerűen nem létezik. Megjegyzendő az is, hogy a 40 MB-ot meghaladó forrásszöveg volumenű GNAT programozási rendszer 90%-ban Adában valósult meg, forrásszövegekből való felépítése (folyamata során háromszor fordítja le magát) modern PC-n. legfeljebb fél óra. Ez igaz, de ne feledje, hogy a GNAT programozási rendszernek van egy nyilvánosan elérhető verziója, amely szabadon és legálisan beszerezhető a NYU szoftvertárából ( ftp://cs.nyu.edu/pub/gnat) a forrásszövegekkel együtt

Ingyenes sajt és hogyan kerüljük el az egérfogót

A GNAT (GNu Ada Translator) az Ada nyelv többplatformos megvalósítása, amely szinte minden modern ipari platformon létezik, és támogatja a kódgenerálást a népszerű beágyazott architektúrákhoz. GNAT ( www.gnat.com) teljes mértékben megvalósítja az Ada szabványt, beleértve azokat a könyvtárakat is, amelyeket a szabvány opcionálisnak minősít. A GNAT magában az Ada fordítón kívül olyan eszközöket is tartalmaz, amelyek magukban foglalják a kifejlesztett integrált fejlesztői környezetet és a többnyelvű grafikus hibakeresőt, amely lehetővé teszi többek között az aszinkron folyamatokkal működő programok viselkedésének vizsgálatát. A fordító és a kapcsolódó eszközök egyénileg is használhatók, ahonnan hívhatók parancssor, illetve az Ada programok integrált grafikus fejlesztőkörnyezete keretében. Minden GNAT összetevő, beleértve a fejlesztői környezetet is, ugyanazzal a felülettel rendelkezik minden platformon. A szabvány által leírt eszközök teljes megvalósítása mellett a GNAT a szabvány által engedélyezett bővítmények gazdag készletét kínálja. A GNAT az Ada megvalósítása a gcc többnyelvű programozási rendszerben, amely különböző beviteli nyelvek front-end fordítóiból áll, közös kódgenerátorral, ami nagymértékben leegyszerűsíti a különböző programozási nyelveken implementált komponenseket tartalmazó programok fejlesztését.

A GNAT-ot a kezdetektől GPL licenc alatt fejlesztették és terjesztették. Sajnos sok mítosz is kapcsolódik a GPL-hez. Így sokan úgy vélik, hogy a GPL alá tartozó programokat nem szervezett rajongói csoportok fejlesztik, és teljesen ingyenesen terjesztik; Ennek eredményeként az ilyen programok megbízhatósága és funkcionalitása sok kívánnivalót hagy maga után, és nem teszi lehetővé alkalmazásukat komoly projektekben. A GNAT esetében ez messze nem igaz. Hogy erről meggyőződjünk, elég megnézni azon cégek listáját, amelyek szerződést kötöttek fejlesztőivel technikai támogatás: Boeing, British Aerospace, Lockheed, Ericsson, SAAB, Avionics stb.

A demóverziók ingyenes biztosítása sok szoftverfejlesztőnél bevett gyakorlat. A GNAT annyiban különbözik, hogy a szabadon elérhető nyilvános verzió abszolút teljes verzió technológia, minden jogi ill technikai korlátok használatához. Számos komoly projektet sikeresen végrehajtottak a GNAT nyilvános verziói alapján. A Mars Express európai automata állomás Beagle 2 leszállójának szoftvere, amely jelenleg a Mars felé tart ( www.beagle2.com/index.htm), az Orosz Föderáció Védelmi Minisztériumának automatizált dokumentum-kommunikációs állomása ( www.ada-ru.org/prj_doc.html). A nyilvános verziók egyetlen hátránya, hogy a fejlesztő nem nyújt technikai támogatást hozzájuk.

Következtetés

Összefoglalva, az Ada nyelv az integritás, a következetesség, a megbízhatóság és a hatékonyság ideális kombinációját kínálja a fejlesztőknek. A nyelv támogatja a kreatív kreativitást és innovációt, miközben biztosítja a szoftverfejlesztés fegyelmezettségét és ipari szintjét a megvalósításhoz szoftverrendszerek nagy jelentőségű.

Irodalom
  1. Benjamin Brosgol, Bevezetés az Ada 95-be. www.embedded.com/story/OEG20021211S0034
  2. Stephen Zeigler, C és Ada fejlesztési költségeinek összehasonlítása. www.adaic.com/whyada/ada-vs-c/cada_art.html www.ada-ru.org. Az orosz nyelven megjelent ada nyelvű könyvek kommentárokkal ellátott bibliográfiája megtalálható a honlapon


Kapcsolódó kiadványok