• Non ci sono risultati.

F O NDA M E N T I D I I N F O R M A T ICA II P rog ra mm a z ion e a d O gg e tt i

N/A
N/A
Protected

Academic year: 2021

Condividi "F O NDA M E N T I D I I N F O R M A T ICA II P rog ra mm a z ion e a d O gg e tt i"

Copied!
10
0
0

Testo completo

(1)

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 1 U n iv e rs it à d e g li S tud i d i M od e n a e R e gg io E m ili a

F ac o lt à d i I ng e gn e ri a

C O R S O D I

F O NDA M E N T I D I I N F O R M A T ICA II P rog ra mm a z ion e a d O gg e tt i

Ing . F ra n c o Z a m bon e lli

Lu c id i rea li zz a ti i n c o ll a bo ra z ion e c on Ing . E n ri c o D e n ti - D E IS , U n iv . B o logn a

A nno A cca d e m ic o 1999 /2000

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 2 IN T R O DU Z IO N E A LL A T E CN O L OG IA O B J E C T -O R IE N T E D

M O T IVA Z IO N I • p rog ett ar e si st emi so ftw ar e d i g ra nd i d im en si on i ric h ie d e ad egua ti suppo rti • “c ris i d el so ftw ar e” : i co sti d i g es ti on e d iv en ta no p re pond er an ti su qu elli d i p rodu zi on e • il so ftw ar e dov re bb e e ss er e p ro te tt o , ri u sa b il e, d o cu m en ta to , m o du la re , in cre m en ta lm en te e st end ib il e

IL P UN T O C H IAV E • i li ngu agg i d i p rog ra mm az ion e d evono fo rn ir e • non so lo un m odo p er es p rim er e co m pu ta zi on i • m a a n ch e un m odo p er d a re st ru tt u ra all a d es cr iz ion e • e un suppo rto p er o rga n izz a re b en e il p ro ce ss o p ro du tt ivo d el so ft w a re

L ’O B IETT IV Oco st ru zi o n e m od u la re e in cr em en ta le d el so ftw ar e • o tt enu ta p er es te n si o n e / sp ec ia li zz a zi o n e d i co m po n en ti tec no log ia co m po n en t- ba se d

• L e st ru tt u re d ati e le st ru tt u re d i con tr o ll o (p rog ra mm az ion e st ru tt u ra ta ) non ba st ano • L e fun zi on i e le p ro ce du re non ba st ano • F il e e m odu li co m e “c on te n it o ri d i d es cr iz ion i” non ba st ano

(2)

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 3 CR IS I D IM E N S IO NA L E

P rog ra mm i d i p icc o le d im en si o n i • acce n to su ll 'a lgo ritm o • d ia g ra mmi d i flu ss o • p rog ra mm az ion e st ru tt u ra ta

N on app en a il p rog ra mm a c re sce in d im en si on i, non si rie sce p iù a g es ti rlo : b is ogn a d imi nu ir e la c o m p le ss it à!

P rog ra mm i d i Me d ie D im en si o n i • fun zi on i e p ro ce du re c o m e a st raz ion i d i i st ru zi on i co m p le ss e • d ec o m po si zi on e d eg li al go ritmi i n b lo cc h i fun zi on ali

A ll a b as e rim an e il con ce tt o d i "a lgo ritm o ".

P rog ra mm i d i G ra nd i D im en si o n i • ti p ica m en te tr att ano g ra nd i m o li d i d ati M A • la d ec o m po si zi on e fun zi on al e non è a d egu at a • non c'è acc opp ia m en to d ati -f un zi on i ch e li el abo ra no • ti p ica m en te d evono ess er e sv il upp ati d a tea m M A • la d ec o m po si zi on e fun zi on al e e il d is acc opp ia m en to d ati - fun zi on i non p er m ett e la d ec o m po si zi on e d el l avo ro • ti p ica m en te tr att ano ed el abo ra no d ati re la ti v i ad en tit à d el m ondo rea le (p er son e, ogg etti , g ra fic i, do cu m en ti ), e in te ra g is cono con en tit à d el m odo rea le M A • le e n tit à d el m ondo rea le non sono "d ati " su cu i op er ano d ell e fun zi on i, m a sono en tit à c h e d evono ess er e tr att at e in m odo co er en te a ll a lo ro ess en za

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 4 CR IS I G ES T IO NA L E

