SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
I programmi sono testi?
Copyright Stefano Penge 2010 CC BY-NC-SA
Cosa significa leggere?

Vedere un codice sorgente “come testo”
non significa solo vederlo come sequenza di
caratteri alfanumerici
Scrittura e lettura
Se la scrittura è solo la fissazione perenne di un
flusso orale, allora la lettura è solo la ricostruzione
dell'originale
Ma se la scrittura ha una sua autonomia, allora la
lettura diventa un'operazione creativa (Eco) e ci
possono essere tante letture quanti lettori,
contesti, obiettivi.
Retorica

Il luogo naturale per questo modo di vedere un
testo è la retorica.
Tipicamente un testo per funzionare deve essere
letto (poesie, slogan):
a volte a voce alta (incantesimi, giuramenti,...)
a volte deve solo essere scritto (contratti)
a volte eseguito (ricette)
Parallelismi
Si possono immaginare delle coppie:
immagine bitmap / vettoriale
suono campionato / MIDI
testo oggetto (descrizione) / testo sorgente
(ricetta, copione, partitura, programma)
In tutti questi casi si oppone una rappresentazione
per proprietà ad una per operazioni (Bridgman),
un oggetto ad una macchina.
Testi e macchine 1

Per far funzionare un testo a volte non serve
nemmeno la lettura e non basta la scrittura:
il testo che fa funzionare il Golem deve essere
attivato (ha bisogno di una macchina ospite)
Testo e macchine 2

