220 likes | 391 Views
ADA. Ajalugu. Põlvneb Pascalist 1960ndatel ja 70ndatel DoD kasutas kuni 2000 erinevat programmeerim i skeelt Iga keel sobis vaid mingiks kindlaks otstarbeks Vaja oli keelt, mis sobiks kõikjale Korraldati võistlus uue keele loomiseks, mille võitis keel, mida hiljem hakati kutsuma „Ada“ks.
E N D
Ajalugu • Põlvneb Pascalist • 1960ndatel ja 70ndatel DoD kasutas kuni 2000 erinevat programmeerimiskeelt • Iga keel sobis vaid mingiks kindlaks otstarbeks • Vaja oli keelt, mis sobiks kõikjale • Korraldati võistlus uue keele loomiseks, mille võitis keel, mida hiljem hakati kutsuma „Ada“ks
Ajalugu (2) • 1979 DoD dokumenteeris „Ada“ • 1983 keel standartdiseeriti ja nimeks sai „Ada 83“ • Lisandus osaline OOPi tugi • DoD kontrollis algselt kõiki kompilaatoreid • 1987 see muutus, kui DoD lasi keele avalikuks • Aastaks 1990 oli olemas juba üle 200 kompilaatori
Ajalugu (3) • 1995 uus standard ja keel sai nimeks „Ada 95“ • Esimene rahvusvaheliselt standardiseeritud objekt-orienteeritud keel • Pakub liideseid keeltele C, FORTRAN, COBOL
Kompilaatorid • GNAT on peamine „Ada 95“ kompilaator ja vabalt saadaval • Toetatud platvormid: SunOS/Solaris, Linux, NetBSD, SGI IRIX, IBM's AIX, DEC's Digital Unix, WinNT, Win95, MacOS, DOS („EZ2Load“)
Süntaks (1) • 'Põlvneb Pascalist ja on C nõbu' • Struktueeritud keel, moodulid • Sektsioonide paiknemine vaba • Tugev tüübikontroll • Erindid
Süntaks (2) with Paketi_nimi; use Paketi_nimi; procedure Programmi_nimi is -- alamprogrammid procedure AlamProgramm1( Muutuja1, Muutuja2, ... : in Sisend_Tüüp, Muutuja2_Tüüp, ... out Tagastus_Tüüp) is Muutuja : Tüüp begin Käsud; end AlamProgramm1; -- järgmised alamprogammid
Süntaks (3) -- programm Muutuja : Tüüp (:= väärtus); begin Muutuja := Alamproramm1(Param1, Param2, ...); end Programmi_nimi;
Süntaks (4) Muutujad • Loomine Muutuja : Tüüp := Väärtus • Väärtustamine Muutuja := väärtus
Süntaks (5) If if tingimus1 then tegevused1; elsif tingimus2 then tegevused2; else if tingimus3 then tegevused3; else tegevused4; end if; end if;
Süntaks (6) Case Case muutuja is when väärtus1 => tegevused1; when väärtus2 => tegevused2; when others => tegevused3; end case;
Süntaks (6) Loop Loop if tingimus then exit; end loop; for Muutuja in algus .. lõpp loop tegevused; end loop; while Tingimus loop tegevused; end loop;
Süntaks (7) Erindid Procedure Programm is muutujad; begin tegevused; exception when Mingi_Erind1 => tegevused; when Mingi_Erind2 => tegevused; end Programm;
Süntaks (8) Teksti IO With Ada.Text_IO; use Ada.Text_IO; Procedure Programm is Sisend : String(1..pikkus); begin Put_Line(„Sisesta midagi:“); Get(Sisend); New_Line; Put(Sisend (1..pikkus)); Put_Line(„ - sinu sisestus“); end Programm;
Süntaks (9) Operaatorid • +, -, *, /, ** • =, /=, <, <=, >, >= • Rem, mod, abs • And, or, xor, not
Süntaks (10) Andmetüübid • Integer • Character • Long • Boolean • String • Enda poolt defineeritud
Süntaks (11) Jadad Array_muutuja : array (1..lõpp) of tüüp; begin for Muutuja in 1..lõpp loop Array_Muutuja(Muutuja) tegevused; end loop; -- multidimensionaalne näide Array_muutuja : array (1..3) of String (1..3) := („QWE“, „SAD“, „RTY“); -- Array_muutuja(2)(1) tagastab „S“ tähe
Lisaks • Preprotsessori käsud • OOP • Klassid • Pärimine • Isendi ja klassi muutujad ning funktsioonid • Ligipääsu piirangud jne. • Puudu mitmekordne pärimine
Tulevik • Pideva standardiseerimis protsessi ühe osana vaadatakse keelt pidevalt üle • Hetkel on tekkinud suur hulk ettepanekuid keele muutmiseks • Need loodetakse sisse viia aastaks 2005 - „Ada 2005“ • Eesmärgiks on vähendada piiranguid, suurendada olemasolevaid võimalusi ning lisada uusi
Tulevik (2) • Eeldefineeritud pakettide arvu suurendamine ja ühtlustamine • Objekt-orienteerituses on ettepanek lihtsustatud kujul mitmekordse pärimise sisseviimiseks
Programminäited Mõned ADAs kirjutatud programmid