Il co st o m agg io re n el p ro ce ss o d i p rod u zi o n e d el so ftw a re è do vu to a l su o m a n te n im en to : • co rr etti vo • ad att ati vo

P rog ra mm i d i p icc o le d im en si o n i • non d iff ic ili ss im o tr ov ar e g li err o ri • p rop ag az ion e d eg li eff etti d ell e m od if ic h e limit at e in tr in seca m en te d all e d im en si on i d el p rog ra mm a

P rog ra mm i d i Me d ie D im en si o n i • g es ti on e b as at a su ll e p ro ce du re p er l'i nd iv idu az ion e d eg li err o ri • g li eff etti d ell e m od if ic h e non sono limit ati all e p ro ce du re in cu i t al e m od if ic h e sono fa tt e, m a si p rop ag ano , a ca u sa d el non - acc opp ia m en to d ati fun zi on i

P rog ra mm i d i G ra nd i D im en si o n i • qu as i im po ss ib il e tr ov ar e g li err o ri • se le m od if ic h e si po ss ono p rop ag ar e non è po ss ib il e fa re d ell e m od if ic h e se n za c o invo lg er e tu tt o il t ea m d i sv il uppo

è n ece ss a ri o ca m b ia re RA D ICA L M E N T E il m odo d i co n ce p ir e, p rog ett a re e p rog ra mm a re il so ftw a re !

(3)

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 5 IL CA M B IO D I P ARAD IG M A

T ra d iz ion a le :

D A T I F U N Z IO N I e C H IA M A TE a F U N Z IO N I E L A B . D A T I

A d O gg e tt i:

OGG ET T I = da ti + fu nz io ni ch e vi op er an o

S C A M B IO D I M E S S AG G I (r ic hi es te di se rv iz io ) T R A OGG E T T I

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 6 C O NC E TT I CH IA VE • A st raz ion e d i D at o • T ip i d i d at o as tr att o (AD T , A b st ra ct D a ta T yp e) • M od ell o C li en te / S er v it o re (C li en t / S er ve r) • O gg etti e C la ss i • M odu li

A S T RA Z IO N E D I D A T O • F o ca li zza re l’ att en zi on e su ll e ca te go ri e c on ce tt ua li d ei d ati d el do mi n io app li ca ti vo • co st ru ir e il p rog ra mm a in te rmi n i d i "e n tit à" , ra pp re se n ta te d a un a st ru tt u ra d ati i n te rn a NA S C O S T A e d a op er az ion i ch e po ss ono AG IR E S U I DA T I, ch e in te ra g is cono tr a lo ro

VAN T A GG I • ag evo la la m odu la rit à acc opp ia ndo d ati e fun zi on i (c h e è g iu sti fica ta si a p er la d imi nu zi on e d i co m p le ss it à si a p er il fa tt o ch e ce rti d ati po ss ono ess er e tr att ati so lo tr amit e ce rte fun zi on i si a p er ch é ce rte fun zi on i po ss ono tr att ar e so lo ce rti d ati ); • fa vo ris ce il con tr o ll o su ll 'in te g rit à d ei d ati (s o lo ce rte fun zi on i po ss ono ag ir e su i d ati e non fun zi on i ar b it ra rie c h e po tr ebb er o fa re d ei d ann i o co se e rr at e!) .S e un d at o ris u lt a e rr at o , si lo ca li zza fac ilm en te l’ err o re p er ch é so lo ce rte op er az ion i h anno po tu to ag ir e su qu es ti d ati • fa vo ris ce la c reaz ion e d i co m pon en ti au tono mi e “ v ali d ati ” • mi n imi zza la d is ta n za c on ce tt u al e tr a p rob le m a e su a ris o lu zi on e in te rmi n i so ftw ar e