I testi non sono quindi solo oggetti ma macchine.
Non dal punto di vista materiale, non da quello
strutturale.
Testo come sistema artefatto che funziona (ha un
fine, un'attivazione, …)
Testi e macchine 3

I Codici Sorgente possono essere scritti per
funzionare attraverso una macchina ma possono
funzionare anche in altri modi (didattica, perl
poetry, obfuscated code contests)
Possono anche essere solo letti (I love you)
Codice sorgente come ipertesto

Ogni ipertesto è anche un codice sorgente (un link
per essere attivato richiede una funzione che
richiama una porzione di testo)
Ogni codice sorgente è un ipertesto: non è un
testo lineare, contiene salti, richiami (chiamata di
funzione come link).
Un tipico programma per l'editing del CS permette
una lettura attraverso più finestre parallele
Cosa significa scrivere un testo

Scrittura e progettazione di un testo sono due
attività connesse.
Quando si pensa alla scrittura di un racconto si
comprende in questa anche l'attività di definizione
di luoghi, tempi, attori, climax.
E scrivere un programma?

Scrittura e progettazione di un Codice sorgente
sono attività connesse... Quando si pensa alla
scrittura di un programma si dovrebbe
comprendere anche la definizione delle strutture
dati, dei moduli, delle funzioni, del flusso, dei
processi di validazione dei dati e verifica dei
risultati.

Weitere ähnliche Inhalte

Mehr von Stefano Penge

Valutare (nel, con il) digitale
Valutare  (nel, con il) digitaleValutare  (nel, con il) digitale
Valutare (nel, con il) digitaleStefano Penge
 
Verso un uso consapevole dei dati digitali nell'educazione
Verso un uso  consapevole dei dati digitali nell'educazioneVerso un uso  consapevole dei dati digitali nell'educazione
Verso un uso consapevole dei dati digitali nell'educazioneStefano Penge
 
Programma o sarai programmato
Programma o sarai programmatoProgramma o sarai programmato
Programma o sarai programmatoStefano Penge
 
Creiamo una app Android con gli Opendata di Ipocad
Creiamo  una app Android con gli Opendata di IpocadCreiamo  una app Android con gli Opendata di Ipocad
Creiamo una app Android con gli Opendata di IpocadStefano Penge
 
Un automa linguistico
Un automa linguisticoUn automa linguistico
Un automa linguisticoStefano Penge
 
SCE2014_ACADEMY_Lynx
SCE2014_ACADEMY_LynxSCE2014_ACADEMY_Lynx
SCE2014_ACADEMY_LynxStefano Penge
 
Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...
Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...
Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...Stefano Penge
 
Filckr apprendimento informale
Filckr apprendimento informaleFilckr apprendimento informale
Filckr apprendimento informaleStefano Penge
 
Social tagging in un ambiente di apprendimento digitale
Social tagging in un ambiente di apprendimento digitaleSocial tagging in un ambiente di apprendimento digitale
Social tagging in un ambiente di apprendimento digitaleStefano Penge
 
Attori, ambienti e oggetti: un modello integrato
Attori, ambienti e oggetti: un modello integratoAttori, ambienti e oggetti: un modello integrato
Attori, ambienti e oggetti: un modello integratoStefano Penge
 
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...Stefano Penge
 
Strumenti di analisi per la valutazione di un gruppo di apprendimento online
Strumenti di analisi per la valutazione di un gruppo di apprendimento onlineStrumenti di analisi per la valutazione di un gruppo di apprendimento online
Strumenti di analisi per la valutazione di un gruppo di apprendimento onlineStefano Penge
 
Strategie collaborative di costruzione di un corso online: una metodologia a ...
Strategie collaborative di costruzione di un corso online: una metodologia a ...Strategie collaborative di costruzione di un corso online: una metodologia a ...
Strategie collaborative di costruzione di un corso online: una metodologia a ...Stefano Penge
 
Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...
Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...
Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...Stefano Penge
 
Opendata e opensource
Opendata e opensourceOpendata e opensource
Opendata e opensourceStefano Penge
 
Presentazione wikibolario online
Presentazione wikibolario onlinePresentazione wikibolario online
Presentazione wikibolario onlineStefano Penge
 

Mehr von Stefano Penge (18)

Valutare (nel, con il) digitale
Valutare  (nel, con il) digitaleValutare  (nel, con il) digitale
Valutare (nel, con il) digitale
 
Verso un uso consapevole dei dati digitali nell'educazione
Verso un uso  consapevole dei dati digitali nell'educazioneVerso un uso  consapevole dei dati digitali nell'educazione
Verso un uso consapevole dei dati digitali nell'educazione
 
Rodari digitale
Rodari digitaleRodari digitale
Rodari digitale
 
Programma o sarai programmato
Programma o sarai programmatoProgramma o sarai programmato
Programma o sarai programmato
 
Creiamo una app Android con gli Opendata di Ipocad
Creiamo  una app Android con gli Opendata di IpocadCreiamo  una app Android con gli Opendata di Ipocad
Creiamo una app Android con gli Opendata di Ipocad
 
Mako
MakoMako
Mako
 
Un automa linguistico
Un automa linguisticoUn automa linguistico
Un automa linguistico
 
SCE2014_ACADEMY_Lynx
SCE2014_ACADEMY_LynxSCE2014_ACADEMY_Lynx
SCE2014_ACADEMY_Lynx
 
Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...
Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...
Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...
 
Filckr apprendimento informale
Filckr apprendimento informaleFilckr apprendimento informale
Filckr apprendimento informale
 
Social tagging in un ambiente di apprendimento digitale
Social tagging in un ambiente di apprendimento digitaleSocial tagging in un ambiente di apprendimento digitale
Social tagging in un ambiente di apprendimento digitale
 
Attori, ambienti e oggetti: un modello integrato
Attori, ambienti e oggetti: un modello integratoAttori, ambienti e oggetti: un modello integrato
Attori, ambienti e oggetti: un modello integrato
 
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...
 
Strumenti di analisi per la valutazione di un gruppo di apprendimento online
Strumenti di analisi per la valutazione di un gruppo di apprendimento onlineStrumenti di analisi per la valutazione di un gruppo di apprendimento online
Strumenti di analisi per la valutazione di un gruppo di apprendimento online
 
Strategie collaborative di costruzione di un corso online: una metodologia a ...
Strategie collaborative di costruzione di un corso online: una metodologia a ...Strategie collaborative di costruzione di un corso online: una metodologia a ...
Strategie collaborative di costruzione di un corso online: una metodologia a ...
 
Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...
Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...
Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...
 
Opendata e opensource
Opendata e opensourceOpendata e opensource
Opendata e opensource
 
Presentazione wikibolario online
Presentazione wikibolario onlinePresentazione wikibolario online
Presentazione wikibolario online
 

I programmi sono testi?

  • 1. I programmi sono testi? Copyright Stefano Penge 2010 CC BY-NC-SA
  • 2. Cosa significa leggere? Vedere un codice sorgente “come testo” non significa solo vederlo come sequenza di caratteri alfanumerici
  • 3. Scrittura e lettura Se la scrittura è solo la fissazione perenne di un flusso orale, allora la lettura è solo la ricostruzione dell'originale Ma se la scrittura ha una sua autonomia, allora la lettura diventa un'operazione creativa (Eco) e ci possono essere tante letture quanti lettori, contesti, obiettivi.
  • 4. Retorica Il luogo naturale per questo modo di vedere un testo è la retorica. Tipicamente un testo per funzionare deve essere letto (poesie, slogan): a volte a voce alta (incantesimi, giuramenti,...) a volte deve solo essere scritto (contratti) a volte eseguito (ricette)
  • 5. Parallelismi Si possono immaginare delle coppie: immagine bitmap / vettoriale suono campionato / MIDI testo oggetto (descrizione) / testo sorgente (ricetta, copione, partitura, programma) In tutti questi casi si oppone una rappresentazione per proprietà ad una per operazioni (Bridgman), un oggetto ad una macchina.
  • 6. Testi e macchine 1 Per far funzionare un testo a volte non serve nemmeno la lettura e non basta la scrittura: il testo che fa funzionare il Golem deve essere attivato (ha bisogno di una macchina ospite)
  • 7. Testo e macchine 2 I testi non sono quindi solo oggetti ma macchine. Non dal punto di vista materiale, non da quello strutturale. Testo come sistema artefatto che funziona (ha un fine, un'attivazione, …)
  • 8. Testi e macchine 3 I Codici Sorgente possono essere scritti per funzionare attraverso una macchina ma possono funzionare anche in altri modi (didattica, perl poetry, obfuscated code contests) Possono anche essere solo letti (I love you)
  • 9. Codice sorgente come ipertesto Ogni ipertesto è anche un codice sorgente (un link per essere attivato richiede una funzione che richiama una porzione di testo) Ogni codice sorgente è un ipertesto: non è un testo lineare, contiene salti, richiami (chiamata di funzione come link). Un tipico programma per l'editing del CS permette una lettura attraverso più finestre parallele
  • 10. Cosa significa scrivere un testo Scrittura e progettazione di un testo sono due attività connesse. Quando si pensa alla scrittura di un racconto si comprende in questa anche l'attività di definizione di luoghi, tempi, attori, climax.
  • 11. E scrivere un programma? Scrittura e progettazione di un Codice sorgente sono attività connesse... Quando si pensa alla scrittura di un programma si dovrebbe comprendere anche la definizione delle strutture dati, dei moduli, delle funzioni, del flusso, dei processi di validazione dei dati e verifica dei risultati.