Ada (limbaj de programare)

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 21 august 2020; verificările necesită 26 de modificări .
Ada
Semantică multi- paradigma : competitivă , generalizată, imperativă , orientată pe obiecte , programare distribuită , paralelă
Clasa de limba limbaj de programare cu spectru larg [d] ,limbaj de programare cu mai multe paradigmeprogramare imperativ , limbajdeprogramareorientat pe obiecteșilimbaj de programare
Tipul de execuție compilate
Aparut in 1980
Autor
  • MIL-STD-1815/Ada 83: Jean Ishbia
  • Ada 95: Tucker Teft
  • Ada 2005: Tucker Teft
Dezvoltator Ishbia, Jean și S. Tucker Taft [d] [1]
Eliberare Ada 2012 (10 decembrie 2012 ) ( 2012-12-10 )
Versiune de testare Ada 2012 [3] (noiembrie 2011 ) ( 2011-11 )
Tip sistem static , strict , sigur , nominativ
Implementări majore AdaCore GNAT , MapuSoft
Ada-C/C++ Changer (AdaMagic) [4] , Compilatorul
Green Hills Software Optimizing Ada 95,
PTC ObjectAda [5] , Scorul
DDC-I
Dialectele SPARK , profil Ravenscar
A fost influențat ALGOL 68 , Pascal , C++ (Ada 95), Smalltalk (Ada 95), Java (Ada 2005), Eiffel (Ada 2012)
influențat C++, Eiffel , M10, M9.3, MAYA, Seed7 , PL/SQL , Nim
Site-ul web adaic.org
 Fișiere media la Wikimedia Commons

Ada ( Ada ) este un limbaj de programare creat în 1979-1980 ca parte a unui proiect al Departamentului de Apărare al SUA pentru a dezvolta un limbaj de programare unificat pentru sistemele încorporate (adică sisteme de control în timp real pentru sisteme automate). În primul rând, au avut în vedere sistemele de control la bord pentru instalațiile militare (nave, avioane, tancuri, rachete, obuze etc.). Dezvoltatorii nu au avut sarcina de a crea un limbaj universal, așa că deciziile luate de autorii lui Ada ar trebui luate în contextul caracteristicilor domeniului ales. Limba este numită după Ada Lovelace .

Caracteristici

În forma sa originală, standardizată în 1983, Ada este un limbaj de programare structurat , modular , care conține instrumente de programare a proceselor paralele de nivel înalt. Sintaxa lui Ada este moștenită din limbi precum Algol sau Pascal , dar extinsă și făcută mai riguroasă și mai logică. Ada este un limbaj puternic tipizat , exclude lucrul cu obiecte care nu au tipuri , iar conversiile automate ale tipului sunt reduse la un minim absolut: este permisă turnarea implicită a valorii unui număr întreg comun sau a unui tip numeric real într-un tip numeric compatibil. [6] . În standardul din 1995, instrumentele de programare de bază orientate pe obiecte au fost adăugate limbajului , în standardul din 2007 aceste instrumente au fost completate, astfel încât Ada modernă este un limbaj de programare orientat pe obiecte.

Sintaxă

Limbajul este insensibil la majuscule. Sintaxa este asemănătoare cu Algol, în spiritul limbajelor de la sfârșitul anilor 1970: toate structurile de control care încep cu un cuvânt cheie se termină cu un cuvânt cheie și vă permit să plasați orice număr de operatori în interior, ceea ce elimină dezavantajul adesea criticat inerent. în Algol-60 și Pascal: necesitatea utilizării frecvente a „paranteze operator” begin-end. Detaliile de sintaxă sunt concepute pentru a reduce șansa de erori accidentale. De exemplu, este interzisă folosirea mai multor litere de subliniere la rând în identificatori. Cuvintele cheie finale pentru diferite structuri de control sunt diferite: o instrucțiune condiționată ifse termină cu o combinație end if, bucle cu o combinație end loop, un operator cu alegere multiplă end caseetc. Gestionarea excepțiilor structurale este suportată la nivelul de sintaxă al limbajului .

Limbajul are un sistem de tip dezvoltat, atât încorporat, cât și generat de programator. Există multe modalități de a crea noi tipuri, limbajul acceptă două concepte diferite: „subtip” și „tip derivat”. Variabilele unui tip și ale unui subtip sunt compatibile, variabilele unui tip și tipul său derivat nu sunt.