T IP O D I DA T O A S T RA TT O E n tit à simili po ss ono ess er e c on si d er at e "d ell o st ess o ti po " (o d ell a st ess a c la ss e) , an ch e se c on att ribu ti sp ec if ic i d iv er si .

(4)

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 7 ESE M P IO : il c on ta to re

A pp ro cc io cl a ss ic o :

main() { … int cont;

cont++; cont--;

if (cont == MAX) {….}

cont = cont*cont; /* puó avere senso per un intero ma non ha alcun senso per una entità contatore */ }

P R O BLE M I

• dov' è l'e n tit à c on ta to re? • D ov e sono le op er az ion i amm ess e sug li ogg etti d i ti po con ta to re? • po ss ia m o fa re c o se NON S E N S A TE su l con ta to re • sti am o u sa ndo le m o ss e e le m en ta ri d ell a m acc h in a C (in te g er e op er at o ri d i i n cr em en to ), non sti am o u sa ndo d ell e ca te go rie con ce tt u ali d i ti po con ta to re ! non po ss ia m o ri- u sa re il con ce tt o d i con ta to re !

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 8 ESE M P IO : il c on ta to re

T IP O D I DA T O A S T RA TT O " C o n ta to re "

DA T I ( A tt ribu ti ch e ca ra tt er izza no un con ta to re ): valore_cont;

O P E R A Z ION I ( qu ell e p er m ess e su un ti po d i d at o con ta to re” ) void inc(); void dec(); int getValue();

V o rre mm o P o ter F a re :

main() {Contatore cont; /* definisco un TDA Contatore*/ /* NEL LINGUAGGIO A OGGETTI SI DICE "ISTANZIARE" */

Contatore cont2; /* ne istanzio un'altro */

cont.inc(); /* invoco delle operazioni sul contatore */ cont.dec();

cont2.dec() /* le stesse operazioni le posso invocare chiedendole all'altro contatore: sono dello stesso tipo, ma ovviamente avranno attributi specifici diversi!*/

if(cont.getValue() > MAX) {….}

cont++; /* ERRORE: NON E' UN INTERO */

cont.valore_cont=cont*345; cont.valore_cont++ /* ERRATE ENTRAMBE: il dato valore_cont è accessibile solo tramite le operazioni di cont */ }

(5)

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 9 ESE M P IO : s tud e n ti

A pp ro cc io C la ss ic o :

typedef struct Studente { char nome[20]; char cognome[20]; int matricola; int num_esami_dati; struct esami[29] {char nome[20]; int voto;} }

void nuovo_esame_dato(Studente s, char *nome_esame, int voto_preso) { strcpy(s.esami[s.num_esami_dati].nome, nome_esame); strcpy(s.esami[s.num_esami_dati++].voto, voto_preso); } /* e altre funzioni varie…..*/

main() { Studenti s1, s2;

s1.nome = "pippo"; s2.cognome = "rossi"; /* NON BELLO: COSI' ACCEDO AI DATI INTERNI DI STUDENTE*/

/* POI POSSO FARE */ new_esame(s1, "Sistemi Operativi", 18);

/* MA ANCHE */ s1.esami[4].voto++; /* NON DOVREI! NON HA SENSO! Non e’ una operazione ammissibile sul tipo di dato*/

}

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 10 ESE M P IO : s tud e n ti

DA T I: char nome[20]; char cognome[20]; int matricola; Cont num_esami_dati; struct esami sostenuti {char * nome; int voto};

O P E R A Z ION I ( al cun e p en sa b ili t ra qu ell e a mmi ss ib ili )

void nuovo_esame_dato(char *nome_esame, int voto_preso); Int calcola_media(void); void iscrivi_anno_successivo();

V o rre mm o P o ter F a re :

main() { Studenti s1("Franco Zambonelli"), s2("Donald", "Duck");

s1.nuovo_esame(s1, "Sistemi Operativi", 28);

} G R O SS O CA M B IA M E N T O D I P ARA D IG M A :

N O N s i ric h ie d e a fun zi on i d i op er ar e su d ati

nuovo_esame(s1, "Sistemi Operativi", 28);

M A s i ric h ie d e a ll e e n tit à d i es egu ir e d ell e fun zi on i

