Discussione:
L'indirezione e' una metonimia
(troppo vecchio per rispondere)
magica
2003-11-16 14:28:22 UTC
Permalink
Mi riallaccio al filone sull'indirezione, aperto da Giovanni Drogo.

Vediamo se almeno siamo d'accordo su che cos'è l'"indirection" (stiamo
parlando di software) prima di decidere se in italiano il termine si
può rendere, oltre che col calco (ma forse è qualcosa di più di un
calco) indirezione, anche in altro modo.

Se ben ricordo, la prima volta che ho visto usare indirection, è stato
nel manuale originale del C++: quello di Ellis-Stroustrup, per
intenderci (può darsi sia stato usato prima anche nei manuali del C,
ma non ricordo).

Lì era usato per indicare "l'operatore di <<indirezione>>", cioè un
operatore che, applicato a una variabile (contenente un indirizzo) o a
un'espressione (il cui risultato è un indirizzo) permette di ottenere
il valore di ciò che è indirizzato.

Questo è in accordo col significato del termine indirection in
inglese, cioè, secondo il Merriam-Webster. "indirect action or
procedure".

Quindi, nella nostra accezione, l'indirection è l'azione che consente
di accedere al valore di qualcosa non usando il suo nome (quindi non
in modo diretto), ma usando il nome di qualcos'altro (quindi in modo
indiretto).

Un po' come quando dico "ho bevuto due bicchieri di troppo"
riferendomi, col termine bicchiere, non al bicchiere stesso, ma a
qualcosa cui il bicchiere rimanda, ad esempio vino (senza però usare
la parola vino, ma la parola bicchiere).

Ora si può dire indirezione in italiano? Beh, se si si sa che cosa
significa, dipende dai gusti, direi. Anche se "direzione",
nell'accezione di azione che consente di accedere direttamente, non i
risulta sia usato.

Nella mai risposta a Giovanni ho suggerito di usare "indirizzamento
indiretto", ma mi sa che ho peccato di ipercorrettismo. Direi che il
solo "indirizzamento" va benissimo.

P.S.

Riguardo alle chiavi esterne dei database, non concordo con Max e
javalab. Concettualmente non ha a che vedere con l'indirection (i
database relazionali sono basati su relazioni). Certo è vero che la
chiave esterna, in una tabella, è una colonna (o più colonne) di tale
tabella che fa (fanno) riferimento alla colonna (o alle colonne) che
costituisce (costituiscono) la chiave primaria di un'altra tabella. Ma
il fatto è che questo riferimento è costituito dal fatto che i dati
contenuti nella chiave esterna devono corrispondere a quelli contenuti
nella chiave primaria. Nulla a che vedere col fatto che il nome di
qualcosa si usato per indicare qualcos'altro.

P.P.S. per javalab

Nel linguaggio che porta il tuo nick, un esempio di indirection è
quello che si ottiene usando quello che viene chiamato spesso,
erroneamente (probabilmente a causa dell'ambiguo modo in cui viene
dichiarato) nome di un oggetto.

Ciao.

Gian Carlo
Dr. Bruno Campanini
2003-11-16 19:01:12 UTC
Permalink
Post by magica
Mi riallaccio al filone sull'indirezione, aperto da Giovanni Drogo.
Nella mai risposta a Giovanni ho suggerito di usare "indirizzamento
indiretto", ma mi sa che ho peccato di ipercorrettismo. Direi che il
solo "indirizzamento" va benissimo.
Lo direi anch'io.
Post by magica
P.S.
Riguardo alle chiavi esterne dei database, non concordo con Max e
javalab. Concettualmente non ha a che vedere con l'indirection (i
database relazionali sono basati su relazioni). Certo è vero che la
chiave esterna, in una tabella, è una colonna (o più colonne) di tale
tabella che fa (fanno) riferimento alla colonna (o alle colonne) che
costituisce (costituiscono) la chiave primaria di un'altra tabella. Ma
il fatto è che questo riferimento è costituito dal fatto che i dati
contenuti nella chiave esterna devono corrispondere a quelli contenuti
nella chiave primaria. Nulla a che vedere col fatto che il nome di
qualcosa si usato per indicare qualcos'altro.
Definizioni e ragionamenti che non fanno una piega!
Pura curiosità: su quale dbms ti sei fatto le ossa?

Ciao
Bruno
javalab
2003-11-16 19:02:38 UTC
Permalink
esattamente.
appunto: due bicchieri di troppo.
ciao, j.
magica
2003-11-16 20:10:44 UTC
Permalink
Post by javalab
esattamente.
Non è molto chiaro. Forse manca la frase che stai commentando. :-)
Post by javalab
appunto: due bicchieri di troppo.
Idem.

Ciao.