Procedurile și funcțiile acceptă parametrii de intrare și ieșire, transmiterea parametrilor după nume și parametrii cu valori implicite. Este suportată redefinirea procedurilor, funcțiilor și operatorilor  - crearea mai multor variante ale unei proceduri, funcție sau operator cu același nume, dar semnături diferite (tipuri și număr de parametri).

Programele sunt modulare, mecanismul de control al importului-export al descrierilor între module include două directive diferite: una pentru conectarea altui modul ( with), cealaltă pentru importul descrierilor acestuia ( use). De asemenea, este posibil să redenumiți modulul la import ( rename) - această opțiune vă permite să utilizați identificatori care sunt mai convenabil pentru programator pentru a desemna pachetul. Pachetele (unul dintre tipurile de module) pot conține un antet și o parte privată - ceea ce este conținut în ele nu este exportat și nu este disponibil pentru alte module. Mecanismul modulelor generalizate (generice) este suportat : pachete, proceduri și funcții care vă permit să descrieți algoritmi de procesare a datelor fără a specifica un anumit tip.

Structurile de suport pentru programarea paralelă sunt încorporate în limbaj : sunt acceptate conceptele de „sarcină” (un fragment de program executat în paralel), „intrare de sarcină” (un mijloc de sincronizare și comunicare a sarcinilor paralele), este suportat mecanismul de întâlnire (un protocol). pentru interacțiunea sarcinilor paralele prin introducerea uneia dintre ele), există un operator de alegere SELECTpentru organizarea interacțiunii condiționale între fire (alegerea unei sarcini paralele cu care să interacționeze, în funcție de disponibilitatea pentru un rendezvous și de alte condiții). În principiu, instrumentele de programare paralelă disponibile în limbaj sunt suficiente pentru a rezolva o clasă mare de sarcini care necesită procesare paralelă fără a recurge la instrumente externe, precum biblioteci suplimentare sau API-uri ale sistemului de operare.

Pentru a îndeplini cerințele de fiabilitate, limbajul este conceput astfel încât să fie detectate cât mai multe erori posibil în etapa de compilare . În plus, una dintre cerințele în dezvoltarea limbajului a fost lizibilitatea cât mai ușoară a textelor programelor , chiar și în detrimentul ușurinței scrisului [7] . Rezultatul acestei abordări a fost o sintaxă oarecum „grea” și multe restricții care sunt absente în cele mai comune limbaje de uz general (cum ar fi C și C++ ), de exemplu, aceeași tastare puternică . Acest lucru a dus la formarea ideii de Ada ca un limbaj complex, obscur și incomod de utilizat [8] .

Salut Lume!

Exemplu de program Salut, lume! »:

cu Ada.Text_IO ; procedura Bună ziua este folosirea Ada.Text_IO ; începe Put_Line ( "Bună ziua, lume!" ); sfarsit Buna ziua ;

Aici, pentru a utiliza funcția, Put_Linepachetul care o conține este Ada.Text_IOimportat folosind constructul use, care face posibilă apelarea funcției după nume fără calificare - specificând numele pachetului care conține funcția din apel.

Istorie

Dezvoltarea limbii a făcut parte dintr-o competiție internațională organizată și finanțată de Departamentul Apărării al SUA . Scopul dezvoltării a fost obținerea unui limbaj de programare care să devină unul unificat pentru dezvoltarea proiectelor comandate de departamentul militar, în principal pentru dezvoltarea de sisteme militare încorporate și pentru calculatoare militare mari (bazat pe procesorul iAPX 432 de la Intel ). Lucrările au început în 1975 cu formarea unui set de cerințe lingvistice care să satisfacă pe deplin dezvoltatorii de sisteme de acest tip. Lista inițială de cerințe, emisă sub numele de cod „Strawman” („Straw”), a fost înaintată spre revizuire unui număr de organizații și firme, timp de doi ani a fost rafinată constant, trecând prin „Woodenman” („Wooden”). , "Tinman" ("Tin"), "Ironman" ("Iron") și în cele din urmă s-a transformat într-un document final numit "Steelman" ("Steel"). Steelman a fost lansat în iunie 1978 [DoD 1978] [9] .

