Ada (programmeringsspråk)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 21 augusti 2020; kontroller kräver 26 redigeringar .
Ada
Semantik multiparadigm : konkurrenskraftig , generaliserad, imperativ , objektorienterad , distribuerad programmering, parallell
Språkklass brett spektrum programmeringsspråk [d] ,multiparadigm programmeringsspråk,imperativt programmeringsspråk,objektorienterat programmeringsspråkochprogrammeringsspråk
Utförandetyp sammanställt
Framträdde i 1980
Författare
  • MIL-STD-1815/Ada 83: Jean Ishbia
  • Ada 95: Tucker Teft
  • Ada 2005: Tucker Teft
Utvecklaren Ishbia, Jean och S. Tucker Taft [d] [1]
Släpp Ada 2012 (10 december 2012 ) ( 2012-12-10 )
Testversion Ada 2012 [3] (november 2011 ) ( 2011-11 )
Typ system statisk , strikt , säker , nominativ
Stora implementeringar AdaCore GNAT ,
MapuSoft Ada-C/C++ Changer (AdaMagic) [4] ,
Green Hills Software Optimizing Ada 95-kompilator,
PTC ObjectAda [5] ,
DDC-I Score
Dialekter SPARK , Ravenscar profil
Blivit påverkad ALGOL 68 , Pascal , C++ (Ada 95), Smalltalk (Ada 95), Java (Ada 2005), Eiffel (Ada 2012)
påverkas C++, Eiffel , M10, M9.3, MAYA, Seed7 , PL/SQL , Nim
Hemsida adaic.org
 Mediafiler på Wikimedia Commons

Ada ( Ada ) är ett programmeringsspråk skapat 1979-1980 som en del av ett US Department of Defense - projekt för att utveckla ett enhetligt programmeringsspråk för inbyggda system (det vill säga realtidskontrollsystem för automatiserade system). Först och främst tänkte de på kontrollsystemen ombord för militära anläggningar (fartyg, flygplan, stridsvagnar, missiler, granater, etc.). Utvecklarna hade inte till uppgift att skapa ett universellt språk, så de beslut som fattas av författarna till Ada bör fattas i samband med funktionerna i det valda ämnesområdet. Språket är uppkallat efter Ada Lovelace .

Funktioner

I sin ursprungliga form, standardiserad 1983, är Ada ett strukturerat , modulärt programmeringsspråk som innehåller parallella processprogrammeringsverktyg på hög nivå. Adas syntax ärvs från språk som Algol eller Pascal , men utökas och görs mer rigorös och logisk. Ada är ett starkt skrivet språk , det utesluter arbete med objekt som inte har typer , och automatiska typkonverteringar reduceras till ett absolut minimum: det är tillåtet att implicit casta värdet av ett vanligt heltal eller verklig numerisk typ till en kompatibel numerisk typ [6] . I 1995 års standard lades grundläggande objektorienterade programmeringsverktyg till språket , i 2007 års standard kompletterades dessa verktyg, så moderna Ada är ett objektorienterat programmeringsspråk.

Syntax

Språket är skiftlägesokänsligt. Syntaxen är Algol-liknande, i andan av språken från det sena 1970-talet: alla kontrollstrukturer som börjar med ett nyckelord slutar med ett nyckelord och låter dig placera valfritt antal operatorer inuti, vilket eliminerar den ofta kritiserade nackdelen som är inneboende i Algol-60 och Pascal: behovet av frekvent användning av "operatörsfästen" begin-end. Syntaxdetaljerna är utformade för att minska risken för oavsiktliga fel. Det är till exempel förbjudet att använda flera understreck i rad i identifierare. De sista nyckelorden för olika kontrollstrukturer är olika: en villkorlig sats ifslutar med en kombination end if, loopar med en kombination end loop, en flervalsoperator end caseetc. Strukturell undantagshantering stöds på språkets syntaxnivå .

