Ada Resource Association
Ada Oversikt
Ada er et moderne programmeringsspråk designet for store, langlivede applikasjoner – og innebygde systemer spesielt-der pålitelighet og effektivitet er avgjørende. Den ble opprinnelig utviklet tidlig på 1980-tallet (denne versjonen er vanligvis Kjent Som Ada 83) av et team ledet av Dr. Jean Ichbiah PÅ CII-Honeywell-Bull I Frankrike. Språket ble revidert og forbedret på en oppadgående kompatibel måte tidlig på 1990-tallet, under Ledelse Av Mr. Tucker Taft fra Intermetrics I USA Det resulterende språket, Ada 95, var det første internasjonalt standardiserte (ISO) Objektorienterte Språket. I REGI AV ISO ble en ytterligere (mindre) revisjon fullført som en endring av standarden; Denne versjonen av språket er Kjent Som Ada 2005. En mer betydelig revisjon ble fullført (inkludert støtte for programkommentarer) og er kjent Som Ada 2012. En annen betydelig revisjon forventes fullført i 2022.
navnet ” Ada ” er ikke et akronym; Det ble valgt Til ære For Augusta Ada Lovelace (1815-1852), en matematiker som noen ganger regnes som verdens første programmerer på Grunn av hennes arbeid Med Charles Babbage. Hun var også datter Av Poeten Lord Byron.
Ada ser betydelig bruk over hele verden i høy integritet / sikkerhetskritiske / høysikkerhetsdomener, inkludert kommersielle og militære flyavionikk, flytrafikkontroll, jernbanesystemer og medisinsk utstyr. Med sin utførelse av moderne programvare engineering prinsipper Ada Er en utmerket undervisningsspråk for både innledende og avanserte informatikk kurs, og Det har vært gjenstand for betydelig universitetsforskning, spesielt innen real-time teknologier.
Språkoversikt
Ada er mangesidig. Fra ett perspektiv er det et klassisk stabelbasert generelt språk, ikke knyttet til noen bestemt utviklingsmetodikk. Den har en enkel syntaks, strukturerte kontroll uttalelser, fleksible datasammensetning fasiliteter, sterk type kontroll, tradisjonelle funksjoner for kode modularisering (“delprogrammer”), og en mekanisme for å oppdage og svare på eksepsjonelle run-time forhold (“unntak håndtering”).
men det inkluderer også mye mer:
Skalarområder
I Motsetning til språk basert På c-syntaks (For Eksempel C++, Java og C#), Lar Ada programmereren enkelt og eksplisitt angi verdiområdet som er tillatt for variabler av skalartyper (heltall, flyttall, fast punkt eller opplistingstyper). Forsøk på tildeling av en verdi utenfor området forårsaker en kjøretidsfeil. Muligheten til å spesifisere rekkevidde contraints gjør programmerer hensikt eksplisitt og gjør det lettere å oppdage en viktig kilde til koding og bruker input feil.
Programmering i den store
det opprinnelige ada 83-designet introduserte pakkekonstruksjonen, en funksjon som støtter innkapsling (“informasjon gjemmer”) og modularisering, og som lar utvikleren kontrollere navneområdet som er tilgjengelig innenfor en gitt kompileringsenhet. Ada 95 introduserte begrepet “barneenheter”, og la til betydelig fleksibilitet og lette utformingen av svært store systemer. Ada 2005 utvidet språkets modularisering fasiliteter ved å tillate gjensidige referanser mellom pakkespesifikasjoner, og dermed gjøre det enklere å grensesnitt med språk som Java.
Generiske maler
en nøkkel til gjenbrukbare komponenter er en mekanisme for parameterisering av moduler med hensyn til datatyper og andre programenheter, for eksempel en stakkpakke for en vilkårlig elementtype. Ada oppfyller dette kravet gjennom et anlegg kjent som “generikk”; siden parameterisering er gjort på kompileringstid, blir kjøretid ikke straffet.
Objektorientert Programmering (Oop)
Ada 83 var objektbasert, slik at partisjonering av et system i moduler som svarer til abstrakte datatyper eller abstrakte objekter. Full oop-støtte ble ikke gitt siden det for det første ikke syntes å være nødvendig i sanntidsdomenet Som Var adas primære mål, og for det andre ville det tilsynelatende behovet for automatisk søppelsamling på ET oo-språk ha forstyrret forutsigbar og effektiv ytelse.
imidlertid har store sanntidssystemer ofte komponenter som Gui som ikke har sanntidsbegrensninger, og som kan utvikles mest effektivt ved HJELP AV OOP-funksjoner. Delvis av Denne grunn leverer Ada 95 omfattende støtte til OOP, gjennom sitt” tagged type ” – anlegg: klasser, polymorfisme, arv og dynamisk binding. Ada 95 krever ikke automatisk søppelrydding, men leverer definisjonsfunksjoner som gjør at utvikleren kan levere typespesifikke lagringsgjenvinningsoperasjoner (“sluttføring”). Ada 2005 ga flere OOP-funksjoner, inkludert Java – lignende grensesnitt og tradisjonell operation invocation notasjon.
Ada er metologisk nøytral og pålegger ikke EN” distribuert overhead ” FOR OOP. Hvis et program ikke trenger OOP, MÅ IKKE oop-funksjonene brukes, og det er ingen kjøretidsstraff.
Samtidig programmering
Ada leverer et strukturert anlegg på høyt nivå for samtidighet. Enheten for samtidighet er et program enhet kjent som en ” oppgave.”Oppgaver kan kommunisere implisitt via delte data eller eksplisitt via en synkron kontrollmekanisme kjent som rendezvous. Et delt dataelement kan defineres abstrakt som et “beskyttet objekt” (en funksjon introdusert I Ada 95), med operasjoner utført under gjensidig utelukkelse når de påberopes fra flere oppgaver. Asynkrone aktivitetsinteraksjoner støttes også, spesielt tidsavbrudd og oppgaveavslutning. Slik asynkron oppførsel er utsatt under visse operasjoner, for å hindre muligheten for å forlate delte data i en inkonsekvent tilstand. De nyeste versjonene av Ada inkluderer lette mekanismer for å dra nytte av multicore arkitekturer, noe som åpner for svært effektiv parallell databehandling, samtidig bevare bærbarhet og gjenværende innenfor sikker Og veldefinert ada samtidighet modell.
Systemprogrammering
Både I” kjerne ” – språket og Systemprogrammeringsvedlegget, leverer Ada de nødvendige funksjonene for å tillate programmereren å komme nær maskinvaren. Du kan for eksempel angi bitoppsettet for felt i en post, definere justering og størrelse, plassere data på bestemte maskinadresser og uttrykke spesialiserte eller tidskritiske kodesekvenser i assemblerspråk. Du kan også skrive avbruddshandlere I Ada, ved hjelp av den beskyttede typen.
real-time programmering
Adas tasking funksjoner lar deg uttrykke vanlige sanntids idiomer (periodiske oppgaver, hendelsesdrevne oppgaver), og Real-Time Annex gir flere fasiliteter som lar deg unngå ubundne prioriterte inversjoner. En beskyttet objektlåsingspolicy er definert som bruker prioriterte tak; dette har en spesielt effektiv implementering I Ada (mutexes er ikke nødvendig) siden beskyttede operasjoner ikke har lov til å blokkere. Ada 95 definert en oppgave utsending policy som i utgangspunktet krever oppgaver å kjøre til blokkert Eller preempted, Og Ada 2005 innført flere andre, Inkludert Tidligste Fristen Først.
systemer med høy integritet
Med sin vekt på lydprogramvareutviklingsprinsipper Støtter Ada utviklingen av applikasjoner med høy integritet, inkludert de som må sertifiseres mot sikkerhetsstandarder som DO-178B og sikkerhetsstandarder som Common Criteria. For eksempel betyr sterk skriving at data beregnet for ett formål ikke vil bli tilgjengelig via upassende operasjoner; feil som å behandle pekere som heltall (eller omvendt) forhindres. Og adas kontroll av arraygrenser forhindrer bufferoverløpssårbarheter som er vanlige I C og C++.
det fulle språket er imidlertid upassende i en sikkerhetskritisk applikasjon, siden generalitet og fleksibilitet kan forstyrre sporbarhet / sertifiseringskrav. Ada løser dette problemet ved å levere et kompilatordirektiv, pragma-Restriksjoner, som lar deg begrense språkfunksjonene til et veldefinert delsett (for eksempel, unntatt dynamiske oop-fasiliteter).
utviklingen Av Ada har sett den fortsatte økningen i støtten til sikkerhetskritiske og høysikkerhetsapplikasjoner. Ada 2005 standardiserte Ravenscar-Profilen, en samling samtidighetsfunksjoner som er kraftige nok til sanntidsprogrammering, men enkle nok til å gjøre sertifiseringen praktisk. Ada 2012 introdusert merknad fasiliteter for å legge pre-forhold, post-forhold, og invariants til programmer. Ada 2022 utvider disse med flere merknader for standard innledende forhold, stabile egenskaper, nonblocking og global objektbruk. Disse kan tjene både for kjøretidskontroll og som input til statiske analyseverktøy.
Ada Fordeler Sammendrag
- hjelper deg med å designe sikker og pålitelig kode
- Reduserer utviklingskostnader
- Støtter nye og skiftende teknologier
- Forenkler utvikling av komplekse programmer
- Bidrar til å gjøre kode lesbar og bærbar
- Reduserer sertifiseringskostnader for sikkerhetskritiske programvare
Oppsummering Av Ada-Funksjoner
- objektorientert programmering
- sterk skriving
- abstraksjoner for å tilpasse programdomenet
- generisk programmering/maler
- unntak håndtering
- Fasiliteter for modulær organisering av kode
- standardbiblioteker for I/O, strenghåndtering, numerisk databehandling, beholdere
- Systemprogrammering
- Samtidig programmering
- Sanntidsprogrammering
- Distribuert systemprogrammering
- Numerisk behandling
- grensesnitt til andre språk (c, cobol, fortran)
Kort Sagt Er Ada et internasjonalt standardisert språk som kombinerer objektorienterte programmeringsfunksjoner, godt konstruerte samtidighetsfasiliteter, sanntidsstøtte og innebygd pålitelighet. Ada er et passende verktøy for å håndtere de virkelige problemene som programvareutviklere står overfor i dag, Og Brukes i en rekke store bransjer for å designe programvare som beskytter bedrifter og liv.
Leave a Reply