Chiar înainte de finalizarea finală a formării cerințelor, analiza a arătat că niciunul dintre limbajele de programare existente nu satisface suficient cerințele, așa că s-a luat decizia de a dezvolta un nou limbaj. Un concurs pentru crearea sa a fost anunțat în 1977 , dezvoltatorii au fost rugați să se bazeze pe una dintre cele trei limbi: Pascal , Algol-68 sau PL/1 . Din cele 15 proiecte depuse la concurs, 4 au fost selectate (toate bazate pe Pascal). Aceste proiecte au fost trimise pentru dezvoltare ulterioară. În etapa următoare, din 4 proiecte au fost selectate două, dintre care, după o nouă revizuire, unul a fost selectat. Această limbă a fost numită „Ada” - grupul care a dezvoltat-o, condus de francezul Jean Ishbia , a numit limba în onoarea Augustei Ada King Lovelace (1815-1852), fiica poetului George Byron , care a dezvoltat programe pentru computerul lui Babbage. și este considerat primul programator din lume.

În 1983, limba a fost standardizată oficial de ANSI . Standardul lingvistic ANSI /MIL-STD-1815-A-1983 a fost aprobat la 17 februarie 1983. Departamentul Apărării al SUA a făcut „Ada” o marcă înregistrată, interzicând eliberarea traducătorilor limbii care nu au trecut procedura oficială de testare pentru conformitatea cu standardele. Procedura a constat în rularea unui număr mare (mai mult de 1000) de programe de testare (așa-numitul set ACVC) prin intermediul compilatorului testat , pentru fiecare dintre acestea rezultatul testului a fost determinat fără ambiguitate: fie compilare cu succes, fie emiterea unui mesaj de eroare specific. Testarea a fost efectuată conform principiului „totul sau nimic” - dacă a existat o eroare în procesarea a cel puțin un caz de testare, se considera că compilatorul nu a trecut testul, iar testarea era valabilă numai pe platforma hardware și software de pe pe care s-a realizat. În acest fel, posibilitatea formării dialectelor limbii Adei a fost cioplită din răsputeri.

În 1987, limba Ada a fost standardizată oficial de ISO . De atunci, Departamentul Apărării al SUA a plasat limba în domeniul public .

Până în 1990, în lume existau deja aproximativ 200 de compilatoare care corespundeau standardului limbajului Ada.

În 1995, a fost adoptat un nou standard Ada, cunoscut sub numele de Ada95. Au fost introduse instrumente de programare obiect în limbaj. În plus, limbajul a fost completat cu instrumente mai avansate pentru interacțiunea cu programele scrise în alte limbi.

În martie 2007, au fost publicate modificări ale standardului Ada [10] . Au atins în principal posibilitățile de programare orientată pe obiecte : au fost introduse interfețe , a fost adoptată sintaxa pentru apelarea unei metode, care este comună pentru majoritatea limbajelor hibride, și au fost făcute o serie de completări.

În 2012, ISO a adoptat și a publicat un nou standard lingvistic [11] .

Ada în URSS și Rusia

În 1984, jurnalistul sovietic Melor Sturua din ziarul Izvestia a dat următoarea evaluare a limbajului de programare Ada:

Limba Pentagonului este dușmanul lumii. Limba „Adei” este vocea iadului termonuclear... În limbajul „Adei” se aude un blestem asupra rasei umane.

- M. G. Sturua . 1984 și „1984” [12]

În anii 1980, un grup de lucru privind limba Ada a fost organizat în cadrul Comitetului de Stat al URSS pentru știință și tehnologie . Grupul a fost implicat în studiul tuturor datelor deschise (și, conform zvonurilor, obținute prin informații secrete) despre limba lui Ada și a investigat posibilitatea și oportunitatea dezvoltării și utilizării Ada în URSS. Activitățile acestui grup au condus până la sfârșitul anilor 1980 la dezvoltarea compilatoarelor Ada pentru aproape toate computerele utilizate în URSS. Mai multe cărți despre limba Adei au fost publicate în limba rusă.

