Verifikacija softvera
|
|
- Malcolm Banks
- 5 years ago
- Views:
Transcription
1 Simboličko izvršavanje (drugi deo) Matematički fakultet, Univerzitet u Beogradu
2 Pregled Modelovanje memorije 1 Modelovanje memorije 2 3 4
3 Pregled Modelovanje memorije 1 Modelovanje memorije 2 3 4
4 Modelovanje memorije Nizovi i pokazivači Primeri koje smo razmatrali su koristili jednostavnu memoriju koja sve podatke čuva kao skalare, tj bez redirekcije. Važan aspekt simboličkog izvršavanja je kako se memorija i rad sa memorijom modeluje tako da podrži programe sa pokazivačima i nizovima. To zahteva proširivanje memorije tako da preslikava ne samo promenljive u njihove simboličke vrednosti, već i memorijske adrese u simbličke izraze ili konkretne vrednosti.
5 Modelovanje memorije Simboličko skladište σ Simboličko skladište σ može se posmatrati kao preslikavanje koje adresama u memoriji (umesto samim promenljivama) dodeljuje konkretne ili simbolilke vrednosti. Na ovaj način i dalje možemo da podržavamo obične promenljive koristeći njihove adrese umesto imena u tom preslikavanju. Na primer, umesto da se x preslikava u izraz e (u zapisu x e) možemo da to razmatramo zapravo kao &x e gde je &x konkretna adresa promenljive x. Takode, ako je v niz i c konstanta, onda za v[c] e zapravo razmatramo &v + c e
6 Modelovanje memorije Symbolic memory address problem Za konkretne vrednosti to ne predstavlja problem (tj kada je indeks konstanta) ali izazov je obraditi situacija kada je indeks simbolički izraz - symbolic memory address problem Izbor modelovanja memorije je važan izbor za dizajn simboličkog izvršavanja jer utiče direktno i na ostvarenu pokrivenost koda istraživanjem putanja i na skalabilnost rešavača. Postoje različiti pristupi rešavanju ovog problema.
7 Simbolička memorija At the highest level of generality, an engine may treat memory addresses as fully symbolic. Dva osnovna pristupa, koja je još King opisao u svom radu iz 76. godine su 1 Pravljenje novih stanja 2 Pravljenje if-then-else formula Teorija nizova smt rešavači
8 State forking Pravljenje novih stanja Ako operacija čita ili piše na neku simboličku adresu, prave se nova stanja razmatranjem svih mogućih stanja koje mogu da rezultuju kao posledica te operacije. Uslovi putanje se dopunjavaju za svako novokreirano stanje. Primer: 1. void foobar ( unsigned i, unsigned j ) { 2. int a[2] = { 0 }; 3. if (i>1 j>1) return; 4. a[i] = 5; 5. assert (a [j]!= 5); 6. }
9 Pravljenje novih stanja primer
10 if-then-else formule ite formule Alternativni pristup se sastoji u enkodiranju neodredenosti mogućih vrednosti simboličkog pokazivača u izraze koji se čuvaju u okviru simboličkog skladišta i ograničenja putanja, bez pravljenja novih stanja. Osnovna ideja je da se iskoristi mogućnost rešavača da rezonuju o formulama koje sadrže if-then-else izraze, tj u formi ite(cond, trueexp, falseexp)
11 if-then-else formule ite(cond, trueexp, falseexp) Pristup radi drugačije za operacije čitanja i pisanja. Neka je α simbolička adresa koja može da ima konkretne vrednosti a 1, a 2... čitanje sa lokacije α podrazumeva izraz ite(α = a 1, σ(a 1 ), ite(α = a 2, σ(a 2 ),...)) pisanje izraza e na lokaciju α menja simboličko skladište σ tako što svaku vrednost promenljivih na adresama a 1, a 2... postavlja na sledeci način: σ(a i ) = ite(α = a i, e, σ(a i ))
12 if-then-else formule primer
13 SMT theory of arrays Teorija nizova When using a theory of arrays, operations can in fact be expressed as first-class entities in constraint formulas. Teorija nizova (eng. Theory of Arrays, skraćeno ARR) uvodi ternarni funkcijski simbol store i binarni funkcijski simbol select.
14 SMT theory of arrays Funkcija store vrši izmenu vrednosti na odgovarajućem mestu u nizu i ima tri argumenta: (i) niz, (ii) poziciju (indeks) u nizu na koju se smešta vrednost, (iii) vrednost koja se smešta u niz. Za zadati niz a, celobrojnu vrednost i i vrednost v tipa nad kojim je niz definisan, term store(a, i, v) označava niz koji je identičan sa nizom a, osim što je vrednost na poziciji i jednaka v.
15 SMT teorija nizova Funkcija select vrši čitanje vrednosti sa odgovarajućeg mesta u nizu i ima dva argumenta: (i) niz, (ii) poziciju (indeks) u nizu sa koje se čita vrednost. Za zadati niz a i celobrojnu vrednost i, term select(a, i) označava vrednost na poziciji i niza a.
16 Teorija nizova Aksiome Teorija nizova je teorija koja ima sledeće dve aksiome: a i v (select(store(a, i, v), i) = v) a i j v (i j select(store(a, i, v), j) = select(a, j)) (A1) (A2)
17 NP-kompletan problem Odlučiv i NP-kompletan Univerzalno kvatnifikovani fragment ove teorije je odlučiv i problem zadovoljivosti u ovom fragmentu teorije je NP-kompletan. Aksioma proširivanja Pored prethodne dve aksiome, ponekad se dodaje i aksioma proširivanja (eng. extensionality) a b (( i (read(a, i) = read(b, i)) a = b) (A3)
18 Primeri Modelovanje memorije Primer Naredna formula je primer zadovoljive formule teorije nizova: b = store(a, 5, select(a, 3)) select(a, 3) = select(b, 5). Primer Naredna formula je primer nezadovoljive formule teorije nizova: store(a, i, x) b select(b, i) = y select(store(b, i, x), j) = y a = b i = j Da bi se dokazala nezadovoljivost ove formule, potrebno je koristiti i aksiomu (A3).
19 Simbolička memorija Ograničenja Due to its generality, fully symbolic memory supports the most accurate description of the memory behavior of a program, accounting for all possible memory manipulations. In many practical scenarios, the set of possible addresses a memory operation may reference is small, allowing accurate analyses using a reasonable amount of resources. In general, however, a symbolic address may reference any cell in memory, leading to an intractable explosion in the number of possible states. For this reason, a number of techniques have been designed to improve scalability
20 Umesto simboličke memorije Kako puna simbolička memorija ne skalira dobro, potrebno je napraviti neki kompromis Otvoren problem
21 Konkretna memorija Konkretizacija simboličkih adresa Ukoliko je kombinatorna kompleksnost analize prevelika jer vrednosti pokazivača ne mogu da se ograniče na dovoljno male opsege, često se koristi strategija konkretizacije simboličke pokazivačke vrednosti u neku konkretnu vrednost. U ovom slučaju imamo Trading soundness for performance. This can reduce the number of states and the complexity of the formulas fed to the solver and thus improve running time, although may cause the engine to miss paths that, for instance, depend on specific values for some pointers.
22 Konkretna memorija Konkretizacija simboličkih adresa Concretization naturally arises in offline executors Konkretizacija pokazivačke vrednosti tipa T* u NULL ili u adresu novo-alociranog objekta veličine sizeof(t). Ovaj izbor može da ide random (DART) ili da imamo različita stanja za različite izbore (CUTE - prvo proba sa NULL, pa zatim sa konkretnom adresom). Ako je T struktura, ista konkretizacija se rekurzivno sprovodi na sva polja na koja pokazuje objekat.
23 Parcijalno modelovanje memorije Izmedu simboličke i konkretne memorije Da bi se prevazišli problemi skaliranja pune ismboličke memorije, a da bi se preskočio gubitak informacija koji nastaje konkretizacijom, jedan pravac je parcijalno modelovanje memorije. The key idea is that written addresses are always concretized and read addresses are modeled symbolically if the contiguous interval of possible values they may assume is small enough.
24 Parcijalno modelovanje memorije Izmedu simboličke i konkretne memorije This model is based on a trade-off: it uses more expressive formulas than concretization, since it encodes multiple pointer values per state, but does not attempt to encode all of them like in fully symbolic memory. A basic approach to bound the set of possible values that an address may assume consists in trying different concrete values and checking whether they satisfy the current path constraints, excluding large portions of the address space at each trial until a tight range is found. This algorithm comes with a number of caveats
25 Lenja inicijalizacija Kompleksne strukture podataka u C++-u i Javi Simboličko izvršavanje u prisustvu struktura podataka kao što su liste i drveta je značajno teže. A framework for software verification that combines symbolic execution and model checking to handle linked data structures such as lists and trees. Generalize symbolic execution by introducing lazy initialization to effectively handle dynamically allocated objects. Combine lazy initialization with user-provided method preconditions, i.e., conditions that are assumed to be true before the execution of a method.
26 Pregled Modelovanje memorije Odsecanje nedostižnih putanja Spajanje stanja Aproksimacije petlji 1 Modelovanje memorije 2 Odsecanje nedostižnih putanja Spajanje stanja Aproksimacije petlji 3 4
27 Eksplozija putanja Odsecanje nedostižnih putanja Spajanje stanja Aproksimacije petlji Osnovni izazov simboličkog izvršavanja One of the main challenges of symbolic execution is the path explosion problem: a symbolic executor may fork off a new state at every branch of the program, and the total number of states may easily become exponential in the number of branches. Keeping track of a large number of pending branches to be explored, in turn, impacts both the running time and the space requirements of the symbolic executor.
28 Odsecanje nedostižnih putanja Spajanje stanja Aproksimacije petlji Pruning Unrealizable Paths We can reduce the state space by invoking an SMT solver to detect unrealizable paths. For example, if (a > 0) {... } if (a > 1) {... } Eager evaluation calls an SMT solver at each branch. Lazy evaluation does not to reduce the burden on the solver.
29 Odsecanje nedostižnih putanja Spajanje stanja Aproksimacije petlji State Merging State merging is a technique that merges different paths into a single state. For example, 1. void foo(int x, int y) { 2. if (x < 5) 3. y = y * 2; 4. else 5. y = y * 3; 6. return y; 7. } without state merging with state merging
30 Odsecanje nedostižnih putanja Spajanje stanja Aproksimacije petlji State Merging Given two states (stmt, σ 1, π 1 ) and (stmt, σ 2, π 2 ), the merged state is (stmt, σ, π 1 π 2 ) where σ merges σ 1 and σ 2 with ite expressions. State merging has trade-offs: merging decreases the number of paths to explore but also put a burden on constraints solvers. State merging heuristics: See Query cost estimation, Veritesting, etc See also (Efficient State Merging in Symbolic Execution. PLDI 2012)
31 Odsecanje nedostižnih putanja Spajanje stanja Aproksimacije petlji Handling Loops Consider the program, where we do not know the loop bound: void f (unsigned int n) { i = 0; while (i < n) { i = i + 1; } } Symbolic execution would keep forking and running forever.
32 Odsecanje nedostižnih putanja Spajanje stanja Aproksimacije petlji Handling Loops A common solution in practice is to unroll the loop for a fixed bound, e.g., k = 2: void f (unsigned int n) { i = 0; if (i < n) { i = i + 1; } if (i < n) { i = i + 1; } } The resulting analysis compromises soundness.
33 Odsecanje nedostižnih putanja Spajanje stanja Aproksimacije petlji Handling Loops Another solution is to provide a loop invariant and let symbolic execution use it to skip the analysis of the loop: void f (unsigned int n) { i = 0; while (i < n) { // inv: i <= n i = i + 1; } } The resulting analysis is either semi-automatic or over-approximated.
34 Pregled Modelovanje memorije 1 Modelovanje memorije 2 3 4
35 Simboličko izvršavanje binarnog koda Na postojeće probleme i tehnike, dodaje se: Lifting to an Intermediate Representation VEX, LLVM Reconstructing the Control Flow Graph Code Obfuscation
36 Pregled Modelovanje memorije 1 Modelovanje memorije 2 3 4
37 Constraint Solving A key component of symbolic execution is a constraint solver. Two problems: Invoking an SMT solver is expensive. Symbolic execution maintains a mapping from formulas to satisfying assignments: e.g., x + y < 10 x > 5 {x = 6, y = 3} When we query a weaker formula, e.g., x + y < 10, we can reuse the previously computed solution, without invoking an SMT solver. When the formula is stronger, e.g., x + y < 10 x > 5 y 0, then we first try the solution in the cache. If it does not work, call the SMT solver. Constraints from real-world software are hard to solve. E.g., non-linear constraints
38 Tehnike smanjivanja opterećenja rešavača Reducing the demands on the solver On-the-fly expression simplification Incremental solving Solution caching Substituting concrete values for symbolic in complex path conditions
39 Literatura Literatura Tkest je zasnovan na radu A Survey of Symbolic Execution Techniques autori: Roberto Baldoni, Emilio Coppa, Daniele Cono D Elia, Camil Demetrescu, and Irene Finocchi
Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt
Funkcionalno programiranje Interoperabilnost jezika Scala i Java Prevođenje u Java bajt kod Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući
More informationOsnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi
Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi DELEGATI Bezbedni pokazivači na funkcije Jer garantuju vrednost deklarisanog tipa. Prevodilac prijavljuje grešku ako pokušate da povežete
More informationRačunarske osnove Interneta (SI3ROI, IR4ROI)
Računarske osnove terneta (SI3ROI, IR4ROI) Vežbe MPLS Predavač: 08.11.2011. Dražen Drašković, drazen.draskovic@etf.rs Autori: Dražen Drašković Naučili ste na predavanjima MPLS (Multi-Protocol Label Switching)
More informationProgramiranje III razred
Tehnička škola 9. maj Bačka Palanka Programiranje III razred Naredbe ciklusa for petlja Naredbe ciklusa Veoma često se ukazuje potreba za ponavljanjem nekih naredbi više puta tj. za ponavljanjem nekog
More informationPREDMET. Osnove Java Programiranja. Čas JAVADOC
PREDMET Osnove Java Programiranja JAVADOC Copyright 2010 UNIVERZITET METROPOLITAN, Beograd. Sva prava zadržana. Bez prethodne pismene dozvole od strane Univerziteta METROPOLITAN zabranjena je reprodukcija,
More informationpojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1
NIZOVI Niz deklarišemo navođenjemtipa elemenata za kojim sledi par srednjih zagrada[] i naziv niza. Ako je niz višedimenzionalni između zagrada[] se navode zarezi, čiji je broj za jedan manji od dimenzija
More informationVHDLPrimeri Poglavlje5.doc
5. VHDL opis kola koja obavljaju osnovne aritmetičke funkcije Sabirači Jednobitni potpuni sabirač definisan je tablicom istinitosti iz Tabele 5.1. Tabela 5.1. cin a b sum cout 0 0 0 0 0 0 0 1 1 0 0 1 0
More informationProgramiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010
Programiranje Programski jezik C prof.dr.sc. Ivo Ipšić 2009/2010 Sadržaj Ulazno-izlazne funkcije Datoteke Formatirane datoteke Funkcije za rad s datotekama Primjeri Datoteke komunikacija između programa
More informationOsnove programskog jezika C# Čas 4. Nasledjivanje 2. deo
Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Nasledjivanje klasa Modifikator new class A { public virtual void F() { Console.WriteLine("I am A"); } } class B : A { public override void F()
More informationMašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv
Mašinska vizija Dr Nenad Jovičić 2017. tnt.etf.rs/~mv Linearne 2D geometrijske transformacije 2D geometrijske transformacije Pretpostavka: Objekti u 2D prostoru se sastoje iz tačaka i linija. Svaka tačka
More informationUNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET
UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET Katedra za elektroniku Računarska elektronika Grupa br. 11 Projekat br. 8 Studenti: Stefan Vukašinović 466/2013 Jelena Urošević 99/2013 Tekst projekta :
More informationSymbolic Execution for Bug Detection and Automated Exploit Generation
Symbolic Execution for Bug Detection and Automated Exploit Generation Daniele Cono D Elia Credits: Emilio Coppa SEASON Lab season-lab.github.io May 27, 2016 1 / 29 Daniele Cono D Elia Symbolic Execution
More informationUputstvo za podešavanje mail klijenta
Uputstvo za podešavanje mail klijenta 1. Podešavanje Thunderbird mail klijenta 1.1 Dodavanje mail naloga Da biste podesili Vaš mail klijent (u ovom slučaju Thunderbird) da prima i šalje mail-ove potrebno
More informationUputstvo za korišćenje logrotate funkcije
Copyright AMRES Sadržaj Uvod 3 Podešavanja logrotate konfiguracionog fajla 4 Strana 2 od 5 Uvod Ukoliko je aktivirano logovanje za RADIUS proces, može se desiti da posle određenog vremena server bude preopterećen
More informationUvod u relacione baze podataka
Uvod u relacione baze podataka Ana Spasić 5. čas 1 Podupiti, operatori exists i in 1. Izdvojiti imena i prezimena studenata koji su položili predmet čiji je identifikator 2001. Rešenje korišćenjem spajanja
More informationSymbolic and Concolic Execution of Programs
Symbolic and Concolic Execution of Programs Information Security, CS 526 Omar Chowdhury 10/7/2015 Information Security, CS 526 1 Reading for this lecture Symbolic execution and program testing - James
More informationVežbe - XII nedelja PHP Doc
Vežbe - XII nedelja PHP Doc Dražen Drašković, asistent Elektrotehnički fakultet Univerziteta u Beogradu Verzija alata JavaDoc za programski jezik PHP Standard za komentarisanje PHP koda Omogućava generisanje
More informationVRIJEDNOSTI ATRIBUTA
VRIJEDNOSTI ATRIBUTA Svaki atribut (bilo da je primarni ključ, vanjski ključ ili običan atribut) može i ne mora imati ograničenja na svojim vrijednostima. Neka od ograničenja nad atributima: Null / Not
More informationProgramske paradigme Funkcionalna paradigma
Programske paradigme Funkcionalna paradigma 1. čas: Uvod u funkcionalno programiranje. Programski jezik Haskel. Upoznavanje sa razvojnim okruženjem. Tipovi podataka. Funkcionalno programiranje Stil u programiranju
More informationSberbank Business Online na Mozilla FireFox
Sberbank Business Online na Mozilla FireFox Verzija 1.6 Srpanj 2016. Sberbank d.d. Stranica 1 SADRŽAJ 1 INSTALACIJA... 2 2 POKRETANJE MOZILLE FIREFOX... 3 2.1 IMPORT SECURITY MODULA... 4 2.2 AUTOMATSKI
More informationVB komande. Programiranje 1
VB komande Programiranje 1 Zadatak 1: Sastaviti program koji se sastoji iz jedne ListBox kontrole, jedne Textbox kontrole i dva komandna dugmeta. Klikom na prvo komandno dugme umeće se u ListBox sadržaj
More informationx y = z Zadaci - procedure
Zadaci - procedure Zad1. Data je kvadratna meta u koordinatnom sistemu sa koordinatama A(0,0), B(1,0), C(1,1), D(0,1). Sastaviti proceduru Gadjanje koja će odrediti broj poena na sledeći način: ako je
More informationUniverzitet u Nišu Građevinsko-arhitektonski fakultet. 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje.
Univerzitet u Nišu Građevinsko-arhitektonski fakultet Informatika 2 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje Milica Ćirić Ciklična algoritamska struktura Ciklična struktura (petlja)
More informationn HW7 due in about ten days n HW8 will be optional n No CLASS or office hours on Tuesday n I will catch up on grading next week!
Announcements SMT Solvers, Symbolic Execution n HW7 due in about ten days n HW8 will be optional n No CLASS or office hours on Tuesday n I will catch up on grading next week! n Presentations n Some of
More informationUPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a
UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a Webmail sistem ima podršku za SSL (HTTPS). Korištenjem ovog protokola sva komunikacija između Webmail sistema i vašeg Web čitača je kriptovana. Prilikom pristupa
More informationNIZOVI.
NIZOVI LINKOVI ZA KONZOLNI C# OSNOVNO http://www.mycity.rs/net/programiranje-u-c-za-osnovce-i-srednjoskolce.html http://milan.milanovic.org/skola/csharp-00.htm Niz deklarišemo navođenjem tipa elemenata
More informationJezik Baze Podataka SQL. Jennifer Widom
Jezik Baze Podataka SQL SQL o Jezik koji se koristi u radu sa relacionim bazama podataka o Nije programski jezik i manje je kompleksan. o Koristi se isključivo u radu za bazama podataka. o SQL nije case
More informationUvod u programiranje - vežbe. Kontrola toka izvršavanja programa
Uvod u programiranje - vežbe Kontrola toka izvršavanja programa Naredbe za kontrolu toka if, if-else, switch uslovni operator (?:) for, while, do-while break, continue, return if if (uslov) naredba; if
More information2. Linijska algoritamska struktura
Univerzitet u Nišu Građevinsko-arhitektonski fakultet Informatika 2 2. Linijska algoritamska struktura Milica Ćirić Blokovi za prikaz algoritma Algoritam se vizuelno može prikazati pomoću blok dijagrama,
More informationnamespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
Spojnice using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;
More informationVDSL modem Zyxel VMG1312-B10A/B30A
VDSL modem Zyxel VMG1312-B10A/B30A Default Login Details LAN IP Address http://192.168.2.1 User Name user Password 1234 Funkcionalnost lampica Power lampica treperi kratko vrijeme nakon uključivanja modema,
More information... ; ako je a n parno. ; ako je a n neparno
Zadaci vezani za ciklus sa preduslovom (WHILE) Zad. Napisati program za izračunavanje n_tog stepena broja a. Zad2. Napisati program za izračunavanje sume S kvadrata parnih i kubova neparnih prirodnih brojeva
More informationOsnovne strukture podataka
Osnovne strukture podataka Osnovni pojmovi Promenljive i konstante su osnovni oblici podataka sa kojima se operiše u programu Deklaracije listaju spisak promenljivih koje ce se koristiti, određuju kog
More informationPrirodno-matematički fakultet u Nišu Departman za fiziku. dr Dejan S. Aleksić Programiranje u fizici
Programiranje u fizici Prirodno-matematički fakultet u Nišu Departman za fiziku dr Dejan S. Aleksić Programiranje u fizici 7-8 Definicija, inicijalizacija promenljivih 2/21 u C-u Program napisan u programskog
More informationVariable Neighborhood Descent - VND (Metoda promenljivog spusta)
Variable Neighborhood Descent - VND (Metoda promenljivog spusta) Izabrati skup okolina N k, k = 1,..., k max koje će se koristiti za pretragu; Na slučajan način izabrati početno rešenje x X i postaviti
More informationCSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets
CSS CSS CSS: Cascading Style Sheets - Opisuje izgled (appearance) i raspored (layout) stranice - Sastoji se od CSS pravila, koji defini[u skup stilova selector { property: value; 1 Font face: font-family
More information1/42 SQL DDL. CREATE ALTER DROP Schema Table Tablespace Index View Domain Constraint... DECLARE TABLE (DB2)
1/42 SQL DDL CREATE ALTER DROP Schema Table Tablespace Index View Domain Constraint... DECLARE TABLE (DB2) 2/42 SQL DDL: CREATE SCHEMA CREATE SCHEMA ime-sheme [ AUTHORIZATION ime-vlasnika-sheme] [ CREATE
More informationb) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.
NAREDBA CIKLUSA SA PREDUSLOVOM WHILE 1.Odrediti vrednosti s i p nakon izvrsenja sledecih naredbi za dato a=43, a=34, a=105 program p1; var a,s,p:integer; write('unesite a:');readln(a); p:=a; s:=0; while
More information8. NIZOVI. // deklaracija niza od 10 elemenata: data[0], data[1],..data[9] int data[10] ; S elementima niza se operira kao s prostim varijablama
8. NIZOVI Niz je indeksirani skup podataka - elemenata niza. Niz se deklarira imenom iza kojeg se u uglatim zagradama zapisuje broj elemenata niza, a ispred imena se zapisuje tip elemenata. // deklaracija
More informationInformacioni sistemi i baze podataka
Fakultet tehničkih nauka, Novi Sad Predmet: Informacioni sistemi i baze podataka Dr Slavica Kordić Milanka Bjelica Vojislav Đukić Rad u učionici (1/2) Baze podataka (db2015): Studentska korisnička šema
More information24/03/2018. Deklaracija promenljivih. Inicijalizacija promenljivih. Deklaracija i inicijalizacija promenljivih
Deklaracija promenljivih Inicijalizacija promenljivih Deklaracija promenljive obuhvata: dodelu simboličkog imena promenljivoj i određivanje tipa promenljive (tip određuje koja će vrsta memorijskog registra
More informationUputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.
Ime i prezime: Asistent: Predava : Programiranje (C) 1. kolokvij 14. 4. 2003. 1. 2. 3. 4. 5. 6. 7. Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj
More informationPROGRAMIRANJE. Amir Hajdar
PROGRAMIRANJE Amir Hajdar Teme 2 Klase i objekti u Javi Primjer kroz klasu Krug Atributi i metode Inicijalizacija objekata (konstruktori) Polymorphism Statičke varijable i metode This Klase i objekti u
More informationIzrada VI laboratorijske vježbe
Izrada VI laboratorijske vježbe 1. Programirati proceduru koja se aktivira sa Standard palete alatki klikom na button Fajlovi. Prilikom startovanja procedure prikazuje se forma koja sadrži jedan list box
More informationAlgoritmi i strukture podataka 2. Čas, Uvod u C++
Algoritmi i strukture podataka 2. Čas, Uvod u C++ Aleksandar Veljković 2017/2018 1 Uvod Jezik C++ je jezik koji pripada objektno orijentisanoj paradigmi, ipak, u okviru ovog kursa naglasak neće biti na
More informationLecture Notes: Unleashing MAYHEM on Binary Code
Lecture Notes: Unleashing MAYHEM on Binary Code Rui Zhang February 22, 2017 1 Finding Exploitable Bugs 1.1 Main Challenge in Exploit Generation Exploring enough of the state space of an application to
More informationWindows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365
Windows 8 Licenciranje, razlike u verzijama Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje Serverski proizvodi Server 2012, System centar 2012, SQL 2012, Sharepoint
More informationNumerical Computation
GNU Octave Numerical Computation vrlo često u tehnici retko stvarni problemi imaju closed-form solution čak i kad imaju, pitanje upotrebljivosti mnogo detalja numerički pristup u početku tretirano kao
More informationDETERMINATION OF THE CHARACTERISTIC PARAMETERS IN THE GENERAL COLLINEAR SPACES IN THE GENERAL CASE UDC (045)=20
FACTA UNIVERSITATIS Series: Architecture and Civil Engineering Vol. 3, N o, 005, pp. 09-7 DETERMINATION OF THE CHARACTERISTIC PARAMETERS IN THE GENERAL COLLINEAR SPACES IN THE GENERAL CASE UDC 54.75 (045)=0
More informationPRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA
PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA SPECIFIKACIJA BAZE PODATAKA ZA PROJEKAT NAZIV_PROJEKTA Veb knjižara - Specifikacija baze podataka 1 10.04.2017. Verzija V 1.0 Datum: 20. mart 2017. Istorija
More informationSveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević
Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 08 Zvonimir Bujanović Slaven Kožić Vinko Petričević Uvod: (X)HTML i CSS Na ovim i idućim vježbama naučit ćemo osnove jezika za opisivanje
More informationUčitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.
Kontrolne naredbe Primjeri: Opšti oblik razgranate strukture (if sa ) if (uslov) Naredba 1 ili blok naredbi1 Naredba 2 ili blok naredbi2 Učitati broj x i štampati vrijednost double x, z; Scanner in=new
More informationCREATE DATABASE naziv-baze-podataka [IN naziv-dbspace]
SQL Vežbe V CREATE DATABASE CREATE DATABASE naziv-baze-podataka [IN naziv-dbspace] [WITH LOG LOG MODE ANSI] [ ON < filespec > [,...n ] ] [ LOG ON < filespec > [,...n ] ] < filespec > ::= ( [ NAME = logical_file_name,
More informationGUI - događaji (Events) i izuzeci. Bojan Tomić
GUI - događaji (Events) i izuzeci Bojan Tomić Događaji GUI reaguje na događaje (events) Događaj je neka akcija koju korisnik programa ili neko drugi izvrši korišćenjem perifernih uređaja (uglavnom miša
More informationSadržaj. Verzija 03/2017 Primjenjuje se od 20. novembra godine
Sadržaj 1 Web hosting 3 2 Registracija domena 3 3 Internet marketing 3 4 E mail paketi 4 5 Virtuoz 4 6 Internet Security servis 5 7 Kolokacija servera 6 8 Cloud usluge 6 9 Aktivni servisi koji nijesu u
More informationVidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije }
1. FUNKCIJE I STRUKTRUE PROGRAMA Složeni problemi lakše se rašavaju ako se podele na manje celine koje mogu nezavisno da se rešavaju. Rešenje celokupnog složenog problema dobija se kombinovanjem rešenja
More informationNISKE (stringovi) u C-u: podsećanje. 1. Primer programa koji uvodi niske karaktera terminisane nulom
NISKE (stringovi) u C-u: podsećanje 1. Primer programa koji uvodi niske karaktera terminisane nulom #include main() /* Poslednji bajt niske karaktera s se postavlja na '\0' tj. 0 char s[] = 'a',
More informationOvde će se raditi na funkcijama konverzija: konverzija tipa datuma u znak tip i obrnuto, konverzija broja u karakter tip i obrnuto
Database Programming with SQL kurs 2017 database design and programming with sql students slajdovi 5-1 Conversion Functions U db formatiranje i promene izgleda se izvode pomoću funkcija konverzija Ove
More informationCjenovnik usluga informacionog društva
Cjenovnik usluga informacionog društva Verzija: 01/2018 Sadržaj 1 Web hosting 3 2 Registracija domena 3 3 Internet marketing 3 4 E mail paketi 4 5 Virtuoz 4 6 Internet Security servis 5 7 Kolokacija servera
More informationInformatika Uvod u C#,.NET Framework i Visual Studio... nastavak...
Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak... Prof. dr. sc. Tomislav Pribanić Izv. prof. dr. sc. Vedran Podobnik Doc. dr. sc. Marija Seder Sveučilište u Zagrebu Fakultet elektrotehnike
More informationNumeričke metode i praktikum
Numeričke metode i praktikum Aleksandar Maksimović IRB / 23/03/2006 / Str. 1 vektori Vektor u 3D prostoru. C: int v1[3]; v1[0]=a;v1[1]=b;v1[2]=c; Fortran: INTEGER V1(3) V1(1)=a V1(2)=b V1(3)=c Skalarni
More informationObjektno orijentisano programiranje
Matematički fakultet, Univerzizet u Beogradu Katedra za računarstvo i informatiku Objektno orijentisano programiranje vežbe Biljana Stojanović Nemanja Mićović Nikola Milev 1 Stringovi String literali i
More informationRačunarske mreže. Čas 7. Ivana Tanasijević Matematički fakultet, Beograd
Računarske mreže Čas 7 Ivana Tanasijević e-mail: ivana@matf.bg.ac.rs Matematički fakultet, Beograd 1 Konvertovanje imena adresa i servisa Kako se pronalazi ime ili vrednost IP adrese ili servisa Konverzija
More informationAspektno programiranje u Javi. AOP + AspectJ
1 Aspektno programiranje u Javi AOP + AspectJ Posledice nemodularnosti? slabo praćenje toka izvršavanja smanjenja produktivnost smanjen code reuse smanjen krajnji kvalitet celog sistema teško održavanje
More informationPHP? PHP (recursive acronym "PHP: Hypertext Preprocessor") Open Source general-purpose scripting language Web development
Intro to PHP PHP? PHP (recursive acronym "PHP: Hypertext Preprocessor") Open Source general-purpose scripting language Web development Ugrađen u HTML. HTML script sa kodom koji nešto radi Izvršavanje na
More information12. Uskladištene procedure (Stored Procedures)
12. Uskladištene procedure (Stored Procedures) Uskladištena procedura je skup SQL iskaza koji su kompajlirani i sačuvani u trenutku njenog kreiranja. Veoma su moćne i preko njih mogu da se izvršavaju sve
More informationPITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI
PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI 1. Enkapsulacija je podataka. skrivanje apstrakcija nasledivanje 2. Unutar deklaracije klase navode se: definicije funkcija clanica prototipovi (deklaracije) funkcija
More information4. Fajlovi i direktorijumi
4.2 stat, fstat i lstat funkcije 4. Fajlovi i direktorijumi int stat(const char *path, struct stat *buf); int fstat(int fd, struct stat *buf); int lstat(const char *path, struct stat *buf); Ove 3 funkcije
More informationf2() f6() main() f3() f7() f4()
VI Potprogrami i funkcije Uobičajeno je da se pri pisanju programa koji treba da reše složene probleme, problemi razlažu na niz jednostavnijih(elementarnih) delova Za njihovo rešavanje se pišu nezavisni
More informationModbus TCP i dva PLC S7 1200
Industrijski sistemi i protokoli Modbus TCP i dva PLC S7 1200 1 Modbus TCP i dva PLC S7 1200 Laboratorijski deo - obavezno: Detaljno proučiti i testirati već napravljeni projekat za PLC-ove, koji se nalazi
More informationLekcija 07 C++ funkcije, stringovi, imenski prostor, memorija i fajlovi. Miljan Milošević
Lekcija 07 C++ funkcije, stringovi, imenski prostor, memorija i fajlovi Miljan Milošević C++ FUNKCIJE, STRINGOVI, IMENSKI PROSTOR, UPRAVLJANJE MEMORIJOM I FAJLOVI 01 02 03 04 Uvod Reference Funkcije u
More informationDogađaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.
Obrada izuzetaka Šta je izuzetak? Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi. Prosleđuje izuzetak,
More information16. Sigurnije programiranje
16. Sigurnije programiranje 16.1 Pretvorba tipova Pretvorba realnog broja u cijeli broj se može izvršiti naredbama: int i; double d; ili: i = (int) d; i = int(d); U cilju bolje kontrole pretvorbe tipova
More informationProgram Verification using Templates over Predicate Abstraction. Saurabh Srivastava and Sumit Gulwani
Program Verification using Templates over Predicate Abstraction Saurabh Srivastava and Sumit Gulwani ArrayInit(Array A, int n) i := 0; while (i < n) A[i] := 0; i := i + 1; Assert( j: 0 j
More informationInternet programiranje JavaScript - školska 2017/2018
Internet programiranje JavaScript - školska 2017/2018 Dražen Drašković, Elektrotehnički fakultet u Beogradu Sanja Delčev, Elektrotehnički fakultet u Beogradu Zašto JavaScript Nedostatak HTML strana je
More informationEditovanje registra u Windowsu
Editovanje registra u Windowsu Pre bilo kakvog menjanja registra,pravljenja novih kljuceva u njemu,menjanja vrednosti u raznoraznim kljucevima preporuka je da se uradi beckup registra.beckup registra mozete
More informationZ1. Dati RDF graf predstavljen u JSON-LD sintaksi potrebno je grafički predstaviti u skladu sa RDF notacijom. (5 poena)
Z1. Dati RDF graf predstavljen u JSON-LD sintaksi potrebno je grafički predstaviti u skladu sa RDF notacijom. (5 poena) "@context": "http://schema.org", "@type": "JobPosting", @id : http://example.com/person/ab12,
More informationMikrokontroleri. Poglavlje IV. Skup instrukcija mikrokontrolera familije MCS-51
Mikrokontroleri Poglavlje IV Skup instrukcija mikrokontrolera familije MCS-51 Uvod Instrukciju računara čine kod operacije (op-code) iza koga mogu da slede jedan ili dva operanda Op-cod identifikuje tip
More informationKodiranje GUI aplikacija u Visual C#
Kodiranje GUI aplikacija u Visual C# UVOD Uvod Kodiranje grafičke aplikacije u Visual C#: Ova lekcija se bavi dogadjajima, programiranjem dogadjaja. Daćemo jedan primer event-driven-programming-a, u vidu
More informationPARALELNO PROGRAMIRANJE
Predavanje 09 Odjel za matematiku 1 PARALELNO PROGRAMIRANJE POSIX threadovi za C++ Predavanje 09 Odjel za matematiku 2 Programske niti (thread) unutar procesa Danas ćemo se upoznati s POSIX thread bibliotekom
More informationProgram Analysis and Constraint Programming
Program Analysis and Constraint Programming Joxan Jaffar National University of Singapore CPAIOR MasterClass, 18-19 May 2015 1 / 41 Program Testing, Verification, Analysis (TVA)... VS... Satifiability/Optimization
More informationA Context-Sensitive Memory Model for Verification of C/C++ Programs
A Context-Sensitive Memory Model for Verification of C/C++ Programs Arie Gurfinkel and Jorge A. Navas University of Waterloo and SRI International SAS 17, August 30th, 2017 Gurfinkel and Navas (UWaterloo/SRI)
More informationProgramiranje III razred
Tehnička škola 9. maj Bačka Palanka Programiranje III razred Konverzija tipova Konverzija tipova Prilikom komunikacije aplikacije sa korisnikom, korisnik najčešće unosi ulazne podatke koristeći tastaturu.
More informationC++ minitutorial. Osnovni elementi i koncepti programskog jezika C++ uz primere
C++ minitutorial Osnovni elementi i koncepti programskog jezika C++ uz primere Sadržaj I. Ugrađeni tipovi podataka II. Doseg (scope) III. Životni vek objekta IV. Konverzija tipa (casting) V. Struktura
More informationFizičko projektovanje baza podataka prema knjizi: Database Management Systems, Ramakrishnan Raghu, Gehrke Johannes
Fizičko projektovanje baza podataka prema knjizi: Database Management Systems, Ramakrishnan Raghu, Gehrke Johannes Ivana Tanasijević, ivana@matf.bg.ac.rs Matematički fakultet, Beograd Najbitnije merilo
More informationA short manual for the tool Accumulator
A short manual for the tool Accumulator ZHAO Jianhua State Key Laboratory of Novel Software Technology Dept. of Computer Sci. and Tech. Nanjing University Nanjing, Jiangsu, P.R.China 210093 zhaojh@nju.edu.cn
More informationFunkcije, prenos parametara i dinamička alokacija memorije
Tema 04 Funkcije, prenos parametara i dinamička alokacija memorije dr Vladislav Miškovic vmiskovic@singidunum.ac.rs Fakultet za informatiku i računarstvo - Tehnički fakultet OBJEKTNO ORIJENTISANO PROGRAMIRANJE
More informationMicrosoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,
Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, 13.04.2017. Podešavanje Hyper-V Servera 2016 za RSAT upravljanje Dario Štefek Lokacije za preuzimanje: Microsoft Hyper-V Server 2016 https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2016
More informationOracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu:
Database Programming with SQL kurs 2017 database design and programming with sql students slajdovi 7-1 Oracle Equijoin and Cartesian Product Prethodna sekcija se bavila upitima preko više od jedne tabele
More informationFor. 1) program ispis; {ispisuje brojeve od 1 do 5 jedan ispod drugog} uses wincrt; var s,i:integer; begin for i:=1 to 5do writeln(i); end.
For 1) program ispis; {ispisuje brojeve od 1 do 5 jedan ispod drugog} for i:=1 to 5do writeln(i); 2) program ispis; {ispisuje brojeve od 5 do 1 jedan ispod drugog} for i:=5 downto 1 do writeln(i); 3) program
More informationSymbolic Execution. Wei Le April
Symbolic Execution Wei Le 2016 April Agenda What is symbolic execution? Applications History Interal Design: The three challenges Path explosion Modeling statements and environments Constraint solving
More informationLekcija 4. Java programiranje sa bazama podataka. dr Svetlana Cvetanović
Lekcija 4 Java programiranje sa bazama podataka dr Svetlana Cvetanović JAVA PROGRAMIRANJE SA BAZAMA PODATAKA Uvod 01 02 03 04 Uvod JDBC Interfejsi Vežba: Preduslovi za pisanje Java koda Zaključak Kreiranje
More informationDežurni nastavnik: Kolokvijum traje 1.5 sat, prvih sat vremena nije dozvoljeno napuštanje kolokvijuma. Upotreba literature nije dozvoljena.
Dežurni nastavnik: Elektrotehnički fakultet u Beogradu Katedra za računarsku tehniku i informatiku Predmet: Testiranje Softvera (SI3TS) Nastavnik: doc. dr Dragan Bojić Asistent: dipl. ing. Dražen Drašković
More informationWhy Use C? In today's world of computer
Why Use C? In today's world of computer programming, there are many highlevel languages to choose from, such as C, Pascal, BASIC, and Java. These are all excellent languages suited for most programming
More informationEmulator arhitekture računara Milantex Tx16
UNIVERZITET SINGIDUNUM FAKULTET ZA INFORMATIKU I RAČUNARSTVO - Diplomski rad - Mentor: Prof. dr Mladen Veinović Student: Milan Tair Br. indeksa: 2008213514 Beograd, 2012 UNIVERZITET SINGIDUNUM FAKULTET
More informationJavaScript i HTML DOM
4. vježbe iz WEB programiranja četvrtak, 22. ožujka 2012. JavaScript 1. dio JavaScript i Što je DOM? Kako JS koristi DOM? Pristup elementima dokumenta Promjena i učitavanje vrijednosti tagova Primjer 1.
More informationKLASIFIKACIJA JELENA JOVANOVIĆ. Web:
KLASIFIKACIJA JELENA JOVANOVIĆ Email: jeljov@gmail.com Web: http://jelenajovanovic.net PREGLED PREDAVANJA Šta je klasifikacija? Binarna i više-klasna klasifikacija Algoritmi klasifikacije Mere uspešnosti
More informationKREDITI ZA POLJOPRIVREDNIKE
UNICREDIT BANK SRBIJA AD 11 000 Beograd, Rajićeva 27-29 Telefon: 011/ 3777 888 www.unicreditbank.rs e-mail:office@unicreditgroup.rs KREDITI ZA POLJOPRIVREDNIKE Vlasnik ste ili zakupac 6 hektara obradive
More informationSOFTWARE TOOLS FOR MANIPULATING FE MESH, VIRTUAL SURGERY AND POST-PROCESSING*
DANKO Z. MILAŠINOVIĆ 1,2 VLADIMIR M. CVJETKOVIĆ 2 DITTMAR BÖCKLER 3 HENDRIK VON TENGG-KOBLIGK 4,5 NENAD D. FILIPOVIĆ 1,6,7 1 Bioengineering Research and Development Center BioIRC, Kragujevac 2 Faculty
More informationSymbolic Execution. Joe Hendrix Galois, Inc SMT Summer School galois
Symbolic Execution Joe Hendrix Galois, Inc SMT Summer School 2015 Galois, Inc We solve hard research problems for clients. Symbolic Execution is a technique for mapping code into logic. is widely used
More information