s1.nuovo_esame(s1, "Sistemi Operativi", 28);

(6)

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 11 M O D E LL O C L IE N T E /SE R V IT O R E

• D at o un p rob le m a, b as ar si su un in si em e d i ce n tr i d i se rv iz io , ognuno ca p ace d i es egu ir e un b en p rec is o in si em e d i a tti vit à

S po st am en to d el fuo co • NON ch ia m ar e un a fun zi on e c h e e la bo ri d ei d ati M A • ch ie d er e a un a e n tit à so ftw ar e d i svo lg er e un se rv iz io

E se m p io : d at o un v ett o re , NON invo ca re un a p ro ce du ra d i o rd in am en to , M A ch ie d er e a un a e n tit á o rd in at rice d i fa rc i il s er v zi o d i o rd in ar ci il v ett o re

E se m p io : d at o un fil e, non invo ca re un a fun zi on e c h e sc riv a d ati su l fil e, m a ch ie d er e a l fil e st ess o d i svo lg er e il se rv iz io re la ti vo all a sc ritt u ra d i fil e su d i ess o

• I cli en ti non cono sc ono l ’o rg an izzaz ion e in te rn a d ei ce n tr i d i se rv iz io , e non po ss ono acce d er e d ir ett a m en te a e ss a • non in te re ss a l'a lgo ritm o (c o m e sono fa tt e le c o se ) m a in te re ss a c h e le c o se v eng ano fa tt e • i cli en ti sono ind ip end en ti d a c o m e sono fa tti i se rv it o ri: fac ilit a la m anu te n zi on e!

N ell' es em p io p rece d en te : • il m ai n ch ie d e se rv iz i all o S tud en te s1 , il qu al e c h ie d e se rv iz i a un C on ta to re c on t;

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 12 C O S A V O RR E M O ?

UN L INGU A GG IO P ER D EF IN IRE E IS T A N Z IARE A D T , C H E P O SS ONO IN T ERA G IRE T RA L O R O S O L O T RA M T E R IC H IE S T E D I S ERV IZ IO

ADTdef Contatore { int valore_cont; /* struttura dati interna */ /* operazioni ammesse */ void inc() {valore_cont++;} void dec() {valore_cont--;} int getValue() {return valore_cont;} }

ADTdef Studente { /* struttura d ati interna */ char nome[20]; char cognome[20]; int matricola; Cont atore num_esami_dati; struct esami[29] {char nome[20]; int voto;} /* operazioni ammesse */ void nuovo_esame(char *nome_esame, int voto_preso) { int cont = num_esame_dati.getValue(); esami[cont].nome = nome; …} … }