La Universitatea de Stat din Moscova s-a lucrat pentru a crea propriile pachete pentru testarea traducătorilor de anunțuri pentru conformitatea cu standardele. La Universitatea de Stat din Leningrad , pentru a crea un sistem Ada, a fost folosit sistemul Pallada, care a fost dezvoltat anterior pentru implementarea Algol-68, care a fost transferat la Ada. Sistemul conține un mediu de dezvoltare integrat, un compilator, un editor de text, un depanator, biblioteci, un sistem de control al versiunilor și un interpret de comenzi.

După prăbușirea URSS, lucrările la distribuirea Adei au fost practic întrerupte. Adevărat, au fost adoptate trei programe pentru dezvoltarea de software pe Ada (în Ministerul Apărării , Ministerul Aviației Civile și Ministerul Educației și Științei ), dar dezvoltarea lor este lentă și necoordonată. Drept urmare , limba Ada este puțin cunoscută în Rusia , majoritatea programatorilor ruși moderni o consideră o „limbă moartă” și nu știu nimic despre ea. Ada este folosită în Rusia și CSI de către entuziaștii individuali. Cu toate acestea, limbajul este folosit pentru dezvoltarea de software industrial. Există mai multe proiecte dezvoltate pe Ada și care lucrează în Rusia. Printre ei:

  • Stația de comunicare documentară a Ministerului Apărării din RF. Sarcina principală este de a asigura schimbul de informații documentare în rețelele de transmisie de date ale Ministerului Apărării al Federației Ruse. Complexul software și hardware a fost dezvoltat în comun de către Organizația de producție „Inginerie informatică și instrumente de automatizare” (hardware) și un grup de programatori din sectorul off-piste al Centrului de control al traficului aerian din Caucazia de Nord „Strela”. Software-ul complexului este scris în limbajul de programare Ada folosind compilatorul GNAT . Suportul pentru calculul distribuit este oferit de o componentă suplimentară GLADE .
  • Un complex de echipamente standard de zbor, navigație și comunicații pentru aeronava amfibie rusă Beriev Be-200 . Dezvoltarea a fost realizată de Institutul de Cercetare a Echipamentelor Aviatice din Jukovski împreună cu compania americană Allied Signal, Florida, SUA. A fost folosit complexul de dezvoltare a sistemelor iad al companiei DDC-I pe platforma Intel 80486 .

Critica

Încă de la înființare, Ada a fost criticată de unele autorități recunoscute în domeniul dezvoltării limbajului de programare, în primul rând pentru complexitatea sintaxei și volumul mare. În special, limbajul a fost criticat de Charles Hoare și Niklaus Wirth (care au participat cu proiectul lor la această competiție, dar au renunțat după prima etapă), precum și de Edsger Dijkstra .

Dijkstra se îndoia că un limbaj la fel de complex precum Ada poate fi văzut și gestionat.

Dacă Ada va emite un standard, este de dorit ca acesta să fie documentat fără ambiguitate. Cel puțin două grupuri au încercat să facă acest lucru; ca urmare, ambele au produs aproximativ 600 de pagini de text formal. Acest lucru este mult mai mult decât este necesar pentru a vă asigura că este imposibil să stabiliți măcar ferm că ambele documente definesc aceeași limbă. Eroarea în aparenta imposibilitate de administrare a acestor două documente nu constă în cele două grupuri care le-au compilat, nu în formalismul pe care l-au adoptat, ci doar în limbajul în sine: fără a oferi o definiție formală dacă dezvoltatorii săi pot ascunde că oferă un monstru de negestionat. . Că Ada va reduce problemele de programare și va crește fiabilitatea designurilor noastre până la limite acceptabile este doar unul dintre acele basme pe care doar oamenii cu experiență militară le pot crede.

Science Fiction și realitatea științifică în informatică (Edsger W. Dijkstra, EWD952)

Hoare și-a exprimat regretul că „zdrăngăniile și bibelourile au avut prioritate față de cerințele fundamentale de fiabilitate și siguranță” și a avertizat împotriva „o armată de rachete care zboară în direcția greșită din cauza unei erori nedetectate în compilatorul Ada”. Niklaus Wirth a vorbit mai rezervat, dar și negativ. El a spus: „Se aruncă prea mult în programator. Nu cred că după ce am studiat o treime din Ada, se poate lucra normal. Dacă nu stăpâniți toate detaliile limbii, atunci în viitor vă puteți împiedica de ele, iar acest lucru va duce la consecințe neplăcute . Jean Ishbia , liderul echipei de dezvoltare a Adei, în timp ce își exprimă „respectul și admirația” pentru Wirth, nu a fost de acord, spunând: „Wirt crede în soluții simple la probleme complexe. Nu cred în asemenea minuni. Problemele complexe necesită soluții complexe.”

Procedura de verificare a conformității compilatorului cu standardul lingvistic prin testare ridică, de asemenea, îndoieli. Din considerente generale, este clar că testarea poate găsi inconsecvențe, dar nu poate garanta corectitudinea. O confirmare practică a acestui lucru este faptul că compilatorii certificați, atunci când au fost testați pe un set diferit de teste, au constatat neconformitatea cu standardul [14] .

Susținătorii Adei susțin că singura alternativă la un limbaj mare și complex în proiectele mari este utilizarea mai multor limbaje compacte, care creează inevitabil probleme de compatibilitate, de care Ada a fost inventată pentru a scăpa. Ei observă, de asemenea, că noțiunea de complexitate în dezvoltarea Ada este doar parțial adevărată: scrierea unui program simplu în Ada durează mai mult timp decât în ​​alte limbaje mai puțin formale, cum ar fi C , dar depanarea și întreținerea programelor, în special a programelor mari și complexe, este mult simplificat. Potrivit lui Stephen Zeiger de la Rational Software Corporation [15] , dezvoltarea de software în Ada este în general cu 60% mai ieftină, iar programul dezvoltat are de 9 ori mai puține defecte decât utilizarea limbajului C.

Distribuție, perspective

În practică, s-a dovedit că Ada, după ce a ocupat nișa destinată ei în dezvoltarea militară și conexe ale sistemelor încorporate, nu a depășit această nișă nici în Occident, nici în URSS, nici în spațiul post-sovietic. Există multe motive pentru aceasta. Oponenții limbii se bazează pe complexitatea și neajunsurile sale, susținătorii vorbesc, în primul rând, despre circumstanțele obiective ale apariției limbii și aspectele negative ale procesului de implementare a acesteia. Potrivit lui S. I. Rybin, cercetător senior la Universitatea de Stat din Moscova, consultant al AdaCore EU, expert în limbajul Ada al grupului de lucru ISO privind standardul lingvistic [14] , Ada își datorează eșecurile din două motive principale:

  • În timpul proiectării limbajului, Pentagonul a presupus că toate programele noi vor fi create numai în Ada. Din această cauză, Ada a primit mijloace extrem de primitive de a interacționa cu programe în alte limbi. În practică, s-a dovedit că a scrie totul în Ada, în general, este nerealist (fie și numai pentru că a devenit necesar să interacționăm cu dezvoltări gata făcute în alte limbi). Prin urmare, în industriile în care nu exista o cerință strictă de a „scrie doar în Ada”, au fost preferate alte limbi, mai adaptate mediului multilingv. În standardul din 1995, problema interoperabilității cu alte limbi a fost rezolvată, dar s-a pierdut timp.
  • În mod paradoxal, răspândirea Adei a fost împiedicată de sprijinul financiar și organizatoric al Pentagonului. Programele Ada scrise pentru armata rulau pe cea mai puternică tehnologie de calcul disponibilă, așa că dezvoltatorii de compilatoare s-au preocupat mai întâi de trecerea testelor ACVC și abia apoi de eficiența compilatorului și a codului pe care l-a creat. La începutul anilor 1980, a început boom-ul microcomputerelor, iar traducătorii pentru limbile comune (Pascal, C, BASIC) au fost rapid optimizați pentru sistemele cu consum redus. Pentru Ada, nu a existat niciun stimulent pentru o astfel de modernizare, drept urmare, computerele personale care au devenit cea mai mare parte a parcului de calculatoare din lume câțiva ani mai târziu s-au găsit fără un traducător Ada de înaltă calitate. Desigur, Ada a pierdut acest segment de piață. Abia relativ recent a apărut compilatorul GNAT , de înaltă calitate și productiv, dar și aici a fost pierdut timp.

Cu toate acestea, conform unor previziuni prudente, cu hardware mai ieftin și proliferarea sistemelor încorporate cu software complex, piața de programe din Ada poate crește semnificativ:

… Ada se află destul de ferm în nișa sistemelor mari încorporate cu cerințe ridicate de fiabilitate și este puțin probabil să cedeze loc cuiva din această nișă în viitorul apropiat. Pe măsură ce performanța componentelor hardware crește în timp ce costul lor scade, sistemele încorporate devin din ce în ce mai complexe și se poate dovedi că piața potențială pentru aplicațiile Ada va crește în curând semnificativ.

— Interviu cu S.I. Rybina [14]

În plus, Ada are, deși foarte limitate, aplicații în învățământul superior. Cursuri speciale despre Ada sunt predate la Universitatea de Stat din Moscova și la Universitatea Harkov. Cu toate acestea, conform aceluiași S.I. Rybin ,

... acum, în spațiul post-sovietic în domeniul industriei software și al educației, s-a dezvoltat un cerc vicios evident: în industrie practic nu știu despre Ada, respectiv, nu există nicio cerere din partea industriei pentru educație pentru antrenează specialiști Ada, iar din universități vin oameni noi în industrie, care practic nu știu nimic despre Ada.

Sisteme de operare

O serie de sisteme de operare sunt scrise în Ada, printre care MaRTE Arhivat 10 iulie 2017 la Wayback Machine , RTEMS (un sistem open source dezvoltat de DARPA , Departamentul de Apărare al SUA , utilizat în sistemele de rachete și la bordul Mars Reconnaissance Orbiter ca un modulul radio de control „Electra”), Ravenskar , RTOS-32 . Mai multe proiecte pentru crearea de sisteme de operare pe Ada sunt în curs de dezvoltare, printre care - AuroraUX  - un proiect de rescrie a nucleului OpenSolaris și apoi - DragonFly BSD , precum și un proiect de creare a unui sistem Lovelace pe microkernel -ul L4 .

Anterior, existau și alte sisteme de operare scrise în Ada, printre care - BiiN, Pulse, AdaOS.

În prezent, sistemul de operare Muen [16] este în curs de dezvoltare , scris în Ada și SPARK, OS educațional Ada Bare bones [17] , Microkernel Ada (TAMP [18] ) sunt folosite.

Compilatoare Ada

Nume Companie Versiune Platforme țintă Site-ul web
Compilatoare de proiecte DragonLace (compilatoare GNAT AUX și viitoare DRACO Ada) proiect comunitar Ada - toate versiunile limbii; versiuni de compilator: 4.9.x sau 6.3.x (pentru diverse platforme) LLVM, DragonFly, FreeBSD, NetBSD, OpenBSD, OmniOS, Android http://www.dragonlace.net/ Arhivat 31 martie 2018 la Wayback Machine
Ada-C/C++ Changer (bazat pe tehnologia AdaMagic) MapuSoft Ada 83, Ada 95, un subset din Ada 2005 C, C++ www.mapusoft.com Arhivat 21 noiembrie 2016 la Wayback Machine
Ada/Ed Universitatea din New York Ada 83 MS-DOS x86 , UnixWare www2.informatik.uni-stuttgart.de
AdaMagic SofCheck Ada 95 ? www.sofcheck.com Arhivat 4 martie 2021 la Wayback Machine
AdaMULTI Software-ul Green Hills Ada 83, Ada 95, C , C++ , Fortran Solaris SPARC , GNU / Linux x86 , Windows www.ghs.com Arhivat pe 15 ianuarie 2021 la Wayback Machine
DEC Ada Hewlett Packard Ada 83 openvms h71000.www7.hp.com
GNAT AdaCore Ada 83, Ada 95, Ada 2005, Ada 2012, C Solaris SPARC, Linux x86/ x86-64 , Windows, Java Virtual Machine , altele libre.adacore.com Arhivat pe 12 februarie 2005 la Wayback Machine
ICC Irvine Compiler Corporation Ada 83, Ada 95 DEC VAX / VMS , HP 9000/700 , Solaris SPARC, DEC Alpha OSF/1 , PC Linux, SGI IRIX , Windows www.irvine.com Arhivat pe 2 mai 2009 la Wayback Machine
Janus/Ada Software RR Ada 83, Ada 95 SCO , UnixWare , Interactive , MS-DOS , Windows www.rrsoftware.com Arhivat pe 21 ianuarie 2022 la Wayback Machine
MAXAda Concurente Ada 95 Linux/ Xeon , PowerPC www.ccur.com Arhivat pe 3 septembrie 2011 la Wayback Machine
ObjectAda PTC Ada 95, Ravenskar Solaris SPARC, VxWorks , HP-UX , IBM AIX , Linux, Windows, Java Virtual Machine /Java cu suport pentru browser www.ptc.com Arhivat 10 octombrie 2016 la Wayback Machine
PowerAda Sisteme OC Ada 83, Ada 95 Linux, AIX (Ada 95); IBM System 370/390 (Ada 83) www.ocsystems.com Arhivat 24 august 2010 la Wayback Machine
Apex rațional IBM Rational Ada 83, C, C++ Solaris SPARC Linux www-01.ibm.com Arhivat pe 27 septembrie 2009 la Wayback Machine
SCOR DDC-I Ada 83, Ada 95, C, Fortran Solaris SPARC, Windows www.ddci.com
XD Ada SWEP-EDS Ada 83 OpenVMS Alpha/VAX www.swep-eds.com
XGC Ada Software-ul XGC Ada 83, Ada 95, C Solaris SPARC, PC Linux, Windows ( Cygwin ) www.xgc.com Arhivat din original pe 9 februarie 2013.
LLVM ( Mașină virtuală de nivel scăzut ) Grupul de dezvoltatori LLVM pe majoritatea sistemelor de tip UNIX și Windows llvm.org
A# (portul Ada pe platforma Microsoft .NET ) Academia Forțelor Aeriene ale Statelor Unite ( GNU ) Windows asharp.martincarlisle.com Arhivat pe 2 iulie 2011 la Wayback Machine

