3. Tipovi Podataka Flashcards

1
Q

Tipovi podataka i provera tipova

A

Tip podataka odredjuju sledeci elementi:
• skup vrednosti koje mogu biti predstavljene
• format registrovanih podataka
• skup operacija koje se nad podatkom mogu izvrsavati

Provera tipova (type checking) podrazumeva da se pre izvrsenja bilo koje operacije vrsi provera da li su operandi koji u njoj ucestvuju odgovarajuceg tipa. 
• Primer: operacije (+ - / *) mogu da se izvode samo nad operandima numerickog tipa

Zavisno od tog, kada su informacije o tipu promenljivih poznate, programske jezike delimo na dva tipa:
• programske jezike sa statickom tipizacijom
• programske jezike sa dinamickom tipizacijom

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Statička i dinamicka tipizacija

A
Provera tipova (type checking) podrazumeva da se pre izvrsenja bilo koje operacije proveri da li su operandi koji ucestvuju u njoj odgovarajuceg tipa.
• Primer: operacije (+ - / *) mogu da se izvrse samo nad operandima koji su numerickog tipa

Zavisno od tog, kada su informacije o tipu promenljivih poznate, programske jezike smo podelili na 2 tipa:
• programske jezike sa statickom tipizacijom
• programske jezike sa dinamickom tipizacijom

• Staticka tipizacija
Tipovi promenljivih su konstantni za sve vreme izvrsenja programa i poznati u toku prevodjenja. Kod njih svaka promenljiva mora biti deklarisana pre njenog koriscenja. Provera tipa se vrsi samo u toku prevodjenja programa. Jezici sa standardnom tipizacijom su C,C++,C#,Java itd..

• Dinamicka tipizacija
Tipovi promenljivih su poznati tek u vreme izvrsenja programa i mogu se menjati u toku izvrsenja. Promenljive se ne deklarisu u programu i provera tipova se vrsi i u toku izvrsenja programa. Jezici sa dinamickom tipizacijom su PHP, Pyhton, JavaScript itd…

C: int a,b; a=10; b=5; b=a+b;
Pyhton: a=10; b=5; b=a+b; a=”Danas”;

Poredjenje:
• Staticka : Provera tipova je efikasnija i sigurnija
• Dinamicka: Provera tipova u toku izvrsenja programa sto ga usporava. Zahteva pamcenje tipova promenljivih u toku izvrsenja sto zauzima veci memorijski prostor, medjutim koriscenje promenljivih je fleksibilnije

Prednost se daje statickoj tipizaciji.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Slaba tipizacija

A

U slucaju jezika sa slabim tipovima podataka informacija o tipu koristi se i korektna je samo na masinskom nivou. Ovakav koncept podrazumeva sledece mogucnosti:
• Operacija koja se od strane masine prihvati kao korektna na nivou izvornog koda programa moze da bude potpuno nekorektna. char c; c=4;
• Koncept slabih tipova podrazumeva odredjeni automatizam u transformaciji tipova podataka prilikom operacije dodeljivanja izmedju dva razlicita tipa. real x; int y; x=y;
• Koncept slabih tipova nekad omogucava postizanje odredjenih efekata naredbama koje imaju drugu namenu. i=((k shl 12) or 1);

Ocigledno je da koncept slabih tipova dopusta puno slobode kod zapisivanja izraza u naredbama dodeljivanja, medjutim cena te slobode je nejasan program sa skrivenim informacijama, bez mogucnosti kontrole i koriscenja informacije o tipu u fazi kompajliranja programa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Jaka tipizacija

A

Koncept jakih tipova podrazumeva nekoliko osnovnih principa:
• Tip podatka odredjuju sledeci elementi: Skup vrednosti, Format registrovanih podataka, Skup operacija koje se mogu izvrsavati nad podacima, Skup funkcija za konverzije
• Sve definicije tipa moraju da budu javne, eksplicitne. Nisu dozvoljene implicitne deifnicije tipova.
• Objektu, kao tip entiteta, se definise samo jedan tip
• Dozvoljeno je dodeljivanje vrednosti samo odgovarajuceg tipa
• Dozvoljene su samo operacije obuhvacene tipom
• Tip je zatvoren u odnosu na skup operacija koje obuhvata. Ove operacije se mogu primenjivati samo nad operandima istog tipa. Mesoviti izrazi nisu dozvoljeni
• Dodeljivanje vrednosti razlicitog tipa i operacije nad razlictim operandima je moguce samo uz javnu upotrebu funkcija za konverziju tipa. Koncept jakih tipova povecava pouzdanost, dokumentarnost i jasnocu programa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Ekvivalentnost tipova

A

• Strukturna ekvivalentnost
2 tipa su ekvivalentna ako mogu da predstave isti skup vrednosti

• Eksplicitna (imenovana ekvivalentnost)
2 tipa su ekvivalentna ukoliko su identična

How well did you know this?
1
Not at all
2
3
4
5
Perfectly