Gian Carlo
javalab
2003-11-16 20:23:21 UTC
Permalink
Post by magica
Post by javalab
esattamente.
Non è molto chiaro. Forse manca la frase che stai commentando. :-)
mamma mia che precisini. sei sabuado ? :)
cercavo di adeguarmi ai tempi economicisti e di non gravare sul bilancio
dello stato, della telecom, ecc.
mi riferivo a tutto il resto che c'era nel mio post:
ta-da ! :)
siore e siori, entra trionfalmente...
il subject !

commissario, faccia il subject.
"buonasera, sono il subject".
Post by magica
Post by javalab
appunto: due bicchieri di troppo.
Idem.
appunto :)

se rispondi 'idem', la vedo dura a chiudere questo ramo del thread :)

ciao, j.
magica
2003-11-16 20:38:34 UTC
Permalink
Post by magica
Post by javalab
esattamente.
Non è molto chiaro. Forse manca la frase che stai commentando. :-)
Veramente il mio elettroprovveditore mi faceva (e fa tuttora) apparire
il tuo messaggio come una risposta a quello di Bruno Campanini.

Capirai che, anche per un persona perspicacissima come siamo noi
bergamaschi, :-) capire che ti riferivi a un tuo messaggio, anzi a
tutto il resto di un tuo messaggio, era un po' dura.

Ciao.

Gian Carlo

Max M.
2003-11-16 20:05:04 UTC
Permalink
Post by magica
Lì era usato per indicare "l'operatore di <<indirezione>>", cioè un
operatore che, applicato a una variabile (contenente un indirizzo) o a
un'espressione (il cui risultato è un indirizzo) permette di ottenere
il valore di ciò che è indirizzato.
Quest'operatore è solitamente denominato "dereference operator", ma
effettivamente anche "indirection operator" viene usato.

L'operazione in quanto tale, però, raramente viene indicata con il termine
"indirection". Mi pare, invece, che "indirection" sia comunemente usato
come nome astratto per indicare la proprietà di essere indiretto oppure
una situazione di relazione indiretta.

Si parla, ad esempio, di "levels of indirection" per riferirsi al numero di
passaggi indispensabili per risolvere la catena di riferimenti e
arrivare a ciò che realmente ci interessa.
Post by magica
P.S.
Riguardo alle chiavi esterne dei database, non concordo con Max e
javalab. Concettualmente non ha a che vedere con l'indirection (i
database relazionali sono basati su relazioni). Certo è vero che la
chiave esterna, in una tabella, è una colonna (o più colonne) di tale
tabella che fa (fanno) riferimento alla colonna (o alle colonne) che
costituisce (costituiscono) la chiave primaria di un'altra tabella. Ma
il fatto è che questo riferimento è costituito dal fatto che i dati
contenuti nella chiave esterna devono corrispondere a quelli contenuti
nella chiave primaria. Nulla a che vedere col fatto che il nome di
qualcosa si usato per indicare qualcos'altro.
Francamente, non riesco a capire dove stia il nostro disaccordo. Io ho
detto che, nel caso di chiavi esterne, un valore (o tupla di valori) in una
tabella serve per riferirsi al record di un'altra tabella. Questo, mi pare,
è il senso di una chiave esterna. L'idea di 'riferimento' è
fondamentale. L'obbligo di corrispondenza, che citavi, viene infatti detto
"referential integrity" e il dominio dei valori è limitato proprio dal
fatto che essi devono riferirsi a qualcosa (oppure essere NULL). Non a
caso, l'espressione SQL92 per dichiarare una chiave esterna contiene la
keyword 'REFERENCES'.

Ripeto, non capisco dove non siamo d'accordo.


Max
magica
2003-11-16 20:31:37 UTC
Permalink
Post by Max M.
Post by magica
Lì era usato per indicare "l'operatore di <<indirezione>>", cioè un
operatore che, applicato a una variabile (contenente un indirizzo) o a
un'espressione (il cui risultato è un indirizzo) permette di ottenere
il valore di ciò che è indirizzato.
Quest'operatore è solitamente denominato "dereference operator", ma
effettivamente anche "indirection operator" viene usato.
L'operazione in quanto tale, però, raramente viene indicata con il termine
"indirection". Mi pare, invece, che "indirection" sia comunemente usato
come nome astratto per indicare la proprietà di essere indiretto oppure
una situazione di relazione indiretta.
Nel manuale che ho citato, "indirection" è ciò che fa l'operatore. Può
benissimo darsi che, in altri contesti, sia (stato) usato con un
significato diverso. Solo che non ho presenti questi contesti.
Post by Max M.
Post by magica
Riguardo alle chiavi esterne dei database, non concordo con Max e
javalab. Concettualmente non ha a che vedere con l'indirection (i
database relazionali sono basati su relazioni) [...]
[...]Ripeto, non capisco dove non siamo d'accordo.
Non è che non siamo d'accordo su che cos'è una chiave esterna.
Semplicemente volevo dire che il concetto di chiave esterna non
corrisponde al concetto di "indirezione" come l'avevo espresso.

Ciao.

Gian Carlo
Loading...