Com\’è dura la professione!

4 giugno 2008

‘Essere’ uguale a…

Filed under: letture,Programmazione — lbell @ 19:42

Nel suo ultimo libro, una raccolta di spunti e pensieri, quasi un blog, Odifreddi lascia una nota sulla teoria secondo cui la struttura di un linguaggio condiziona la struttura del pensiero che in tale linguaggio viene espresso. A causa di ciò nel mondo anglosassone si è più portati a pensare in termini di sostantivi ed oggetti, che in termini di azioni e verbi. Nel campo della filosofia, questo motivo sarebbe uno delle cause delle differenze di pensiero tra la scuola continentale e quella analitica di derivazione anglosassone. Questo contrasto è esemplificato dal concetto di ‘essere’; nella filosofia continentale il verbo essere può essere impiegato con ambiguità tanto nel senso di esistere, quanto manifestare appartenenza (identità), o esprimere una proprietà.

Nei linguaggi di programmazione possiamo ritrovare le stesse differenza di impostazioni, abbastanza ironicamente visto che i linguaggi di programmazione sono quasi tutti di derivazione anglosassone.

Dal Basic, linguaggio in cui l’operatore ‘=’ viene utilizzato con le stesse ambiguità del termine ‘essere’ si passa al Pascal ed al linguaggio C ed ai suoi derivati , in cui ci si preoccupa di distinguere l’assegnamento, cioè il divenire, dal confronto, usando due operatori diversi, = e == (doppio uguale). Resta comunque possibile anche in questi due linguaggi scrivere espressioni in cui si assegna un valore ad una variabile in modo ricorsivo, facendo riferimento ad un suo valore precedente.

A=A+B

Ovviamente questa espressione non va intesa come un’equazione, ma a quest’ultima ambiguità pongono rimedio i linguaggi funzionali come Erlang, che non permettono l’assegnamento di un valore ad una variabile più di una volta, rendendo di fatto impossibile concepire simili storture sintattiche. Anche il C, con l’introduzione di appositi operatori di modifica ed assegnamento ci dà la possibilità di proseguire su questa strada, utilizzando espressioni come la seguente

A+= B

dove l’operatore += è inteso semplicemente come incremento, ma basta complicare un attimo l’espressione per ricadere nel caso precedente, dopotutto il C non ha mai deluso nessuno in quanto a flessibilità.

A+= 2/(A+1);

I concetti di sostantivo, aggettivo ed azione presenti nel linguaggio umano si ritrovano comunque nei vari paradigmi della programmazione, orientata agli oggetti, funzionale o imperativa . Nessuno di questi paradigmi è tuttavia in grado di coprire completamente le necessità della programmazione ed è per questo che nei linguaggi di programmazione orientati agli oggetti si è costretti a ricorrere all’uso dei generics, o dell’Aspect Oriented Programming.

http://it.wikipedia.org/wiki/Essere

http://it.wikipedia.org/wiki/Filosofia_analitica

http://it.wikipedia.org/wiki/Erlang_(linguaggio)

http://www.erlang.org/

http://www.vialattea.net/odifreddi/impenitente.php

http://www2.polito.it/didattica/polymath/htmlS/info/BIBLIOID/Borzacchini%20Odifreddi.htm

http://it.wikipedia.org/wiki/Chiusura_%28informatica%29

http://en.wikipedia.org/wiki/Aspect-oriented_programming

Lascia un commento »

Non c'è ancora nessun commento.

RSS feed for comments on this post. TrackBack URI

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Blog su WordPress.com.

%d blogger cliccano Mi Piace per questo: