Ada Resource Association
Ada oversigt
Ada er et moderne programmeringssprog designet til store, langvarige applikationer-og især indlejrede systemer – hvor pålidelighed og effektivitet er afgørende. Det blev oprindeligt udviklet i begyndelsen af 1980 ‘ erne (Denne version er generelt kendt som Ada 83) af et hold ledet af Dr. Jean Ichbiah på CII-Honeyvelbull i Frankrig. Sproget blev revideret og forbedret på en opadgående kompatibel måde i begyndelsen af 1990 ‘ erne under ledelse af Mr. Tucker Taft fra Intermetrics i USA. Det resulterende sprog, Ada 95, var det første internationalt standardiserede (ISO) objektorienterede sprog. I regi af ISO blev en yderligere (mindre) revision afsluttet som en ændring af standarden; denne version af sproget er kendt som Ada 2005. En mere markant revision blev afsluttet (inklusive støtte til programanmærkninger) og er kendt som Ada 2012. En anden væsentlig revision forventes afsluttet i 2022.
navnet “Ada” er ikke et akronym; det blev valgt til ære for Augusta Ada Lovelace (1815-1852), en matematiker, der undertiden betragtes som verdens første programmør på grund af sit arbejde med Charles Babbage. Hun var også datter af digteren Lord Byron.
Ada ser betydelig brug over hele verden inden for områder med høj integritet / sikkerhedskritisk / høj sikkerhed, herunder kommercielle og militære flyflyelektronik, flyvekontrol, jernbanesystemer og medicinsk udstyr. Ada er et fremragende undervisningssprog til både indledende og avancerede computervidenskabskurser, og det har været genstand for betydelig universitetsforskning, især inden for realtidsteknologier.
Sprogoversigt
Ada er mangesidet. Fra et perspektiv er det et klassisk stakbaseret generelt sprog, der ikke er bundet til nogen specifik udviklingsmetode. Det har en simpel syntaks, strukturerede kontrolerklæringer, fleksible datakompositionsfaciliteter, stærk typekontrol, traditionelle funktioner til kodemodularisering (“underprogrammer”) og en mekanisme til at detektere og reagere på ekstraordinære kørselsforhold (“undtagelseshåndtering”).
men det indeholder også meget mere:
Skalarområder
i modsætning til sprog baseret på C-syntaks (såsom C++, Java og C#) tillader Ada programmereren simpelthen og eksplicit at specificere det interval af værdier, der er tilladt for variabler af skalære typer (heltal, flydende punkt, fast punkt eller optællingstyper). Den forsøgte tildeling af en out-of-range værdi forårsager en run-time fejl. Evnen til at specificere intervalkontraints gør programmørens hensigt eksplicit og gør det lettere at opdage en vigtig kilde til kodning og brugerinputfejl.
programmering i det store
det originale ada 83-design introducerede pakkekonstruktionen, en funktion, der understøtter indkapsling (“information Skjul”) og modularisering, og som gør det muligt for udvikleren at kontrollere navneområdet, der er tilgængeligt inden for en given kompileringsenhed. Ada 95 introducerede begrebet” børneenheder ” og tilføjede betydelig fleksibilitet og lette designet af meget store systemer. Ada 2005 udvidede sprogets modulariseringsfaciliteter ved at tillade gensidige referencer mellem pakkespecifikationer, hvilket gjorde det lettere at interface med sprog som Java.
generiske skabeloner
en nøgle til genanvendelige komponenter er en mekanisme til parametrering af moduler med hensyn til datatyper og andre programenheder, for eksempel en stakpakke til en vilkårlig elementtype. Ada opfylder dette krav gennem en facilitet kendt som “generics”; da parameteriseringen udføres på kompileringstidspunktet, straffes ikke driftstidens ydeevne.
objektorienteret programmering (OOP)
Ada 83 var objektbaseret, hvilket tillod opdeling af et system i moduler svarende til abstrakte datatyper eller abstrakte objekter. Fuld OOP-support blev ikke leveret, da det for det første ikke syntes at være påkrævet i realtidsdomænet, der var Adas primære mål, og for det andet ville det tilsyneladende behov for automatisk affaldsindsamling på et oo-sprog have forstyrret forudsigelig og effektiv ydeevne.
store realtidssystemer har dog ofte komponenter som GUI ‘ er, der ikke har realtidsbegrænsninger, og som kunne udvikles mest effektivt ved hjælp af OOP-funktioner. Til dels af denne grund leverer Ada 95 omfattende support til OOP gennem sin “tagged type” – facilitet: klasser, polymorfisme, arv og dynamisk binding. Ada 95 kræver ikke automatisk affaldsindsamling, men leverer snarere definitionsfunktioner, der gør det muligt for udvikleren at levere typespecifikke lagringsgenvindingsoperationer (“færdiggørelse”). Ada 2005 forudsat yderligere OOP funktioner, herunder Java – lignende grænseflader og traditionel operation invocation notation.
Ada er metologisk neutral og pålægger ikke en “distribueret overhead” for OOP. Hvis en applikation ikke har brug for OOP, behøver OOP-funktionerne ikke bruges, og der er ingen kørselsstraf.
samtidig programmering
Ada leverer en struktureret facilitet på højt niveau til samtidighed. Enheden for samtidighed er en programenhed kendt som en ” opgave.”Opgaver kan kommunikere implicit via delte data eller eksplicit via en synkron kontrolmekanisme kendt som mødet. Et delt dataelement kan defineres abstrakt som et” beskyttet objekt ” (en funktion introduceret i Ada 95) med operationer udført under gensidig udelukkelse, når de påberåbes fra flere opgaver. Asynkrone opgaveinteraktioner understøttes også, specifikt timeouts og opgaveafslutning. Sådan asynkron adfærd udsættes under visse operationer for at forhindre muligheden for at efterlade delte data i en inkonsekvent tilstand. De nyeste versioner af Ada inkluderer lette mekanismer til at drage fordel af multicore-arkitekturer, hvilket giver mulighed for meget effektiv parallel computing, samtidig med at bærbarheden bevares og forbliver inden for den sikre og veldefinerede ada-samtidsmodel.
systemprogrammering
både i “core” – sproget og Systemprogrammeringsbiblioteket leverer Ada de nødvendige funktioner, så programmereren kan komme tæt på udstyret. Du kan f.eks. angive bitlayoutet for felter i en post, definere justeringen og størrelsen, placere data på bestemte maskinadresser og udtrykke specialiserede eller tidskritiske kodesekvenser i samlingssprog. Du kan også skrive afbrydelseshåndterere i Ada ved hjælp af den beskyttede type facilitet.
realtidsprogrammering
Ada ‘ s tasking-funktioner giver dig mulighed for at udtrykke almindelige realtids-idiomer (periodiske opgaver, begivenhedsdrevne opgaver), og Realtidsbilaget indeholder flere faciliteter, der giver dig mulighed for at undgå ubegrænsede prioriterede inversioner. En beskyttet objektlåsepolitik er defineret, der bruger prioriterede lofter; dette har en særlig effektiv implementering i Ada (mutekser er ikke påkrævet), da beskyttede operationer ikke har lov til at blokere. Ada 95 definerede en opgaveforsendelsespolitik, der grundlæggende kræver, at opgaver køres, indtil de er blokeret eller forhindret, og Ada 2005 introducerede flere andre, herunder tidligste Deadline først.
systemer med høj integritet
med sin vægt på principper for lydprogramteknik understøtter Ada udviklingen af applikationer med høj integritet, herunder dem, der skal certificeres i henhold til sikkerhedsstandarder som DO-178B og sikkerhedsstandarder som de fælles kriterier. For eksempel betyder stærk indtastning, at data beregnet til et formål ikke får adgang til via upassende operationer; fejl såsom behandling af pointers som heltal (eller omvendt) forhindres. Og ADA s array bounds kontrol forhindrer buffer overskridelse sårbarheder, der er almindelige i C og C++.
det fulde sprog er imidlertid upassende i en sikkerhedskritisk applikation, da generaliteten og fleksibiliteten kan forstyrre sporbarheds- / certificeringskravene. Ada løser dette problem ved at levere et kompilatordirektiv, pragma-begrænsninger, der giver dig mulighed for at begrænse sprogfunktionerne til en veldefineret delmængde (for eksempel eksklusive dynamiske OOP-faciliteter).
udviklingen af Ada har set den fortsatte stigning i Understøttelse af sikkerhedskritiske og højsikkerhedsapplikationer. Ada 2005 standardiserede Ravenscar-profilen, en samling af samtidsfunktioner, der er kraftige nok til programmering i realtid, men enkle nok til at gøre certificering praktisk. Ada 2012 introducerede annotationsfaciliteter til tilføjelse af præ-betingelser, post-betingelser og invarianter til programmer. Ada 2022 udvider disse med yderligere anmærkninger til standard indledende betingelser, stabile egenskaber, ikke-blokerende og global objektbrug. Disse kan tjene både til run – time kontrol og som input til statiske analyseværktøjer.
Ada fordele Resume
- hjælper dig med at designe sikker og pålidelig kode
- reducerer udviklingsomkostninger
- understøtter nye og skiftende teknologier
- letter udviklingen af komplekse programmer
- hjælper med at gøre kode læsbar og bærbar
- reducerer certificeringsomkostninger for sikkerhed-kritisk programmel
Ada funktioner Resume
- objektorienteret programmering
- stærk typing
- abstraktioner, der passer til programdomæne
- generisk programmering/skabeloner
- undtagelse håndtering
- faciliteter til modulær organisering af kode
- standardbiblioteker til I/O, strenghåndtering, numerisk computing, containere
- systemprogrammering
- samtidig programmering
- realtidsprogrammering
- distribueret systemprogrammering
- numerisk behandling
- grænseflader til andre sprog (C, COBOL, Fortran)
kort sagt, Ada er et internationalt standardiseret sprog, der kombinerer objektorienterede programmeringsfunktioner, Velkonstruerede samtidsfaciliteter, support i realtid, og indbygget pålidelighed. Et passende værktøj til at løse de virkelige problemer, som programmeludviklere står overfor i dag, Ada bruges i en række større industrier til at designe programmer, der beskytter virksomheder og liv.
Leave a Reply