·Probleemi lahendamise (matemaatiline) eeskiri välja töötada *Algoritm Tegevused, mis on vaja teostada ülesande täitmiseks Lahendusmeetod Enne algoritmi kirjeldamist tuleb määrata meetod, mida probleemi lahendamisel kasutatakse Ülesanne võib nõuda oma meetodi väljatöötamist! Plokkskeem *Programmeerimine ·Programm Käskude jada, mida arvuti peab ülesande lahendamiseks täitma ·Programmeerimiskeeled ·Masinkood Programm sisaldab vahetult protsessori käske Käsud on numbrilisel kujul Töötatakse vahetult arvuti mäluaadressidega Kõigis teistes keeltes kirjutatud programmid teisendatakse täitmiseks alati masinkoodi ·Sümbolkeel Käskude andmiseks kasutatakse numbrite asemel käsku kirjeldavaid lühendeid Madala taseme keeled on seotud riistvaraga Kõrgtaseme keeled on riistvarast sõltumatud Süntaks kuidas antud keeles programmi kirjutada tuleb.
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 objektkood on arvutispetsiifiline masinkood arvuti täidab objektkoodi programmi täitmine ja kasutamine on kiire Interpretaatorite omadused suhteliselt vähe aega kulub lähtekoodi analüüsimisele ja arusaamisele lõppkood nö mingi vahepealne (intermediate code) lõppkood on kasutatav ka teistes programmides programmi täitmine on suhteliselt aeglane Eelnevatel slaididel on toodud tüüpilised omadused. Java on vahepealne (JVM – Java virtuaalmasin). IT-lahenduste eripärad
*kasutaja liidest, *arvuti aparatuursete ressursside juhtimist, *tööd failidega, *Andmete sisestamist ja väljastamist, *rakendusprogrammide täitmist, *utiliite, opsüsteem- on arvuti süsteemitarkvara, mis käivitatakse arvutis alglaadimisprogrammi poolt ning mis juhib arvutisüsteemi tööd ja teenindab rakendusprogramme. Erinev tabel: Arvuti tasemed Kasutaja rakendusprogrammid Kõrgtaseme programmeerimiskeeled Assembleri keel, masinkood Mikroprogrammid. Riistvaraline juhtimine. Funktsionaalsed seadmed (ALU, mälud) Lihtloogika elemendid Transistorid ja juhtmed Arvutisüsteemid võib jagada 4-ja ossa -Raudvara -Opsüsteem -Kasutaja rakendused -Kasutajad -Paberilehel on paar tabelit, mis tuleks siia ümber panna. Arvutite ajalugu Esimese põlvkonna arvutid (1945-1955) Selle ajastu arvutid olid valdavalt elektronlampidel, ebatöökindlad, gabariitidelt suured(spordisaali suurused ja suuremadki) ja sõid palju elektrit
eclipse org). API - Applications Programmer Interface. Programmeerijatele mõeldud kirjeldus mingi süsteemi funktsioonide kasutamiseks programmis, näiteks Java API kirjeldab keeles Java olemasolevaid funktsioone (konkreetselt Java puhul on need jagatud pakettidesse ja klassidesse, aga sellest hiljem...). Programmeerimiskeeltest Eesmärk: mitte töötada riistvara terminites, muuta programmeerimine universaalseks (sõltumatuks konkreetsest arvutitüübist). · masinkood - konkreetse protsessori käsud kahendkujul, elektroonika tase · assembler - madaltaseme programmeerimiskeel, käskude koodid on mnemoonilised (näit. ADD, DIV, MOV, ...), operandide ja aadresside jaoks saab kasutada nimesid, saab deklareerida andmeid, programmi võib varustada kommentaaridega, ... · universaalsed programmeerimiskeeled (ei sõltu protsessori käsustikust) e. kõrgtaseme keeled, saab liigitada paradigma alusel
· Rakendusprogrammide täitmist · Utiliite (Utilities) Mis asi on arvuti? Input Processing Output Applications Utilities Operating System Services Hardware Command/Interpreter Address Bus Data Bus Control Bus CPU ROM RAM I/O Arvuti tasemed · Kasutaja rakendusprogrammid · Kõrgtaseme programmeeriskeeled · Assembleri keel, masinkood · Mikroprogrammid. Riistvaraline juhtimine · Funktsionaalsed seadmed · Lihtloogika elemendid · Transistorid ja juhtmed Neumanni mudel Mäluseade Sisendseade Aritmeetikaloogika seadeVäljundseade Juhtseade Arvutite liigid Superarvuti · Kümned tuhanded protsessorid
6) Leia arvu 11000001 ühe-täiend (1’s-complement) V: 00111110 7) Leia arvu 00111110 kahe-täiend (2’s-complement) V: 11000010 8) Leia arvu 00101001 kahe-täiend (2’s-complement) V: 11010111 9) Kirjuta positiivse arvu 001011100 negatiivne vaste märgi-ja-väärtuse (sign- and-magnitude) süsteemis. V: 101011100 10) Kirjuta kümnendkoodis esitatud arv 0,0625 kahendkoodis. V: 0,0001 11) Kirjuta kümnendkoodis esitatud arv 0,041015625 kaheksandkoodis V: 0,025 7.test Masinkood(1) 1) Big endian skeemi korral sisaldavad väiksema aadressiga mälupesad arvu madalamaid baite. V:VALE 2) Little endian skeemi korral sisaldavad väiksema aadressiga mälupesad arvu madalamaid baite. V: ÕIGE 3) Millised alljärgnevad lipud omavad väärtust 0 peale tehet, mis andis vastuseks 0? V: N,V,C 4) Registrite R1 ja R2 sisu on vastavalt 1600 ja 4200.Milline on esimese operandi efektiivne (mälu)aadress käsus Load 28(R1),R5? V: 1628
Vastus: 111100101 j. Kirjuta kümnendkoodis esitatud arv 0,8125 kahendkoodis. ■ http://www.exploringbinary.com/binaryconverter/ Jälgi, et koma asemel kasutad punkti. Vastus: 0,1101 k. Kirjuta kümnendkoodis esitatud arv 0,033203125 kaheksandkoodis. ■ http://zeeshan.xp3.biz/dconverter.htm Vastus: 0,021 ● Masinkood (1) a. Big endian skeemi korral sisaldavad väiksema aadressiga mälupesad arvu kõrgemaid baite. ■ Vastus: Õige b. Little endian skeemi korral sisaldavad väiksema aadressiga mälupesad arvu kõrgemaid baite. ■ Vastus: Vale c. Millised alljärgnevad lipud omavad väärtust 0 peale tehet, mis andis vastuseks +3? NB! valed vastused annavad miinuspunkte
· Väga kompaktne byte-code (kompaktsem, kui Programmi teisendamine ühikutes kui keskkonna aeg aktiveerimiste järgnevust korratakse tsükliliselt teiste keelte operatsioonide jadaks Näited: Prioriteetidepõhine planeerimine (priority based masinkood) Baas-plokk ~ avaldis Kontrollsüsteemid, tööstussüsteemid, lennundus, Planeerimisstrateegiad Java Avaldis > operatsioonide jada autondus, scheduling) Puudused nn
Seda terminit kasutatakse mõnikord püsivarana, kuigi püsivara saab kasutada ka arvuti püsimälupõhises koodis, millelt operatsioonisüsteem jookseb, samas kui sisseehitatud tarkvara on tavaliselt ainuke tarkvara kõnealusel seadmel. [4] Mikrokood on eriline, suhteliselt segast tüüpi sisseehitatud tarkvara, mis ütleb protsessorile, kuidas täita masinkoodi, nii et tegelikult on see madalam tasand kui masinkood.[5]See on tavaliselt salastatud protsessori tootja poolt ning kõik vajalikud mikrokoodi tarkvara uuendused varustatakse kasutajatele nende poolt (mis on palju odavam kui asendava protsessori riistvara kohaletoimetamine). Seega tavaline programmeerija ei peaks kunagi eeldama, et peab sellega tegelema. 22. Võrdle oma vahel viite vabalt valitud arvuti tarkvara liiki . ( essee küsimus ) 23. Mis on kaubamärk ja selle kasutamise eesmärk (kaubamärgi funktsioonid)?
Eri protsessoritel on erinev sõna järgulisus. Aadress on kahend kood (number) mis näitab millise sõna poole toimub pöördumine. Mälus on taoline 0-de ja 1-de jada. Koodi enda järgi ei ole võimalik eristatda kus on andmed ja kus käsud. Protsessorist peab tulema aadress mis näitab millisesõna poole pöördutakse. Lugemise korral peab juba protsessor teadma kas sõna interpreteerida käsuna või andmetena. Kõrgtaseme keel assembler masinkood: Kõrgtaseme keeles kirjutatud programmi (käskude) jada ei ole arvuti riistvara võimeline täitma. Riistvaras on olemas ainult pingenivoo, mis vastab väärtusele 1 ja teine pingenivoo, mis vastab väärtusele 0. Sellepärast teisendatakse programselt (transleeritakse) kõik programmid lõpuks masinkoodi. Masinkoodis vastab igale käsule oma kahendkood. Millised on transleerimise vahe etapid ja kuidas seda tehakse on tarkvaraprobleem, aga lõpuks peab ta olema masinkoodis, et
Eri protsessoritel on erinev sõna järgulisus. Aadress on kahend kood (number) mis näitab millise sõna poole toimub pöördumine. Mälus on taoline 0-de ja 1-de jada. Koodi enda järgi ei ole võimalik eristatda kus on andmed ja kus käsud. Protsessorist peab tulema aadress mis näitab millisesõna poole pöördutakse. Lugemise korral peab juba protsessor teadma kas sõna interpreteerida käsuna või andmetena. Kõrgtaseme keel assembler masinkood: Kõrgtaseme keeles kirjutatud programmi (käskude) jada ei ole arvuti riistvara võimeline täitma. Riistvaras on olemas ainult pingenivoo mis vastab väärtusele 1 ja teine pingenivoo mis vastab väärtusele 0.Sellepärast teisendatakse programselt (transleeritakse) kõik programmid lõpuks masinkoodi. Masinkoodis vastab igale käsule oma kahendkood. Millised on transleerimise vahe etapid ja kuidas seda tehakse on tarkvaraprobleem, aga lõpuks peab ta olema masinkoodis, et
Andmehoidla võimaldab kiiremini kätte saada kokkuvõtvaid andmeid Andmekaeve: võimaldab leida andmete mustreid, mida lihtsa tavapäringuga ei pruugi kätte saada. Abstraktsiooni puhul parema arusaadavuse huvides üldistatakse üksikjuhtumid. Pärandsüsteemid on sageli raskesti kohandatavad ja liidestatavad Massiivi puhul on elemendi poole võimalik pöörduda massiivi nime ning järjekorranumbri kaudu. Andmepuu lehtede väärtused saab süstemaatiliselt läbi käia Masinkood on esimese põlvkonna programmeerimiskeel Viite kaudu alamprogrammile andmete edastamisel alamprogrammis tehtud muutus kajastub ka peaprogrammist parameetrina kaasa antud muutujas. Klass on objektitüüp, kõigil sama klassi eksemplaridel on samad omadused ja oskused. Objektorienteeritud programmeerimise juures rakendus on jagatud suhteliselt iseseisvateks üksusteks, mis omavahel meetodite väljakutsete abil suhtlevad
Eri protsessoritel on erinev sõna järgulisus. Aadress on kahend kood (number) mis näitab millise sõna poole toimub pöördumine. Mälus on taoline 0-de ja 1-de jada. Koodi enda järgi ei ole võimalik eristatda kus on andmed ja kus käsud. Protsessorist peab tulema aadress mis näitab millisesõna poole pöördutakse. Lugemise korral peab juba protsessor teadma kas sõna interpreteerida käsuna või andmetena. Kõrgtaseme keel assembler masinkood: Kõrgtaseme keeles kirjutatud programmi (käskude) jada ei ole arvuti riistvara võimeline täitma. Riistvaras on olemas ainult pingenivoo, mis vastab väärtusele 1 ja teine pingenivoo, mis vastab väärtusele 0. Sellepärast teisendatakse programselt (transleeritakse) kõik programmid lõpuks masinkoodi. Masinkoodis vastab igale käsule oma kahendkood. Millised on transleerimise vahe etapid ja kuidas seda tehakse on tarkvaraprobleem, aga lõpuks peab ta
Eri protsessoritel on erinev sõna järgulisus. Aadress on kahend kood (number) mis näitab millise sõna poole toimub pöördumine. Mälus on taoline 0-de ja 1-de jada. Koodi enda järgi ei ole võimalik eristatda kus on andmed ja kus käsud. Protsessorist peab tulema aadress mis näitab millisesõna poole pöördutakse. Lugemise korral peab juba protsessor teadma kas sõna interpreteerida käsuna või andmetena. Kõrgtaseme keel – assembler – masinkood: Kõrgtaseme keeles kirjutatud programmi (käskude) jada ei ole arvuti riistvara võimeline täitma. Riistvaras on olemas ainult pingenivoo, mis vastab väärtusele 1 ja teine pingenivoo, mis vastab väärtusele 0. Sellepärast teisendatakse programselt (transleeritakse) kõik programmid lõpuks masinkoodi. Masinkoodis vastab igale käsule oma kahendkood. Millised on transleerimise vahe etapid ja kuidas seda
esimeses sektoris. Master Boot Record on ketta jaotusele elulise tähtsusega: kui seal olevat infot rikkuda, on keeruline välja selgitada partitsioonide asukohti, mahtusid ja tüüpe. Sektori maht (seega ka Master Boot Record'i maht) on 512 baiti. Master Boot Record koosneb järgmises tabelis antud osistest. Nihkebaidi all mõtleme nihet alates sektori esimesest baidist. Nihe (B) Maht (B) Selgitus 0x0 0x1B8 Alglaadimise masinkood (boot code) 0x1B8 0x4 Ketta signatuur 0x1BE 0x40 Ketta jaotustabel (partition table) 0x1FE 0x2 MBR-i signatuur (sümbolid koodidega 55 ja AA) Alglaadimise masinkood algab sektori algusest seetõttu, et kui kõvakettalt kästakse süsteem laadida, alustatakse masinkoodi täitmist ketta esimese sektori esimesest baidist. Reeglina on masinkoodis hüpe aktiivse partitsiooni alglaadeplokile (boot block).
Tõestuste esitamine puudena: Puu lehed on aksioomid ning teised tipud on teoreemid. Kaared vastavad tuletusreeglite rakendamisele. 5. Programmeerimiskeelte klassid. Arvuti töötleb fikseeritud märgisüsteemis esitatud infot. See märgisüsteem on keel. Enamus raalis kasutatavatest keeltest moodustavad programmeerimiskeeled. Programmeerimiskeel on tähistuste ja reeglite süsteem algoritmide esitamiseks arvutile. Inimesele sobiva kuju alusel jaotatakse progemiskeeled · masinkeeled (masinkood konkreetse raali 01010 jada, autokood konkreetse raali märgiline progemiskeel) · algoritmilised e kõrgtaseme keeled (raalist sõltumatute protsesside kirjeldamiseks) aritmeetilised arvutused algebraliselt peamiste algoritmiliste juhtstruktuuride jaoks oma laused IO kirjeldamise laused erinevad andmetüübid / objektid · teadmiste esitamise e spetsifitseerimiskeeled teadmuskeeled, deklaratiivsed keeled
optimeeriva kompilaatoriga, mis annab kiiremini töötava tulemuse. Kompileeritava programmi valmimine Olgu meil (näiteks C keeles) failid main.c ja swap.c Teeme gcc main.c swap.c -o minuprogramm Kompilaator (näiteks gcc) teeb järjest mitut eri asja: Kompileerimine Kompilaator teeb neist assemblerikeelsed ajutised failid Kompilaator teeb assemblerfailidest masinkood+sümbolinfo failid Linkimine Linkur otsib kokku vajalikud olemasolevad failid osa sümbolinfo seostamiseks päris koodi-viidetega Käivitame saadud programmifaili minuprogramm: Opsüsteemi loader otsib lisaks vajalikud olemasolevad failid osa sümbolinfo seostamiseks päris koodi-viidetega Saadud kogum paigutatakse mällu, tehakse opsüsteemi infoblokk tema jaoks (protsess) ja kogum käivitatakse Keelte erisused: kolm põhiasja
Järjekord andmestruktuurina eeldab ainult FIFO printsiibi kasutamist. Käsusüsteem ja adresseerimine. · Käsuformaadid ja käsusüsteem (Instruction set) An instruction set, or instruction set architecture (ISA), describes the aspects of a computer architecture visible to a programmer, including the native datatypes, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O (if any). Kõrgtaseme keel Assembler keel masinkood Andmeedastus käsud Data transfer instructions MOV, LOAD, STORE, ... Aritmeetika-loogika käsud Arithmetic-logic instructions AND, OR, ADD, SUB, ... Hargnemiste (siirete) käsud Branch instructions JMP, CALL, RET, ... Pinumälu, sisend-väljund seadmete ja protsessori juhtimine Stack, I/O, Machine control instructions PUSH, POP, IN, OUT, NOP, ... · Adresseerimise viisid (Addressing modes)