IDE»). Eclipse IDE on paljudes asutustes võetud rakenduste arenduse korporatiivseks standardiks. Eclipse IDE (alates versioonist 3.0) ei ole monoliitne toetades IDE laiendusi, vaid koosneb laienduste kogumist. Viimastes Eclipse versioonides pluginate lisamiseks on rakendatud mugav süsteem Software Updates. http://www.eclipse.org/ Lihtne programm Java keeles 1. Lihtsa konsoolrakenduse loomine lihtsa tekstiredaktori, näiteks NotePad, abil, kompilaatori käivitamise ja rakenduse täitmisega käsurealt. Pakk JDK ei meenuta millegagi rakenduste loomise integreeritud keskkonda. Kõik käsud käivitatakse käsurealt. Peale JDK installimist lisage kataloogi nimi jdk/bin otsinguteede loetellu, mille järgi operatsioonisüsteem otsib käivitatavaid faile -- keskkonna süsteemne muutuja on path. Kontrollida, kas kõik on õigesti tehtud, saab järgmiselt: trükkige konsoolaknasse käsk java -version
väikese teretusega. Jutumärgid on ümber selleks, et arvuti saaks aru, et tegemist on tekstiga - mitte näiteks käskluse või muutuja (märksõna) alla salvestatud andmetega. } } Kaks sulgu lõpus lõpetamas eespool avatud sulgusid. Iga sulg, mis programmikoodi sees avaneb, peab ka kusagil lõppema - muidu ei saa arvuti asjast aru, hing ei tule sisse ja programm ei hakka tööle. Tühikud ja reavahetused on üldjuhul vaid oma silmailu ja pildi korrastuse pärast. Kompilaatori jaoks võiks kõik teksti rahumeeli ühte ritta jutti kirjutada, enesele kasvaks aga selline programm varsti üle pea. WriteLine meetod üleviib kursori uule reale Write meetod jätab kursori praegusel real. Saate siiski kasutada "vana" meetodi uue rea alustamiseks - Paomärk " n". Näiteks Console.Write ("Tere, nminu sõbrale! n"); kuvatakse kaks rida ja Kursori algusest kolmandiku. Käivitamine Edasi tuleb tervitusrakendus käima saada
On olemas sündmuste osaline järjestus Programmi töö (.heap) Ülesandele seatav piir-aeg võib olla: Laiendused: alglaadimine Kompilaatori väljundiks on nn. objekt-fail (.o) Range (hard dealine): tuleb täielikult ja alati Ajalised Petri võrgud (aja aspektide · protsessori initsialiseerimine eraldi tabel märgendite jaoks (lahendab linkur) saavutada. modelleerimiseks) · programmi initsialiseerimine Kompilaatori tüüp sõltub protsessorist Mittesaa tamine õib t a katast oofilised tagajä jed
Relatsioonis võib olla üks või mitu välisvõtit. Relatsioonis võib välisvõti ka puududa. Atribuutide tüübid Komponeeritud atribuut (composite attribute) Atomaarne atribuut (simple or atomic attribute) Üheväärtuseline atribuut (single-valued attribute) Mitmene ehk korduv atribuut (multivalued attribute) Tuletatud atribuut (derived attribute) Salvestatud atribuut (stored attribute) Nullväärtus (null value). Semantilised mudelid Semantilised mudelid: · kompilaatori mudel (compiler model) - keele tähenduseks on vastavad sihtkeele stringid, mida kompilaator tekitab, semantika kirjelduseks on täidetavad käsud (vajalik kompilaatorile) · interpreteerimismudel (interpreter model e operational model) - milline on seos sisendi ja täidetavate käskude vahel, selle mudeli kirjeldamiseks peab olema süsteem programmi struktuuride ülesmärkimiseks (vajalik programmeerijale)
Tulemuseks näeme, et lisandus üks uus võti pakettide signeerimiseks. Uuendame pakettide nimistut. klaus@server:/$ sudo apt-get update Installeerime Oracle Java 8. klaus@server:/$ sudo apt-get install oracle-java8-installer Installeerimise käigus antakse valik nõustuda tarkvaralitsensi tingimustega. Töö autor vastas kõigile installeerimise käigus tekkinud küsimustele jaatavalt. Pärast installeerimist veendume installeeritud Java kompilaatori versiooni õigsuses. klaus@server:/$ javac -version javac 1.8.0_161 Ülesanne 7 Leia find korraldusega viimase 24 tunni jooksul muudetud konfiguratsioonifailid. Konfiguratsioonifailid asuvad kataloogis /etc Lipuga -mtime -1 näeme faile, mis on muudetud viimase 24 tunni jooksul. Kui kirjutaksime -mtime 1 , näeksime faile, mida on muudetud täpselt 24 tundi tagasi. Kui kirjutaksime -mtime +1 , näeksime faile, mida on muudetud vähemalt 24 tundi eest.
o Luues sel teel uusi laademooduleid Laademoodul · Load module * laademoodul · Laadimis- ja täitmiskõlblik program või programmiosa · Laademoodul on tavaliselt linkuri rakendamise tulemus. Laadur · Loader * laadur · Programm, mis kopeerib teisi programme välismälust sisemälli või andmeid välismälust sisemällu või sisemälust registritesse. Objektmoodul · Object module (1) * objektmoodul · Assembleri või kompilaatori väljastatav ning linkurisse sisestamiseks sobiv programmiüksus · Object module (2) · Linkmiseks piisavalt täielik objektprogramm või ta osa. Objektmooduleid väljastavad harilikult assemblereid ja kompilaatorid. Lähtekood · Source code * lähtekood · Kood väljendatuna kujul, mis sobib sisendandmetekse assemblerile, kompilaatorile või mule translaatorile. Süsteemsed teegid · System library * süsteemiteek
ühe väikese teretusega. Jutumärgid on ümber selleks, et arvuti saaks aru, et tegemist on tekstiga - mitte näiteks käskluse või muutuja (märksõna) alla salvestatud andmetega. } } Kaks sulgu lõpus lõpetamas eespool avatud sulgusid. Iga sulg, mis programmikoodi sees avaneb, peab ka kusagil lõppema - muidu ei saa arvuti asjast aru, hing ei tule sisse ja programm ei hakka tööle. Tühikud ja reavahetused on üldjuhul vaid oma silmailu ja pildi korrastuse pärast. Kompilaatori jaoks võiks kõik teksti rahumeeli ühte ritta jutti kirjutada, enesele kasvaks aga selline programm varsti üle pea. Siin näites paistab, et alamprogramm Main' i sulg on sama kaugel taandes kui alamprogrammi alustav rida ise. Ning klassi sulg on sama kaugel kui klassi alustava rea sulg. Nõnda saab programmi pikemaks kasvamisel kergemini järge pidada, millises plokis või millistes plokkides vaadatav käsk asub.
masinakoodi. 69. Assemblerikeelse programmi transleerimine masinakeelde (praktikum). Assamblerikeelne programm (masinast sõltuv madalataseme keel) -> assambleri programm (transleerimine) -> masinakood. Translaatorina kasutatava programmi ülesanne on lähtekeelse, kas masinast sõltumatu kõrgkeelse või sõltuva madaltaseme keelse, programmi teisendamine masinakeelde. 70. Pseudokäskude (direktiivide) kasutamine kompilaatori ohjel (praktikumis kasutatud simulaatori näitel). Assemblerikeeles kasutatakse lisaks masinakäskudele veel ka pseudokäske ehk direktiive. Direktiivid muudavad assemblerikeelse programmi kasutamise mugavamaks. Pseudokäsud annavad assemblerile täiendavat infot, kuid nad ei genereeri koodi. Oma funktsionaalse otstarbe järgi võivad direktiivid olla jaotatud veel klassidesse – nimede defineerimise direktiivid (näiteks Db), transleerimise juhtimise direktiivid (näiteks Org) jt
Praegu piirdutakse ühe väikese teretusega. Jutumärgid ümber selleks, et arvuti saaks aru, et tegemist on tekstiga - mitte näiteks käskluse või muutuja (märksõna) alla salvestatud andmetega. } } Kaks sulgu lõpus lõpetamas eespool avatud sulgusid. Iga sulg, mis programmikoodi sees avaneb, peab ka kusagil lõppema - muidu ei saa arvuti asjast aru, hing ei tule sisse ja programm ei hakka tööle. Tühikud ja reavahetused on üldjuhul vaid oma silmailu ja pildi korrastuse pärast. Kompilaatori jaoks võiks kõik teksti rahumeeli ühte ritta jutti kirjutada, enesele kasvaks aga selline programm varsti üle pea. Siin näites paistab, et alamprogramm Main'i sulg on sama kaugel taandes kui alamprogrammi alustav rida ise. Ning klassi sulg on 7 sama kaugel kui klassi alustava rea sulg. Nõnda saab programmi pikemaks kasvamisel kergemini järge pidada, millises plokis või millistes plokkides vaadatav käsk asub.
throw new java.util.NoSuchElementExcept ion(); else return votaJargmine(); } Erindite programmeerimisel tekkivaid probleeme 11 try-blokis defineeritud objekte ei saa väljaspool (näiteks püünistes) hästi kasutada, sest kompilaatori arvates ei ole neid olemas (ei ole garanteeritud juhtimise jõudmine nende kirjeldusteni). 11 Java ei võimalda katkestuskohast jätkamist ("resume" vms.). Kui soovitakse sellist efekti saavutada, tuleb katsendidirektiiv panna mingi tsükli mõjupiirkonda. 11 Isetehtud erindite korral tuleks hoolitseda konstruktorite eest, kuna ainult vaikekonstruktorist ei piisa:
Once Principle Kõrgema taseme moodulid ei tohi sõltuda madalama taseme moodulitest Dependency Inversion Principle] 64. Disaini mustrite (design-patterns) kasutamine. · Paar: probleem - lahendus -> disaini muster · Muster koosneb: 1. Iseloomustav nimi 2. Lahendatav probleem 3. Lahendus probleemile 4. Järeldused lahendusest RAS Programmeerimiskeeled, meetrika, testimine, agendid 65. ,,Cardelli meetrika" valikukriteeriumid kompilaatori valimiseks? · Economy of execution kui kiiresti programm töötab? · Economy of Compilation kaua võtab aega koodist täidetava programmi saamine? · Economy of Small-Scale Development kui palju vaeva peab individuaalne programmeerija nägema? · Economy of Large-Scale Development kui palju vaeva peab programmeerijate meeskond nägema? · Economy of Language Features kui palju vaeva on vaja keele õppimiseks? 66
Kohandamise korral on tegemist toodete, alates rakendusorienteeritud lausintegraallülitustest kuni kiipsüsteemide (SoC //system-on-a-chip//) ja kiipidesüsteemideni (SiP //systems-in- package//). Lisaks joonis lk 209 68. Assemblerikeele kasutamine arvutite programsel juhtimisel (praktikum). Alates Lk 64. 69. Assemblerikeelse programmi transleerimine masinakeelde (praktikum). 70. Pseudokäskude (direktiivide) kasutamine kompilaatori ohjel (praktikumis kasutatud simulaatori näitel). Alates Lk 74 mingi asi Korralikult läbi töötada kõikides loengutes toodud näidisülesanded. Tähelepanu pöörata neis kasutatud valemitele ja lahenduskäikudele. Iseseisev töö Läbi töötada peatükid 4.1. ja 4.2. raamatust Arvo Toomsalu. RISC-mikroprotsessorite arhitektuur. TTÜ, Tallinn 1995.
Throwable(Throwable cause) meetodid Throwable getCause() Throwable initCause(Throwable cause) Tõend (ingl. assert) · tõend, mille tingimus peab olema tõene programmi kogu töö vältel · Kaks viisi assert condition; assert condition : expr; · Sisselülitamine java ea TestAssert Mõned mured try-blokis defineeritud objekte ei saa väljaspool (näiteks püünistes) kasutada · kompilaatori arvates ei ole neid seal olemas (ei ole garanteeritud juhtimise jõudmine nende kirjeldusteni). Java ei võimalda katkestuskohast jätkamist · Kui soovitakse sellist efekti saavutada, tuleb katsendidirektiiv panna mingi tsükli mõjupiirkonda. Sisend/väljund (ingl. k. input/output) - pakett java.io Javas voo abil: · klaviatuurilt, failist, sõnest, Internetist ... · ekraanile, faili ... · ei pruugi teada detaile Failid - java.io.File
Iga sammu järel kontrollides, et kas rakendus ikka tööle läheb. Kui sammud on piisavalt pisikesed, siis on hea vaadata, millise juures neist järsku töötamine lakkab - selle järgi juba võimalik edasi nuputada. Vahel juhtub ka olukordi, kus töötavast näitest mittetöötava juurde liikumisel saadakse lõpuks pealtnähasamasugune, ent töötav kood. Siis on ju kõik hästi, mõistatuse põhjuseks sellisel juhul enamasti mõni sisse lipsanud või mujalt kaasa tulnud vigane sümbol, mis kompilaatori töö sassi ajab. Nõnda muutmise teel aga saab ka sellistest muredest lahti. Kui pole käepärast niisama sobivat töötavat näidet, siis aitab vigasest näitest ridade/plokkide välja kommenteerimine. Et kui alles jäänud vaid tühi koodilõik koos algus- ja lõpusulgude/märkidega, siis see kas hakkab tööle, või on käivitusviga hoopis koodist väljapool. Näiteks kipub vahel juhtuma, et mõned koodifailid on jäänud ülekandmise käigus projektist välja ning seetõttu ei saa