Cu excepția LLVM , GNAT și XGC (pentru unele platforme), compilatoarele de mai sus sunt plătite. Unele companii, cum ar fi Aonix , oferă demonstrații gratuite care sunt fie limitate în timp, fie în funcție de funcționalitate.

Mediile de dezvoltare NetBeans [19] și Eclipse au pluginuri pentru lucrul cu Ada.

Influență

Sintaxa lui Ada este reprodusă în mare măsură în limbaje precum PL/SQL (și mai târziu PL/pgSQL ), VHDL , SPARK .

În limbajele de programare E [20] și Clarity [21] , apoi în multe altele: de exemplu, în limbajele Erlang , Fortress , Chapel , X10 , D și Go , ideile de calcul distribuit, multitasking, multithreaded , care sunt implementate de limba în sine, au fost dezvoltate în continuare, și nu de biblioteci externe, care au fost utilizate pentru prima dată pe scară largă în practică în limbajul Ada.

Instrumente

  • Open-DO Arhivat 1 aprilie 2018 la Wayback Machine - un proiect de pregătire a instrumentelor software specializate calificate open source și componente certificabile pentru Open-DO ("DO-178C"), o nouă revizuire a standardului avionic pentru software-ul aeropurtat.

Arhive de conținut

  • Materiale pentru limbajul de programare Ada, 1981–1990 . Institutul Charles Babbage , Universitatea din Minnesota. Include literatură despre produse software dezvoltate pentru limba Ada, publicații guvernamentale SUA, inclusiv rapoarte de proiect Ada 9X, rapoarte tehnice, documente de lucru, buletine informative; și informații despre grupul de utilizatori.
  • Biblioteca publică Ada (PAL) este un depozit gratuit de sute de megaocteți de informații legate de Ada. PAL conține programe, componente, instrumente, informații generale și tutoriale pentru Ada. Are o adresă de locație canonică binecunoscută: [1] (WUArchive - Washington University Public Archives Address ... [128.252.135.4]), care, însă, nu este întotdeauna disponibilă în rețea. Walnut Creek a lansat 2 CDROM-uri în 1995, care sunt o copie completă a Bibliotecii Publice Ada (PAL) din 28 aprilie 1995. Imaginile acestor discuri sunt disponibile [22] la Internet Archive.

Organizații

  • Autoritatea de evaluare a conformității Ada (ACAA) [23] este responsabilă de gestionarea evaluărilor de conformitate Ada.