Språket har ett utvecklat typsystem, både inbyggt och genererat av programmeraren. Det finns många sätt att skapa nya typer, språket stödjer två olika begrepp: "subtyp" och "derived type". Variabler av en typ och en undertyp är kompatibla, variabler av en typ och dess härledda typ är inte det.

Procedurer och funktioner stöder in- och utgångsparametrar, överföring av parametrar med namn och parametrar med standardvärden. Omdefiniering av procedurer, funktioner och operatorer stöds  - skapandet av flera varianter av en procedur, funktion eller operator med samma namn, men olika signaturer (typer och antal parametrar).

Program är modulära, mekanismen för att kontrollera import/export av beskrivningar mellan moduler inkluderar två olika direktiv: ett för att ansluta en annan modul ( with), det andra för att importera dess beskrivningar ( use). Det är också möjligt att byta namn på modulen vid import ( rename) - det här alternativet låter dig använda identifierare som är bekvämare för programmeraren att utse paketet. Paket (en av modulerna) kan innehålla en rubrik och en privat del - det som finns i det exporteras inte och är inte tillgängligt för andra moduler. Mekanismen för generaliserade (generiska) moduler stöds : paket, procedurer och funktioner som låter dig beskriva databehandlingsalgoritmer utan att ange en specifik typ.