main() {Studente s1;

s1.new_esame("Fondamenti II", 30); /* corretta */ new_esame(Fondamenti II", 18); /* ERRATO: a quale entità stiamo richiedendo l'operazione?*/ s1.matricola++; /* ERRATO non possiamo agire sulla struttura dati interna se non tramite le operazioni ammesse */ }

M A QU E S T O S AREBBE E S A TT A M E N T E UN L INGU A GG IO D I P R OG RA MM A Z ION E A D OGG E TT I!

(7)

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 13 IL C O NC E T T O D I OGG E T T O

• U n ogg ett o co m e a st ra zi o n e d i da to o ce n tr o d i se rv iz i • con un a pa rt e v is ib il e I N T ERFA CC IA • e un a pa rt e na sc o st a

LE O P E RA Z IO N I D I I N TE R F ACC IA RA PP R E S E N T AN O : • I se rv iz i ch e g li alt ri ogg etti po ss ono ric h ie d er e a ll 'ogg ett o • M od alit à d i t ra tt am en to d ei d ati d ell 'ogg ett o o d i acce ss o ai d ati

L A P AR TE NA S C O S T A C O N T IE N EDA T I • G li att ribu ti ch e ca ra tt er izza no l'ogg ett o • L o st at o d ell 'ogg ett o • S ono acce ss ib ili so lo att ra v er so ric h ie st e d i se rv iz io • O P E RA Z IO N I P R IVA TE • S fr u tt at e d all e op er az ion i pubb li ch e m a non se rv iz i es te rn i C en tr o se rv iz i O p er az ion e A

O p er az ion e B

O p er az ion e C P a rt e na sc o st a

P a rt e v is ib il e (I N T ERFA CC IA )

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 14 ARC H ITETT URA D I UN S IS TE M A A OGG ETT I

• U n in si em e d i ogg etti • ch e in ter g is co n o g li un i co n g li a lt ri • se n za c ono sce re nu ll a d ell e ris p etti v e ra pp re se n taz ion i con cr et e

D E S CR IZ IO N E D I UN S IS TE M A A OGG ETT I • O gn i ogg ett o app ar ti en e a (“è is ta n za d i” ) un a d at a cl a ss eL a cl a ss e ra cc h iu d e e in cap su la la sp ec if ic a d i • st ru tt u ra d ell ’ogg ett o (d ati ) • co m p o rt a m en to d ell ’ogg ett o (op er az ion i) • L e c la ss i in te g ra n o e d es te n do n o il co n ce tt o d i AD T • e po ss ono ess er e c o rr el at e tr a lo ro → ta ss ono m ie d i er ed it a ri et à ch e p er m ett ono il co ll eg am en to tr a c la ss i simil e p er r i- u sa re il cod ice c o m un e

R IS U LT A T I • suppo rto a p rog ett az ion e e sv il uppo in cr em en ta li • fac ilit az ion e d i co st ru zi on e coop er a ti va d i so ftw ar e • po ss ib ilit à d i rap ida p ro to ti pa zi on e

(8)

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 15 R E A L IZZ A Z IO N E D E G L I AD T

N ei li ngu agg i “c la ss ic i” , non a ogg etti , è c o m unqu e po ss ib il e se gu ir e un a “ fil o so fia d i p rog ett az ion e d el so ftw ar e” a ogg etti . P er ò le limit az ion i d el li ngu agg io re ndono l'a pp ro cc io o "s po rc o " o limit at o d al pun to d i v is ta e sp re ss ivo . In C , du e a pp ro cc i po ss ib ili: • AD T rea li zza ti t ra mit e ty p ed ef e v a ri ab ili ( e/ o pun ta to ri) • A tr az ion i d i D at o rea li zza ti t ra mit e m od u li (f il es )

C a so : ti po d i da to a st ra tt o d ef in it o d a typedef • g li ogg ett i so n o va ri a b ili d el ti po d ef in it o d a typedef → il cli en te può cr ea rn e tan te is tan ze qu an te d es id er a • le o p er a zi o n i so n o f un zi o n i fr a i cu i p ar am et ri figu ra il n o m e d ell a va ri a b il e- ogg ett o (is ta n za ) su cu i d evono ag ir e

C on se gu en za : il cli en te d ev e tr a sf er ir e e sp li cit a m en te l’ ogg ett o ai suo i se rv it o ri (f un zi on i ch e rea li zza no le op er az ion i d ell ’ogg ett o )

II ° C a so : a st ra zi o n e d i da to r ea li zza to tr amit e m odu li o fil e • il C non fo rn is ce un co st ru tt o m odu lo n el li nguagg io • si u sa no i fil es co m e co n te n it o ri , sfr u tt ando li • si a p er se p ar ar e in te rf acc ia e im p le m en taz ion e ( .h / .c ) • si a co m e (e le m en ta ri) m ecc an is m i d i p ro te zi on e

C on se gu en za : la se pa ra zi on e c on ce tt ua le in te rf acc ia /im p le m en taz ion e d iv en ta un a se pa ra zi on e fi si ca i cli en ti i n cl udono lo h ead er p er u sa re l’ AD T

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 16 E S . 1 : UN C O N T A T O R E co m e AD T

counter.h ...

typedef Contatore int;

int getValue(Contatore); void setValue(Contatore *, int ) ; void inc(Contatore *c); void dec(Contatore *c);

.... e counter.c

#include “counter.h” int getValue(Contatore c){return c;} void setValue(Contatore* c, int v ) {*c=v;}; void inc(Contatore *c){ (*c)++;} void dec(counter *c){ (*c)--;}

U so :

#include “counter.h” void main(){ Contatore c1, c2; setValue(&c1, 10); setValue(&c2, -31); printf("Valore di c1 = %d ", getValue(c1) ); inc(&c2); dec(&c1); }

P R O : • P o ss ib ilit à d i d ef in ir e e u sa re p iù ogg etti d i ti po counter

C ON T R O : • N ece ss it à d i p ass ar e pun ta to ri • R is ch io d i u sa re ogg etti non in iz ia li zz a ti (s e c i si d im en ti ca setValue ... ) • P o ss ib ilit á d i fa re op er az ion i non amm ess e su l con ta to re , po ic h é c ’è li b er o acce ss o all a v ar ia b il e. E s. Contatore * = Contatore ;

(9)

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 17 E S . 2 : UN C O N T A T O R E co m e si n go la a st ra zi o n e d i d a to

count.h ...

int getValue(void); void setValue( int ); void inc(void); void dec(void);

.... e count.c

static int Contatore = 0;

int getValue(void){return Contatore;} void setValue( int v ) {Contatore=v;}; void inc(void){ Contatore++;} void dec(void){ Contatore--;}

U so :

#include count.h” void main(){ setValue(10); printf("Valore = %d ", getValue() ); inc(); }

P R O : • N on è n ece ss ar io d ef in ir e v ar ia b ili e p ass ar e ogg etti o pun ta to ri • Il con ta to re è p ro te tt o , ess endo in acce ss ib il e d all ’e st er no d el fil e count.c in m odo d ir ett o • S o lo le op er az ion i d en tr o d ef in it e d en tr o al fil e c oun t.c po ss ono acce d er e a c on t, non c’ è ris ch io d i fa re op er az ion i err at e!

C ON T R O : • E ’ im po ss ib il e d ef in ir e e u sa re p iù ogg etti c on ta to ri: non c'e ' il ti po d i d at o as tr att o ! E ’un a si ngo la a st ra zi on e d i da to • C ’è un so lo con ta to re , g ià e si st en te , e si può u sa re so lo qu ell o !

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 18 AD T e O P E RA Z IO N I

O p er a zi o n i = m ecca n is m o p er d is acc opp ia re i cli en ti d all a ra pp re se n taz ion e d eg li ogg etti

C la ss ifi ca zi on e d ell e op er a zi on i C a te go ri e

d al pun to d i v is ta d i ch i l e u sa • co st ru tt o ri • se le tt o ri • tr as fo rm at o ri • p re d ica ti • ....

d al pun to d i v is ta d i ch i l e re a li zz a • p rim iti v e / non -p rim iti v e • op er az ion i d i co st ru zi on e / op er az ion i d i con figu raz ion e • op er az ion i p riv at e / pubb li ch e

Il pun to d i v is ta d ell ’u te n te • op er az ion i d i co st ru zi on e (c o st ru tt o ri ) • op er az ion i d i se lez ion e d i so tt o -c o m pon en ti ( se le tt o ri ) • op er az ion i d i v er if ica d i p rop rie tà (p re d ic a ti ) • op er az ion i d i tr as fo rm az ion e

L a p re se n za o m eno d i ce rte ca te go rie d i op er az ion i cr ea d iff er en ti ca te go ri e d i ogg etti :ogg ett i a to m ic i / ogg ett i co m p o st i • g li ogg etti at o mi ci non hanno se le tt o riogg ett i p ri v i d i st a to / ogg ett i d o ta ti d i st a to • g li ogg etti p riv i d i st at o non hanno tr a sf o rm a to ri

(10)

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 19 L ’AD T " P AR O L A " : p re se n za d i tr a sf o rm a to ri ... ?

L A D IC O T O M IA VA L O R I / C O N TE N IT O R I

E se m p io : “un a p ar o la è un a se qu en za d i ca ra tt er i (non -s ep ar at o ri) ”

P ro b le m a : si pu ò m o d if ic a re un a p a ro la?

D u e a lt er n ati v e: • con ce tt o d i “p ar o la” c o m e con te n it o re d i ca ra tt er i → s ono po ss ib ili m od if ic h e a l con te nu to (m a i si ngo li ca ra tt er i sono v al o ri... ) • con ce tt o d i “p ar o la” c o m e va lo re → non sono po ss ib ili m od if ic h e a l con te nu to → non ci sono tr as fo rm at o ri (a tt en zi on e a ll ’a ss egn am en to !)

Q u es ta te m a tic a si ri tr ova , n a sc o st a , n ell a p se m p li ce (? ) d ell e o p er a zi o n i: l’ a ss eg n a m en to .

L -VA L U E e R -VA L U E

x = x + 2 • il sim bo lo x d eno ta • un va lo re (in te ro ) qu ando co m p ar e a d es tr a d ell ’ = (r -v a lu e) • un co n te n it o re qu ando co m p ar e a si n is tr a d ell ’ = (l- va lu e) • so lo un l- v al u e può co m p ar ir e a si n is tr a d ell ’ = ab cd xy z un a p ar o la

un a p ar o la d iv er sa

F ran co Z a m bon elli , E n ri co D en ti - I n tr odu zi on e a ll a T ec no log ia o ri en ta ta ag li O gg etti 20 L ’AD T P AR O L A : il pun to d i v is ta d ell ’im p le m en ta to re • op er az ion i d i co st ru zi on e / d i con figu raz ion e • op er az ion i p rimiti v e / non -p rimiti v e • op er az ion i p riv at e / pubb li ch e

C o st ru zi o n e: • un ’op er az ion e d i d efi n iz ion e, ch e a ll o ca m em o ria e ev en tu alm en te in iz ia li zza

P ri m it iv e: • op er az ion i d ip end en ti da ll a rapp re se n ta zi on e • d evono ess er e un in si em e fun zi on alm en te c o m p le to • sono le un ic h e a po te r acce d er e a ll a ra pp re se n taz ion e in te rn a

N o n p ri m it iv e: • rim angono in alt er at e an ch e se c a m b ia la rapp re se n ta zi on e • pu rc h é le p rimiti v e re sti no fo rm alm en te id en ti ch e

P ro tez io n e • op er az ion i ch e tu tti po ss ono es egu ir e (pubb li ch e) • op er az ion i p ri va te , ch e so lo alt re op er az ion i po ss ono u sa re → c o m e ga ran ti rl o?

T ip ica m en te e si st ono : • p rimiti v e v is ib ili • non -p rimiti v e v is ib ili • p rimiti v e p riv at e (a d u so es cl u si vo d el se rv it o re st ess o , p er rea li zza re a lt re op er az ion i p iù im po rta n ti i n m odo ind ip end en te d all a ra pp re se n taz ion e) • non -p rimiti v e p riv at e

Riferimenti

Documenti correlati

contenute agli artt.4, 5 e 9, sui tempi della fase istruttoria e della decisione, rendono effettivo, nei procedimenti di riconoscimento di infermità o lesione dipendente da causa

La tariffa TARI è determinata sulla base del Metodo Tariffario per il servizio integrato di gestione dei Rifiuti (MTR) approvato dall’Autorità ARERA con Delibera 31 ottobre

zione dell'utente, in realtà è possibile lavorare solo su una parte di questa. Ciò si deve al fatto che nei primi personal computer, gli XT, è stato posto un limite alla

Sulla base dei dati disponibili, i criteri di classificazione non sono soddisfatti... Gravi danni

passa attraverso al contatore per portarsi ai con- cessionarii, altrettanta deve essere pagata alla So- cietà incaricata della distribuzione e neanche può attraverso ad esso

65T del 10/07/2019 ad oggetto: “Servizio di progettazione, direzione lavori, coordinamento della sicurezza lavori di riqualificazione e adeguamento caldaie dell’edificio comunale

5. Fermo restando l’obbligo di denuncia all’autorità giudiziaria, il dipendente segnala, in via riservata, al RPCT le situazioni di illecito o irregolarità di cui venga a

Nel caso in cui l’Azienda intenda recedere dal contratto prima di aver ottenuto il Certificato di Conformità, sarà tenuta al pagamento delle spese già sostenute (es. audit o prove