programmielementide kirjutamiseks Muutuja mälupesa või mitmest pesast koosnev plokk, millele on antud nimi. Andmetüüp näitab, mis tüüpi andmeid muutujas hoida saab. Omistamine Plokk-programmis kirjeldatud käskude grupp,mida keele süntaksi seisukohast saab vaadata ühe käsuna Kontrollstruktuurid kasutatakse programmi käskude täitmise järjekorra muutmiseks. Alamprogrammid(tsüklid, hargnemised) Translaatorid ·Kompilaatorid Transleerimine peab toimuma enne programmi täitmist ·Interpretaatorid Transleerimine toimub programmi täitmise ajal
Näiteid mõlemast tarkvara alaliigist 1) Süsteemitarkvara: · operatsioonisüsteemid, nt Linux, Windows Vista, Symbian OS mobiilsetes seadmetes kasutatav operatsioonisüsteem, Unix · draiverid, nt printeri draiver · failihaldusprogrammid 2) Teenindus- /abiprogrammid. rakendustarkvara · Kontoritööpaketid o tekstitöötlusprogrammid o tabelarvutusprogrammid o esitlusprogrammid · Arendusvahendid o assemblerid o kompilaatorid o interpretaatorid o versioonihaldusprogrammid · infohaldusrakendused o ettevõtte ressursiplaneerimispaketid (ERP) o raamatupidamispaketid o kliendisuhtehalduspaketid (CRM) o otsustusi toetavad süsteemid (DSS) o projektihalduspaketid · inseneri töövahendid o CAD-programmid 3 o statistilise analüüsi programmid
huvidest, võimetest, ressurssidest standardite täitmist IT-lahenduste eripärad vajab personali, riistvara, tekitades uusi vajadusi Arvutiprogramm võib esineda programmeerimiskeele lähtekoodina koos kommentaaride ja dokumentatsiooniga; objektkoodina või masinkoodina (failidena) soorituva objekt- või masinkoodina arvutile installeerituna Arvutiprogramm on paljudest lähtekoodidest ja õiguslikest komponentidest koosnev kompositsioon Translaatorid Kompilaatorid või interpretaatorid An interpreter translates some form of source code into a target representation that it can immediately execute and evaluate. The structure of the interpreter is similar to that of a compiler, but the amount of time it takes to produce the executable representation will vary as will the amount of optimization. Lähtekood objektkood Kompilaatorite omadused Palju aega kulub programmi tekstis arusaamisele, “analüüsimisele” ja transleerimisele
riistvarast ja lähemale arvutiga suhtlevale kasutajale, mis aitab otseselt kasutaja eesmärke täita. Rakendustarkvara on üldiselt soetud graafilise kasutajaliidesega. 3 Kasutatavaimad rakendustarkvarad on: · Kontoritööpaketid: tekstitöötlusprogrammid, tabelarvutusprogrammid, esitlusprogrammid. · Arendusvahendid: assemblerid, kompilaatorid, interpretaatorid, versioonihaldusprogrammid. · Infohaldusrakendused: ettevõtte ressursiplaneerimispaketid (ERP), raamatupidamispaketid, kliendisuhtehalduspaketid (CRM); otsustusi toetavad süsteemid (DSS), projektihalduspaketid. · Inseneri töövahendid: CAD-programmid, statistilise analüüsi programmid, geoinfosüsteemid. · Kirjastamine ja multimeedia: trükiste kujundusprogrammid,
Need kaks pilti siin on kopeeritud meie põhiõpikust · Arvutisüsteemi kihid: o riistvaralised komponendid, füüsiline võrk o tarkvaralised komponendid riistvaralähedane kiht - operatsioonisüsteemi tuum, seadmete draiverid, ... operatsioonisüsteem, selle poolt pakutavad teenused, ressursside haldamine: mälu, protsessid, s/v, ... süsteemitarkvara - kompilaatorid, süsteemi haldamine, arendusvahendid, ... rakendustarkvara - üldotstarbeline (näit. kontoripakett) või eriotstarbeline (näit. kassaaparaadi tarkvara) o organisatsioonilised jm. mittetehnilised asjad - kasutajad, koolitus, ... (need on rohkem infosüsteemi aspektid, praegu meid ei huvita) Vajalikke lühendeid: IDE - Integrated Development Environment. Arenduskeskkond programmide koostamiseks,
1980. aastate esimeses pooles ohverdasid superarvutid juhendite ühilduvuse ja koodi teisaldatavuse, et saada paremaid tulemusi (protsessimise- ja mälu kättesaamise kiirusi). Selle ajani olid superarvutitel enamasti väga erinevad operatsioonisüsteemid. Cray-1'l üksi oli vähemalt 6 erinevad operatsioonisüsteemi, mis olid suuresti tundmatud tavalisele arvutikogukonnale. Sarnaselt olid olemas erinevad ja mitteühilduvad vektoriseerivad ning paralleeliseerivad kompilaatorid Fortranilt. Selline trend lõppes kui loodi ühilduv juhendite komplekt Cray-1 ja Cray X-MP vahel ja võeti kasutusele arvutisüsteemid nagu Cray' Unicos või Linux. Graafik operatsioonisüsteemide populaarsusest ja kasutusest (1994 2012). Allikas: http://upload.wikimedia.org/wikipedia/commons/0/0d/Operating_systems_used_on_top_500_supercompute rs.svg 7 4.2 Programmeerimine
teadete saatmisega või jagatud mäluga · Vigade avastamine protsessori, mälu, I/O seadmete ja kasutajaprogrammide vigade avastamine ja neile adekvaatselt reageerimine Operatsioonisüsteemi asukoht tarkvara ja riistvara hierarhilises süsteemis Lõppkasutaja Programmeerija 1 2 Rakendusprogrammid Utiliidid, Kompilaatorid, Redaktorid, Käsu interpretaatortid1 2 OPS väljatöötaja Operatsioonisüsteem2 Masinkeel Mikroarhitektuur (protsessori registrid, ALU) Füüsilised seadmed (kontrollerid, siinid, monitor jne) Operatsioonisüsteemide komponendid ja funktsioonid 1. Tuum 2. Protsessihaldus 3. Mäluhaldus 4. Failihaldus
kasumit, ainult kulutasid raha, kuid mille aktsiaid osteti Keerukus), Praktilisem arvutiteadus (Algoritmika, Verifitseerimine, järelduste automatiseerimine, 1939-1942 Atanasoff. esimene elektronarvuti? tohutu hinnaga.See andis hoogu ka nende firmade hinna Õppimine,Keeled ja kompilaatorid,Krüpto), Veel kasvule, kes kasumit tekitasid.2000 aasta alguses oli praktilisem arvutiteadus (Andmebaaside teooria ja 1939-44 Mark I (Aiken) IBMi tehnoloogia, Failisüsteemid, Arvutigraafika, NASDAQ index veidi üle 4500
Tarkvara arhitektuur mingi 1965 – Moores law(integrated circuits double iga Skype).Instant messengerid muutuvad automatiseerimine, Õppimine,Keeled ja süsteemi tehnoloogilisi põhimõtteid,millisteks aasta);PDP8 – I kommerts miniarvuti(tutvustas populaarseks.Google muutub domineerivaks kompilaatorid,Krüpto), Veel praktilisem suurteks osadeks süsteem jaotub,milliseid suuri DEC). arvutiteadus (Andmebaaside teooria ja valmistükke süsteem kasutab. otsimootoriks + võrguteenuste pakkujaks
üldkasutatavaid matemaatilisi sümboleid. Need keeled on inimesele mugavad. Nende abil võib kirjutada programme, milles on tuhandeid ridu. Teise põlvkonna arvutid(1955-1965) Arvutitehnika arengu see periood on seotud uue tehnilise baasiga-pooljuhtseadised. Sellel perioodil jagunes personal programistideks, operaatoriteks, teenindajateks ja arvutiseadmete väljatöötajateks. Ilmusid esimesed algoritmilised keeled, esimesed süsteemiprogrammid- kompilaatorid. Valmisid esimesed pakktöötlus süsteemid (batch processing), mis kiirendasid programmide käivitamist, tehes seda üksteise järel, suurendades protsessori tööhõivet. Paketttöötlus Pakketttöötluse jaoks on vajalik täidetavate programmide järjekord. Operatsioonisüsteem võib kindlustada programmmi laadimist mällu välistelt andmekandjatelt. Seda selliselt, et eelmise programmi täitmise lõpetamist ära ei oodata. Nii saab ära hoida protsessori tühijooksu. Programmi
sõltumatu enamasti) -> Globaaloptimeeringud (S: vähene arvutist je keelest sõltuvus. F: sisaldab globaalseid ja lokaalseid optimeeringuid) -> koodigeneraator (S: keelest sõltumatu, tugevasti arvutist sõltuv. F: Käskude valik ja arvutist sõltuvad optimeeringud -> Objektkood (masinakeelne programm) 11. Operatsioonisüsteemi üldistatud arhitektuurne mudel. Rakenduste tase (rakendused -> (käsundid, kompilaatorid, interpredaatorid, süsteemiteek)) -> OS-i tase: (mäluhaldur, failisüsteemi haldur, süsteemi haldur, võrguhaldur, S/V-süsteemi haldur) -> OS tuum (protsessori haldur, protsessi haldur) -> Riistvara tase: Erinevad kontrollerid (seadmete kontroller, mälukontroller terminalseadmete kontroller)/süsteemi riistvara. Operatsioonisüsteemi põhifunktsioonideks on tegumite (protsesside) 2 ajaline planeerimine ja mäluhaldus. Operatsioonisüsteem määrab milline protsess
Kuna eri ressursse tuleb kasutada erineva kasutuskorra järgi, siis sisaldab operatsioonisüsteem komponente iga ressursside klassi haldamiseks. Kõige tähtsamad ressursihaldurid on protsessori, mälu ja seadmete haldurid ning failisüsteem. Kõik operatsioonisüsteemi komponendid on kokku võetud ainulaadsesse programmi, mida nimetatakse kerneliks ehk tuumaks, mis pakub kõiki operatsioonisüsteemi teenuseid. Siiski mõned operatsioonisüsteemi osad (nagu näiteks kompilaatorid ja kasutajaliidesed) võivad olla jäetud kernelist välja. Turvakaalutlustel ei ole koodi kernelisse paigutatud (see puudutab kõiki rakendusi), kui see käivitataksekasutaja reziimis. Kasutaja reziimis saab rakendus kasutada ainult selle enda andmeid ning ei saa sekkuda teiste rakenduste või kerneli toimingutesse. Kuid alati kui kernel on käivitatud halduri reziimis, siis on sellel juurdepääs kõigile süsteemi ressurssidele.
.) ·DCOM (distributed) asukohaläbipaistvus 15 .NET-processes, Common Language Runtime, MSIL, Assemblies Common Language Runtime(CLR) ·.NET-käituskeskkond haldab programmikäituse(execution management) tagab teenused(provides services) ·Hallatud kood(managed code), tagab keeltevahelise: integratsiooni(cross language integration) versioonihalduse automaatse mäluhalduse isekirjelduvad objektid(IDL-i pole vaja) "Compileonce, runverywhere" CLR (2) -metaandmed ·Kompilaatorid loovad koos koodiga ka metaandmed, mis: kirjeldavad komponente, objekte ja käitustingimusi(klassideasukohtja laadimine, koodigenereerimine, käituskontekst, ...) tagavad automaatse objektide eluea(garbagecollection) ·CLRitoetavad: Visual Basic, C#, Visual C++, Perl (¬MS), COBOL (¬MS) Common Language Specification(CLS) CLR (3) -käitusehaldus ·MSIL (Microsoft Intermediate language) ·JIT (Just In Time) kompileerimine ·Käitus(Execution) ·Assemblies
· Ei ole sisseehitatud `mälukoristust' (garbage collection) · Lubab väga `raualähedast' koodi C#: · C++ ja Java segu (MS Java ), võimas ja mugav keel,teenimatult vähe kasutatud. .NET framework (raamistik) analoog JVM-le, välditud mitmeid JVM vigu. DotNET (.NET) on olemas ka Linux-le ja Windows CE-le (RAS kasutusteks) Java: · Interpreteeriv keel, mis töötab manageeritud keskkonnas (virtuaalmasin), platvormist sõltumatu · Olemas `native-code' Java kompilaatorid · Olemas Java-käsustikuga protsessorid · Ajaline käitumine raskesti määratav · RT Java korral defineeritud lisaks RT-thread (reaalajalõim),võimalik vältida automaatset `mälukoristust', ajaline käitumine määratud. 74. Milles seisneb programmeerija efektiivsuse mõõtmismetoodika KLOC, mis on delta KLOC? KLOC: · Lihtsaim mõõt 1. KLOC kilokoodiridu või 2. DSI (delivered source instructions) või 3
Has memory - a place to keep both: instructions (ie program) and the needed information (ie data) needed for computation by the computer. Matemaatiline arvutiteadus Algebra eriharud Arvutatavus Keerukus Praktilisem arvutiteadus Algoritmika Verifitseerimine, järelduste automatiseerimine Õppimine Keeled ja kompilaatorid Krüpto Veel praktilisem arvutiteadus Andmebaaside teooria ja tehnoloogia Failisüsteemide ... Arvutigraafika ... Võrgusüsteemide ... Laiatarberakendused Opsüsteemid, draiverid jms Tekstiredaktorid, brauserid, epost jne ... Üldised võrgurakendused: google, youtube, skype, .. Mängud Igasugu utiliidid Programmeerimisvahendid
Mis on kompilaator? Kompilaator on spetsiaalne programm, mis teeb programmi lähtekoodi operatsioonisüsteemile arusaadavaks. Programmi lähtekood on aga see, mille kirjutab programmeerija. Teie vajate kompilaatorit just selleks, et oma programme käivitada (vaevalt keegi viitsib väga kaua programmeerimisega tegeleda, kui ta ei saa näha, kuidas see, mis ta teinud on, tegelikult töötab). Milliseid kompilaatoreid kasutada ja kust neid saab? Kuna kompilaatorid võivad üksteisest pisut erineda, siis on soovitav kasutada samu kompilaatoreid, mida on kasutatud kursuse koostamisel (vastasel juhul võib tunduda, et õppematerjalides pakutav näidisprogramm tegelikult ei töötagi). Kõik Pascali programmid on kirjutatud FreePascalis, mistõttu neile, kes otsustavad ülesannete lahendamiseks Pascalit kasutada, soovitan kasutada just seda. FreePascali puhul on tegemist vabavaraga, mistõttu võite ta muretult alla laadida
Teoreemitõestamine ja järelduste tegemine .Frame problem jms raskused .Ekspertsüsteemid: spetsiifilise järelduste tegemise strateegiad .Intelligentsed agendid: järeldused, õppimine jms •“Soft” AI: (fookus tajumisel ja tajupiltide õppimisel) .(Õppimine) .Teksti mõistmine .Pildi mõistmine ja kõne mõistmine •Robootika •Rakenduslikud algoritmid: piiri peal tehisintellektile .Male, kabe, go, bridzh .Üldised otsimismeetodid .SQL optimeerimine, optimeerivad kompilaatorid, travelling salesman jms ITK 2007, Kalev Pihl Sissejuhatus informaatikasse 2 Eesmärgid •Erinevad eesmärgid, üldiselt konkreetsele: .Tehisintellektinduse “suur eesmärk” on päriselt intelligentse masina ehitamine: riistvara + tarkvara .Tehisintellektinduse “filosoofiline eesmärk” on saada paremini aru mõistuse (sh inimese ja loomade) funktsioneerimise põhimõtetest üldse. .Tehisintellektinduse “praktiline eesmärk” on teha
Selle kursuse raames on kasu kahest versioonist Visual Web Developer 2008 Express ASP.NET 3.5 veebirakenduste loomiseks ja Visual C# Express Edition lihtsalt C# keeles programmeerimise jaoks. Selleks, et .NET platvormile loodud programme käivitada, on vaja .NET raamistikku. Juhul, kui Teil seda arvutis veel ei ole, on seda võimalik tõmmata mitmelt veebilehelt, sh Windows Update'st või www.microsoft.com/net Programmeerimiskeeltena on vaikimisi võimalik kasutada (kompilaatorid sisalduvad .NET raamistikus) C#, hallatud C++, VB.NET ja J# keeli. Lisaks nendele pakutakse erinevate tootjate poolt veel ca 40 .NET keelt. Microsoft on .NET raamistikust loonud juba mitmeid versioone. Selle materjali loomise hetkeks on väljas versioon 3.5 koos SP1 teenusepaketiga. Hea uudis nende paljude versioonide juures on see, et igas uues versioonis sisaldub ka vana e. midagi tuleb juurde, kuid kõik see, mis oli, töötab edasi!