Parallella programmeringsstödstrukturer är inbyggda i språket : begreppen "uppgift" (ett programfragment som körs parallellt), "uppgiftsinmatning" (ett sätt att synkronisera och kommunicera parallella uppgifter) stöds, mötesmekanismen stöds (ett protokoll för interaktion av parallella uppgifter genom inmatning av en av dem, finns det en valoperatör SELECTför att organisera villkorad inter-tråd-interaktion (välja en parallell uppgift att interagera med, beroende på beredskapen för ett möte och vissa andra villkor). I princip är de parallella programmeringsverktygen som finns tillgängliga på språket tillräckliga för att lösa en stor klass av uppgifter som kräver parallell bearbetning utan att tillgripa externa verktyg, såsom ytterligare bibliotek eller operativsystems API:er.

För att uppfylla kraven på tillförlitlighet är språket utformat på ett sådant sätt att så många fel som möjligt upptäcks i kompileringsstadiet . Ett av kraven i utvecklingen av språket var dessutom programtexternas lättaste läsbarhet , till och med på bekostnad av lättheten att skriva [7] . Resultatet av detta tillvägagångssätt var en något "tungvikts" syntax och många begränsningar som saknas i de vanligaste allmänna språken (som C och C ++ ), till exempel samma starka typning . Detta ledde till bildandet av idén om Ada som ett komplext, obskyrt och obekvämt språk att använda [8] .

Hej världen!

Exempelprogram Hej världen! »:

med Ada.Text_IO ; procedur Hej är att använda Ada.Text_IO ; börja Put_Line ( "Hej, värld!" ); slut Hej ;

Här, för att använda funktionen, importeras Put_Linepaketet som innehåller den Ada.Text_IOmed användningskonstruktionen, vilket gör det möjligt att anropa funktionen vid namn utan förbehåll - med angivande av namnet på paketet som innehåller funktionen i anropet.

Historik

Utvecklingen av språket var en del av en internationell tävling som organiserades och finansierades av det amerikanska försvarsdepartementet . Målet med utvecklingen var att få fram ett programmeringsspråk som kunde bli ett enhetligt språk för utveckling av projekt beställda av militäravdelningen, främst för utveckling av inbyggda militära system och för stora militära datorer (baserat på iAPX 432 -processorn från Intel ). Arbetet började 1975 med bildandet av en uppsättning språkkrav som fullt ut skulle tillfredsställa utvecklarna av system av denna typ. Den initiala listan över krav, utfärdad under kodnamnet "Strawman" ("Straw"), lämnades in för granskning till ett antal organisationer och företag, under två år förfinades den konsekvent och gick igenom "Woodenman" ("Wooden") , "Tinman" ("Tin"), "Ironman" ("Iron") och förvandlades så småningom till ett slutdokument som heter "Steelman" ("Stål"). Steelman släpptes i juni 1978 [DoD 1978] [9] .

Redan innan det slutgiltiga slutförandet av kravbildningen visade analysen att inget av de befintliga programmeringsspråken uppfyller kraven tillräckligt, så beslutet togs att utveckla ett nytt språk. En tävling för dess skapande tillkännagavs 1977 , utvecklarna ombads att basera på ett av tre språk: Pascal , Algol-68 eller PL/1 . Av de 15 projekt som lämnats in till tävlingen valdes 4 ut (alla baserade på Pascal). Dessa projekt skickades för vidareutveckling. I nästa steg, av 4 projekt, valdes två ut, varav ett valdes efter ytterligare en revidering. Detta språk kallades "Ada" - gruppen som utvecklade det, ledd av fransmannen Jean Ishbia , döpte språket för att hedra Augusta Ada King Lovelace (1815-1852), dotter till poeten George Byron , som utvecklade program för Babbages dator och anses vara den första programmeraren i världen.

1983 standardiserades språket officiellt av ANSI . Språkstandarden ANSI /MIL-STD-1815-A-1983 godkändes den 17 februari 1983. Det amerikanska försvarsdepartementet har gjort "Ada" till ett registrerat varumärke, vilket förbjuder utgivningen av översättare av språket som inte har klarat det officiella testförfarandet för efterlevnad av standarder. Proceduren bestod i att köra ett stort antal (mer än 1000) testprogram (den så kallade ACVC-uppsättningen) genom kompilatorn som testades , för var och en av vilka testresultatet otvetydigt bestämdes: antingen framgångsrik kompilering eller utfärdande av en mycket specifikt felmeddelande. Testningen utfördes enligt "allt eller ingenting"-principen - om det uppstod ett fel vid bearbetningen av minst ett testfall ansågs kompilatorn inte ha klarat testet, och testningen var endast giltig på hård- och mjukvaruplattformen på vilket det genomfördes. På detta sätt kvävdes möjligheten till bildandet av dialekter av Ada-språket i knoppen.

1987 standardiserades Ada-språket officiellt av ISO . Sedan dess har det amerikanska försvarsdepartementet placerat språket i offentlig egendom .

År 1990 fanns det redan cirka 200 kompilatorer i världen som motsvarade Ada-språkstandarden.

1995 antogs en ny Ada-standard, känd som Ada95. Objektprogrammeringsverktyg introducerades i språket. Dessutom kompletterades språket med mer avancerade verktyg för att interagera med program skrivna på andra språk.

I mars 2007 publicerades ändringar av Ada-standarden [10] . De berörde främst möjligheterna med objektorienterad programmering : gränssnitt infördes , syntaxen för att anropa en metod, som är vanlig för de flesta hybridspråk, antogs och ett antal tillägg gjordes.

2012 antog och publicerade ISO en ny språkstandard [11] .

Ada i Sovjetunionen och Ryssland

1984 gav den sovjetiska journalisten Melor Sturua i tidningen Izvestia följande bedömning av programmeringsspråket Ada:

Pentagonspråket är världens fiende. Språket "Ada" är det termonukleära helvetets röst... På "Adas" språk hör man en förbannelse över mänskligheten.

- M. G. Sturua . 1984 och "1984" [12]

På 1980-talet organiserades en arbetsgrupp om Ada-språket under USSR State Committee for Science and Technology . Gruppen var engagerad i studien av alla öppna (och, enligt rykten, erhållna av hemlig intelligens) data om Ada-språket och undersökte möjligheten och ändamålsenligheten att utveckla och använda Ada i Sovjetunionen. Denna grupps verksamhet ledde i slutet av 1980-talet till utvecklingen av Ada-kompilatorer för nästan alla datorer som används i Sovjetunionen. Flera böcker om Ada-språket har publicerats på ryska.

Vid Moscow State University har man arbetat med att skapa sina egna paket för att testa annonsöversättare för överensstämmelse med standarder. I Leningrad State University , för att skapa ett Ada-system, användes Pallada-systemet, som tidigare utvecklats för implementering av Algol-68, som överfördes till Ada. Systemet innehåller en integrerad utvecklingsmiljö, en kompilator, en textredigerare, en debugger, bibliotek, ett versionskontrollsystem och en kommandotolk.

Efter Sovjetunionens kollaps avbröts arbetet med distributionen av Ada praktiskt taget. Det är sant att tre program för utveckling av mjukvaruutveckling på Ada antogs (i försvarsministeriet , ministeriet för civil luftfart och ministeriet för utbildning och vetenskap ), men deras utveckling är långsam och okoordinerad. Som ett resultat är Ada-språket föga känt i Ryssland , de flesta moderna ryska programmerare anser att det är ett "dött språk" och vet ingenting om det. Ada används i Ryssland och OSS av enskilda entusiaster. Språket används dock för industriell mjukvaruutveckling. Det finns flera projekt utvecklade på Ada och arbetar i Ryssland. Bland dem:

  • Dokumentär kommunikationsstation för RF:s försvarsministerium. Huvuduppgiften är att säkerställa utbyte av dokumentär information i dataöverföringsnäten vid Ryska federationens försvarsministerium. Mjukvaru- och hårdvarukomplexet utvecklades gemensamt av produktionsorganisationen "Computer Engineering and Automation Tools" (hårdvara) och en grupp programmerare från offpistsektorn i North Caucasian Air Traffic Control Center "Strela". Mjukvaran för komplexet är skriven i programmeringsspråket Ada med hjälp av GNAT- kompilatorn . Stöd för distribuerad datoranvändning tillhandahålls av en extra komponent GLADE .
  • Ett komplex av standardflyg-, navigerings- och kommunikationsutrustning för det ryska amfibieflygplanet Beriev Be-200 . Utvecklingen genomfördes av Research Institute of Aviation Equipment i Zhukovsky tillsammans med det amerikanska företaget Allied Signal, Florida, USA. Utvecklingskomplexet av helvetessystem från DDC-I-företaget på Intel 80486- plattformen användes .

Kritik

Sedan starten har Ada kritiserats av några erkända myndigheter inom området för utveckling av programmeringsspråk, främst för komplexiteten i syntaxen och den stora volymen. Speciellt kritiserades språket av Charles Hoare och Niklaus Wirth (som deltog med sitt projekt i denna tävling, men hoppade av efter den första etappen), samt Edsger Dijkstra .

Dijkstra tvivlade på att ett så komplext språk som Ada kunde ses och hanteras.

Om Ada ska ge ut en standard är det önskvärt att den är entydigt dokumenterad. Minst två grupper har försökt göra det; som ett resultat, producerade båda cirka 600 sidor formell text. Detta är mycket mer än vad som är nödvändigt för att säkerställa att det är omöjligt att ens bestämt fastställa att båda dokumenten definierar samma språk. Felet i den uppenbara ohanterligheten hos dessa två dokument ligger inte i de två grupperna som sammanställde dem, inte i den formalism de antog, utan bara i själva språket: utan att ge en formell definition om dess utvecklare kan dölja att de erbjuder ett ohanterligt monster . Att Ada kommer att minska programmeringsproblem och öka tillförlitligheten hos våra konstruktioner till acceptabla gränser är bara en av de sagor som bara människor med militär bakgrund kan tro på.

Science fiction och vetenskaplig verklighet inom datavetenskap (Edsger W. Dijkstra, EWD952)

Hoare uttryckte sin beklagande att "skallror och prydnadssaker har haft företräde framför de grundläggande kraven på tillförlitlighet och säkerhet" och varnade för "en armada av missiler som flyger i fel riktning på grund av ett oupptäckt fel i Ada-kompilatorn." Niklaus Wirth talade mer reserverat, men också negativt. Han sa: "Det slängs för mycket på programmeraren. Jag tror inte att man kan jobba normalt efter att ha studerat en tredjedel av Ada. Om du inte behärskar alla detaljer i språket, kan du i framtiden snubbla över dem, och detta kommer att leda till obehagliga konsekvenser . Jean Ishbia , Adas ledare för utvecklingsteamet, samtidigt som han uttryckte sin "respekt och beundran" för Wirth, höll inte med och sa: "Wirt tror på enkla lösningar på komplexa problem. Jag tror inte på sådana mirakel. Komplexa problem kräver komplexa lösningar.”

Förfarandet för att kontrollera kompilatorns överensstämmelse med språkstandarden genom att testa väcker också tvivel. Av allmänna överväganden är det tydligt att testning kan hitta inkonsekvenser, men inte garantera korrekthet. En praktisk bekräftelse på detta är det faktum att certifierade kompilatorer, när de testades på en annan uppsättning tester, fann bristande överensstämmelse med standarden [14] .

Anhängare av Ada hävdar att det enda alternativet till ett stort och komplext språk i stora projekt är användningen av flera kompakta språk, vilket oundvikligen skapar kompatibilitetsproblem, vilket Ada uppfanns för att bli av med. De noterar också att begreppet komplexitet i Ada-utveckling endast delvis är sant: att skriva ett enkelt program i Ada tar mer tid än i andra mindre formella språk som C , men att felsöka och underhålla program, särskilt stora och komplexa program, är mycket förenklat. Enligt Stephen Zeiger från Rational Software Corporation [15] är mjukvaruutveckling i Ada i allmänhet 60 % billigare, och det utvecklade programmet har 9 gånger färre defekter än att använda C-språket.

Distribution, perspektiv

I praktiken visade det sig att Ada, efter att ha ockuperat den nisch som var avsedd för den i den militära och relaterade utvecklingen av inbyggda system, inte gick utöver denna nisch vare sig i väst, eller i Sovjetunionen eller i det postsovjetiska rymden. Det finns många anledningar till detta. Motståndare till språket vilar på dess komplexitet och brister, anhängare talar först och främst om de objektiva omständigheterna för språkets utseende och de negativa aspekterna av processen för dess genomförande. Enligt S. I. Rybin, senior forskare vid Moscow State University, konsult för AdaCore EU, expert på Ada-språket i ISO-arbetsgruppen för språkstandarden [14] , har Ada sina misslyckanden att tacka två huvudorsaker:

  • Under utformningen av språket antog Pentagon att all ny programvara endast skulle skapas i Ada. På grund av detta fick Ada extremt primitiva sätt att interagera med program på andra språk. I praktiken visade det sig att att skriva allt i Ada i allmänhet är orealistiskt (om så bara för att det blev nödvändigt att interagera med färdiga utvecklingar på andra språk). Därför, i branscher där det inte fanns några strikta krav på att "enbart skriva i Ada", föredrogs andra språk, mer anpassade till den flerspråkiga miljön. I 1995 års standard löstes problemet med interoperabilitet med andra språk, men tiden gick förlorad.
  • Paradoxalt nog förhindrades spridningen av Ada av Pentagons ekonomiska och organisatoriska stöd. Ada-program skrivna för militären körde på den mest kraftfulla datorteknik som finns tillgänglig, så kompilatorutvecklare brydde sig först om att klara ACVC-testerna, och först sedan om effektiviteten hos kompilatorn och koden den skapade. I början av 1980-talet började mikrodatorboomen, och översättare för vanliga språk (Pascal, C, BASIC) optimerades snabbt för system med låg effekt. För Ada fanns det inget incitament för en sådan modernisering, som ett resultat av att persondatorer som blev huvuddelen av världens datorpark några år senare befann sig utan en högkvalitativ Ada-översättare. Naturligtvis tappade Ada detta marknadssegment. Det var först relativt nyligen som GNAT -kompilatorn dök upp , högkvalitativ och produktiv, men även här gick tiden förlorad.

Icke desto mindre, enligt vissa försiktiga prognoser, med billigare hårdvara och spridningen av inbyggda system med komplex programvara, kan marknaden för program i Ada växa avsevärt:

… Ada är ganska fast i nischen av stora inbyggda system med höga krav på tillförlitlighet, och det är osannolikt att det kommer att ge vika för någon i denna nisch inom överskådlig framtid. I takt med att hårdvarukomponenternas prestanda stiger samtidigt som deras kostnad sjunker, blir inbyggda system mer och mer komplexa, och det kan visa sig att den potentiella marknaden för Ada-applikationer snart kommer att växa betydligt.

— Intervju med S.I. Rybina [14]

Dessutom har Ada, om än mycket begränsade, applikationer inom högre utbildning. Specialkurser om Ada undervisas vid Moscow State University och Kharkov University. Men enligt samma S.I. Rybin ,

... nu i det postsovjetiska rummet inom mjukvaruindustrin och utbildningsområdet har en uppenbar ond cirkel utvecklats: i branschen känner de praktiskt taget inte till Ada, respektive, det finns ingen efterfrågan från industrin på utbildning för att utbilda Ada-specialister och nya människor kommer från universitet till branschen som praktiskt taget inte vet något om Ada.

Operativsystem

Ett antal operativsystem är skrivna i Ada, bland dem MarTE Arkiverad 10 juli 2017 på Wayback Machine , RTEMS (ett system med öppen källkod utvecklat av DARPA , US Department of Defense , som används i raketsystem och ombord på Mars Reconnaissance Orbiter som en styrradiomodul "Electra"), Ravenskar , RTOS-32 . Flera fler projekt för att skapa operativsystem på Ada är under utveckling, bland dem - AuroraUX  - ett projekt för att skriva om OpenSolaris -kärnan , och sedan - DragonFly BSD , samt ett projekt för att skapa ett Lovelace- system på L4 -mikrokärnan .

Tidigare fanns det andra operativsystem skrivna i Ada, bland dem - BiiN, Pulse, AdaOS.

För närvarande utvecklas operativsystemet Muen [16] , skrivet i Ada och SPARK, pedagogiska OS Ada Bare bones [17] , Microkernel Ada (TAMP [18] ) används.

Ada-kompilatorer

namn Företag Version Målplattformar Hemsida
DragonLace-projektkompilatorer (GNAT AUX och framtida DRACO Ada-kompilatorer) samhällsprojekt Ada - alla versioner av språket; kompilatorversioner: 4.9.x eller 6.3.x (för olika plattformar) LLVM, DragonFly, FreeBSD, NetBSD, OpenBSD, OmniOS, Android http://www.dragonlace.net/ Arkiverad 31 mars 2018 på Wayback Machine
Ada-C/C++ Changer (baserad på AdaMagic-teknik) MapuSoft Ada 83, Ada 95, en delmängd av Ada 2005 C, C++ www.mapusoft.com Arkiverad 21 november 2016 på Wayback Machine
Ada/Ed New York University Ada 83 MS-DOS x86 , UnixWare www2.informatik.uni-stuttgart.de
AdamMagic SofCheck Ada 95 ? www.sofcheck.com Arkiverad 4 mars 2021 på Wayback Machine
AdamMULTI Green Hills programvara Ada 83, Ada 95, C , C++ , Fortran Solaris SPARC , GNU / Linux x86 , Windows www.ghs.com Arkiverad 15 januari 2021 på Wayback Machine
DEC Ada Hewlett Packard Ada 83 openvms h71000.www7.hp.com
KNOTT AdaCore Ada 83, Ada 95, Ada 2005, Ada 2012, C Solaris SPARC, Linux x86/ x86-64 , Windows, Java Virtual Machine , andra libre.adacore.com Arkiverad 12 februari 2005 på 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 Arkiverad 2 maj 2009 på Wayback Machine
Janus/Ada RR programvara Ada 83, Ada 95 SCO , UnixWare , Interactive , MS-DOS , Windows www.rrsoftware.com Arkiverad 21 januari 2022 på Wayback Machine
MAXAda Samverkande Ada 95 Linux/ Xeon , PowerPC www.ccur.com Arkiverad 3 september 2011 på Wayback Machine
ObjectAda PTC Ada 95, Ravenskar Solaris SPARC, VxWorks , HP-UX , IBM AIX , Linux, Windows, Java Virtual Machine /Java med webbläsarstöd www.ptc.com Arkiverad 10 oktober 2016 på Wayback Machine
PowerAda OC-system Ada 83, Ada 95 Linux, AIX (Ada 95); IBM System 370/390 (Ada 83) www.ocsystems.com Arkiverad 24 augusti 2010 på Wayback Machine
Rationell Apex IBM Rational Ada 83, C, C++ Solaris SPARC Linux www-01.ibm.com Arkiverad 27 september 2009 på Wayback Machine
GÖRA 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 XGC programvara Ada 83, Ada 95, C Solaris SPARC, PC Linux, Windows ( Cygwin ) www.xgc.com Arkiverad från originalet den 9 februari 2013.
LLVM ( Low Level Virtual Machine ) LLVM Developer Group på de flesta UNIX-liknande system och Windows llvm.org
A# (port av Ada till Microsoft .NET- plattformen ) United States Air Force Academy ( GNU ) Windows asharp.martincarlisle.com Arkiverad 2 juli 2011 på Wayback Machine

Med undantag för LLVM , GNAT och XGC (för vissa plattformar) betalas ovanstående kompilatorer. Vissa företag, som Aonix , erbjuder gratis demos som antingen är begränsade i tid eller funktionalitet.

Utvecklingsmiljöerna NetBeans [19] och Eclipse har plugins för att arbeta med Ada.

Inflytande

Adas syntax återges till stor del i språk som PL/SQL (och senare PL/pgSQL ), VHDL , SPARK .

I programmeringsspråken E [20] och Clarity [21] , sedan i många andra: till exempel i språken Erlang , Fortress , Chapel , X10 , D och Go , idéerna om distribuerad, multitasking, multithreaded computing , som implementeras av språket självt, vidareutvecklades, och inte av externa bibliotek, som först användes allmänt i praktiken i Ada-språket.

Verktyg

  • Open-DO Arkiverad 1 april 2018 på Wayback Machine - ett projekt för att förbereda specialiserade open source-kvalificerade mjukvaruverktyg och certifierbara komponenter för Open-DO ("DO-178C"), en ny revidering av flygelektronikstandarden för luftburen programvara.

Innehållsarkiv

  • Ada programmeringsspråksmaterial, 1981–1990 . Charles Babbage Institute , University of Minnesota. Inkluderar litteratur om mjukvaruprodukter utvecklade för Ada-språket, amerikanska regeringspublikationer, inklusive Ada 9X-projektrapporter, tekniska rapporter, arbetsdokument, nyhetsbrev; och användargruppsinformation.
  • Public Ada Library (PAL) är ett gratis arkiv med hundratals megabyte information relaterad till Ada. PAL innehåller program, komponenter, verktyg, allmän information och handledning för Ada. Den har en välkänd kanonisk platsadress: [1] (WUArchive - Washington University Public Archives Address ... [128.252.135.4]), som dock inte alltid är tillgänglig på nätverket. Walnut Creek släppte 2 CDROM 1995 som är en komplett kopia av Public Ada Library (PAL) den 28 april 1995. Bilder av dessa diskar finns tillgängliga [22] på Internet Archive.

Organisationer

  • Ada Conformity Assessment Authority (ACAA) [23] ansvarar för hanteringen av Ada överensstämmelsebedömningar.

Anteckningar

  1. 1 2 3 https://blog.adacore.com/author/taft
  2. https://www.adahome.com/Rogues/taft.html
  3. ↑ Språkreferenshandbok för Ada 2012 . ada-auth.org. Datum för åtkomst: 27 januari 2014. Arkiverad från originalet den 28 februari 2011.
  4. MapuSoft Ada-C/C++ Changer (AdaMagic) . MapuSoft (22 juli 2016). Datum för åtkomst: 12 februari 2017. Arkiverad från originalet 21 november 2016.
  5. PTC ObjectAda . PTC. Hämtad 12 februari 2017. Arkiverad från originalet 10 oktober 2016.
  6. Ada språkreferensguide. 4.6. Typkonvertering. . Hämtad 26 juli 2019. Arkiverad från originalet 1 januari 2019.
  7. Ada Language Reference Guide 83. Kapitel 1.3. Mål och källor till utveckling . Hämtad 22 november 2007. Arkiverad från originalet 7 september 2008.
  8. Vadim Stankevich. Lady of Hell . Hämtad 22 november 2007. Arkiverad från originalet 22 maj 2008.
  9. Steelman dokument . Hämtad 23 mars 2019. Arkiverad från originalet 23 mars 2019.
  10. Uppdaterad standard på iso.org . Hämtad 10 april 2008. Arkiverad från originalet 2 maj 2007.
  11. Ada 2012 . Hämtad 4 november 2016. Arkiverad från originalet 12 september 2016.
  12. Izvestia, 15 januari 1984 (otillgänglig länk) . Hämtad 30 juni 2008. Arkiverad från originalet 15 september 2008. 
  13. Bryabrin V. M. Programvara för persondatorer. Moskva: Nauka, 1988.
  14. 1 2 3 Intervju med S. I. Rybin . Hämtad 10 april 2008. Arkiverad från originalet 15 maj 2008.
  15. Stephen Zeigler, Jämföra utvecklingskostnader för C och Ada. Arkiverad från originalet den 4 april 2007.
  16. Muen | SK för x86/64  (engelska) . muen.codelabs.ch. Hämtad 13 december 2017. Arkiverad från originalet 12 november 2020.
  17. ↑ Ada Bare bones - OSDev Wiki  . wiki.osdev.org. Datum för åtkomst: 13 december 2017. Arkiverad från originalet 13 december 2017.
  18. Luke A. Guest. tamp: Ada Microkernel Project . — 2017-12-05. Arkiverad från originalet den 11 juni 2018.
  19. Ada Plugins för NetBeans . Hämtad 2 oktober 2010. Arkiverad från originalet 5 augusti 2017.
  20. Mark S. Miller. Det ENativa projektet . rights.org. Hämtad 7 januari 2017. Arkiverad från originalet 2 februari 2017.
  21. Brian T. Lewis, L. Peter Deutsch, Theodore C. Goldstein, Brian T. Lewis, Theodore C. Goldstein. Clarity MCode: En återinriktningsbar mellanrepresentation för kompilering  // ACM SIGPLAN-meddelanden. - 1995-01-01. - T. 30 . — s. 119–128 . Arkiverad från originalet den 8 maj 2013.
  22. The Walnut Creek CD-ROM Collection: Fri programvara: Gratis nedladdning, låna och streama: Internet  Archive . archive.org. Hämtad: 1 oktober 2018.
  23. Ada överensstämmelsebedömning . www.ada-auth.org. Hämtad 4 februari 2019. Arkiverad från originalet 10 mars 2019.

Länkar

Litteratur

Standarder
  • ISO/IEC 8652:1987 - Programmeringsspråk - Ada
  • GOST 27831-88 - "ADA-programmeringsspråk" (motsvarar ISO 8652:1987)
  • ISO/IEC 8652:1995 - Informationsteknik - Programmeringsspråk - Ada (Ada95)
  • ISO/IEC 8652:2012 - Informationsteknik - Programmeringsspråk - Ada (nuvarande utgåva av standarden)
  1. Generering av slumptal i Ada 9X . ftp.mcs.anl.gov. Hämtad 4 februari 2019. Arkiverad från originalet 7 augusti 2021.