Note

  1. 1 2 3 https://blog.adacore.com/author/taft
  2. https://www.adahome.com/Rogues/taft.html
  3. Ada 2012 Language Reference Manual . ada-auth.org. Data accesului: 27 ianuarie 2014. Arhivat din original la 28 februarie 2011.
  4. MapuSoft Ada-C/C++ Changer (AdaMagic) . MapuSoft (22 iulie 2016). Data accesului: 12 februarie 2017. Arhivat din original pe 21 noiembrie 2016.
  5. PTC ObjectAda . PTC. Consultat la 12 februarie 2017. Arhivat din original la 10 octombrie 2016.
  6. Ada Language Reference Guide. 4.6. Conversie de tip. . Preluat la 26 iulie 2019. Arhivat din original la 1 ianuarie 2019.
  7. Ada Language Reference Guide 83. Capitolul 1.3. Obiective și surse de dezvoltare . Consultat la 22 noiembrie 2007. Arhivat din original pe 7 septembrie 2008.
  8. Vadim Stankevici. Doamna Iadului . Consultat la 22 noiembrie 2007. Arhivat din original pe 22 mai 2008.
  9. Document Steelman . Preluat la 23 martie 2019. Arhivat din original la 23 martie 2019.
  10. Standard actualizat pe iso.org . Consultat la 10 aprilie 2008. Arhivat din original pe 2 mai 2007.
  11. Ada 2012 . Consultat la 4 noiembrie 2016. Arhivat din original la 12 septembrie 2016.
  12. Izvestia, 15 ianuarie 1984 (link inaccesibil) . Consultat la 30 iunie 2008. Arhivat din original pe 15 septembrie 2008. 
  13. Bryabrin V. M. Software pentru calculatoare personale. Moscova: Nauka, 1988.
  14. 1 2 3 Interviu cu S. I. Rybin . Consultat la 10 aprilie 2008. Arhivat din original pe 15 mai 2008.
  15. Stephen Zeigler, Comparing Development Costs of C and Ada. Arhivat din original pe 4 aprilie 2007.
  16. Muen | SK pentru x86/64  (engleză) . muen.codelabs.ch. Consultat la 13 decembrie 2017. Arhivat din original la 12 noiembrie 2020.
  17. ↑ Ada Bare bones - OSDev Wiki  . wiki.osdev.org. Data accesului: 13 decembrie 2017. Arhivat din original pe 13 decembrie 2017.
  18. Luke A. Guest. tamp: Proiectul Ada Microkernel . — 05-12-2017. Arhivat din original pe 11 iunie 2018.
  19. Pluginuri Ada pentru NetBeans . Preluat la 2 octombrie 2010. Arhivat din original la 5 august 2017.
  20. Mark S. Miller. Proiectul ENative . drepturile.org. Preluat la 7 ianuarie 2017. Arhivat din original pe 2 februarie 2017.
  21. Brian T. Lewis, L. Peter Deutsch, Theodore C. Goldstein, Brian T. Lewis, Theodore C. Goldstein. Clarity MCode: O reprezentare intermediară retargetable pentru compilare  // notificări ACM SIGPLAN. - 1995-01-01. - T. 30 . — p. 119–128 . Arhivat din original pe 8 mai 2013.
  22. Colecția de CD-ROM Walnut Creek: Software gratuit: Descărcare, împrumut și streaming gratuit: Internet  Archive . archive.org. Preluat: 1 octombrie 2018.
  23. Evaluarea conformității Ada . www.ada-auth.org. Preluat la 4 februarie 2019. Arhivat din original la 10 martie 2019.

Link -uri

Literatură

Standarde
  • ISO/IEC 8652:1987 - Limbaje de programare - Ada
  • GOST 27831-88 - „Limbaj de programare ADA” (corespunde cu ISO 8652:1987)
  • ISO/IEC 8652:1995 - Tehnologia informației - Limbaje de programare - Ada (Ada95)
  • ISO/IEC 8652:2012 - Tehnologia informației - Limbaje de programare - Ada (ediția actuală a standardului)
  1. Generarea numerelor aleatorii în Ada 9X . ftp.mcs.anl.gov. Preluat la 4 februarie 2019. Arhivat din original la 7 august 2021.