




























































































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
dispense complete su corso di informatica
Tipologia: Dispense
1 / 208
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





























































































1
Tutte le parti di questo Work , sviluppate dall’ Original author , e
so- lo quelle, sono distribuite in accordo con la licenzaCreative
CommonsAttribution-Noncommercial-No DerivativeWorks3.0U n p o r t e d.
6.2 Documenti di riferimento....................................................... 117
6.3 Validazione conXMLCopy....................................................... 118
6.4 Ulteriorivalidatori.................................................................. 122
7 Interpretazionetramitetrasformazione 123
7.1 Interpretare equivaleatrasformare......................................... 124
7.2 Interpretazione diconcetti(etichettati)..................................... 124
7.2.1 Interpretazione traconcettiarbitrari............................... 125
7.2.2 Sorgenteedoggetto......................................................... 127
7.3 Interpretazione tipograficadiconcetti..................................... 128
7.4 Qualche intuizione sucomefunziona........................................ 129
7.4.1 Documentidiriferimento.............................................. 130
7.4.2 Significato della prima rigadellatabella......................... 132
7.4.3 Significatodellasecondarigadellatabella............................ 134
7.5 Dovesiamo.............................................................................. 135
8 Interpretazione ed Elaborazione Automatica
8.1 XSLTprocessor................. ...........
8.2 L’XSLT processord i XMLCopy............... ....
9 Modello di Calcolo per l’Interpretazione
9.1 DocumentiXSLT............... ............
9.1.1 PreambolodiundocumentoXSLT.............
9.1.2 Regoled’interpretazionediundocumentoXSLT..... 145
9.2 Interpretazionediunaregola.................... 146
9.2.1 Sintassidelpredicatodiattivazione........ .... 146
9.2.2 Usodelpredicatodiattivazione. .............. 147
9.2.3 Template ,ovveroModelloditrasformazione........ 151
9.3 InterpretazionediundocumentoXSLT............... 154
9.3.1 FunzionamentodimassimadelprocessorP........ 155
9.4 Indaginesperimentalesull’interpretazione............. 157
9.4.1 Visitainpreordine..... ................. 159
9.4.2 Esempisperimentalidiinterpretazione........... 159
9.5 Dovesiamo.......... .................... 160
A Soluzioni agli esercizi 163
B Risorse
B.1S o f t w a r e............... .................
B.1.1Applicazioni“portabili”....................................................... 192
B.2S i t i .......................................................................................... 193
CTestisull’argomento 195
Questapremessa`eunamalgamadipensieri,espressidavarispecialistidell’in-
formatica,conloscopodidescriverelanaturadell’informaticacomescienzachepu`ovaler
elapenadistudiareperraggiungerefi nianaloghiaquellichesipongonolamatematica
olafisica:avereunpuntodivistainpiu`perguardareilmondo.
L’effettofinalepotr`aassumeretoniideologici,ma,delresto,sivuoleparlarediinfor
matica,tentandodi“propagandarne”unacertautilit`a.
1
Nuoviorizzontiedopportunit`a
Letecnologiedell’informazioneedelletrasmissionidigitali,ovveroletecnologieinformatich
e,hannoaperto orizzontiassolutamente ineditiinquasituttigliam-
bitidell’attivit`aumanaorganizzata.Inspecialmodo,stannocreandoeccezionali opp
_ortunitap_ ersvilupparenuovetipologiediserviziestrumenti,semprepiuin-
terattiviepersonalizzabili,epermigliorareinmodoradicalequelliesistenti.Alcuni
esempisono:
Lapossibilit`adiaccumulareedelaboraremolididati,ordinidigrandezzamaggi
oridiquantomaiipotizzatoprima,ediorganizzarliemantenerliinbanche dati
accessibilitempestivamente.
Lapossibilit`adicreareeoffrirenuoveesperienzevirtuali,ancheinmodoremoto,
costituisconounacombinazionedipotenzialit`astraordinarie,permolti versi
ancora inesplorate.
Insidie e loro sorgente
Nontuttoper`o,p rocedes empreconlanaturalezzaede ⇥caciaauspicate.Larivoluzi
onedigitaledettatadalladiffusione,riuscitaomancata,ditecnologiedell’informazioneeco
municazionesembrainveceessereaccompagnatadainsidie
1 Liberamente tratto da [NACH06]
edi⇥coltamoltopiudiqualunquealtrarivoluzionetecnologicaavvenutainpassato.
Peranalizzare,seppurschematicamente,talirischieproblematiche,`eop-
portunopartireconl’indicarel’originedellecriticit`a,eunaviaragionevolepersupera
rle.
Abilit`ainformatiche vs.C ulturainformatica
Noneancorachiaraladifferenzatra“abilitainformatiche”e“culturainformat-ica”.
Informatica come uso della tecnologia.In generale, si guarda all’infor-
maticacomeunsoggettoche“genera”tecnologieestrumentiperl’usoquoti-
diano.Talevisionepu`ospingerelepersoneall’acquistodistrumentitecnologi-
citrasformandolein consumatrici diinformaticapiuttosto chein utilizzatriciconsapevoli
diprodottii n f o r m a t i c i.
Questo`e,e ssenzialmente,c onsumismod it ecnologia,p robabilmentem oltoappr
ezzatodalleimpreseinformatiche,soprattuttoquandocolpisceverticidellepubblicheam
ministrazioni,perch´ealloraquesteloriverberanosututtalacomu-
nit`a,provocandoun’ondadiacquisti,ingenerale,nonstrettamentenecessari.
Visionestrumentaleeabilit`ainformatiche.Tuttavialeimplicazionidellavisio
netecnologica,osservatenelparagrafoprecedente,sonoinlineaconlostile
divita“occidentale”equestonondovrebbe,certamente,crearealcunoscandalo.
Il vero problema.
Il problemanascequando siponela visionetecnologica come
basedellacosiddettaalfabetizzazioneinformatica,legandoleabilit`ain-
formatiche agli standard tecnologicicorrenti.
Ilmotivo`echesiilludonolepersonedipossedereconoscenzeautentiche.
Alcontrario,essesitroverannoinpossessodicompetenzechesvanisconoalprossim
o mutamento del paradigma hardware o software.
Unavisionepiu`scientiftcadell’informaticaO
biettivo.
Puntareasmetteredivederel’informaticacomelafamiliarit`adiaccessoe
utilizzo alcalcolatorepermezzo
diprogrammistandardpreconfiguraticheaipiu`paiono,calcolatoreepro
grammi,intoccabili.
Esempi di divide etimpera. Essi sono ricercare una parola in un vocabo-
lario,odefinireunaproceduraperrealizzareunqualsiasicompitopratico,quali:
cucinareunapietanza,stirareunacamicia,mettereinordineunmazzodicarte,pesareun
oggettosuunabilancia,pagareincontantiperunacquisto.
Peculiaritadell’informatica.Sip uoc ertamenteo s servarechel ’analisid iunpro
blemapersottocomponenti,colfinediricomporrelesoluzioniparziali,ina c cordoc onu n ad escri
zionea s tratta,ovveroperm ezzod iu n m odello,`esicuramente tipico di
moltediscipline.
Lapeculiaritadell’informatica,neiconfrontidiquestametodologia,echeisuois
trumenti,generalmentedinaturalinguistica,permettonol’analisidiuncontestoe l as uad escrizi
oneperm ezzod im odellia g r anularit`ad iverse,n onmonoliticamente,comeperta
ntediscipline,ancheesatte.
Ladescrizione“informatica”pu`oavereunanatura“telescopica”chepermet-
tedimettereafuocoecircoscrivereiproblemispecificidiunospecificolivellodiastrazioneneldescriv
erelasoluzionediunproblema.
Complessitaedinterdisciplinaritadell’informatica.Saperanalizzareunco
ntestoconduceadunacomprensionesistemica,s emprepiu`n ecessariadiambitiorm
aidominatidallacomplessit`a.
s tatapropriol’informatica,forse,lascopertapiuinteremultidisciplinare
diquestoultimomezzosecolo,che`epoilaragionedellasuadiffusione,delcarattereperv
asivodelletecnologieinformaticheintantedisciplineeattivit`aumane.
“Naturainformatica”diffusa.Siescopertocheogniambitodiattivitaoramode
lsaperepossiedeunacomponente software ,un“residuo”informatico,che`epossibilemetterea
fuocoattraversounaprospettivametodologicac om-putazionale alla disciplina,
sia in termini algoritmico procedurali che in terminilinguistico-logico-
semantici.
Visione informatica e visione estesa.Il mettere a fuoco l’ aspetto infor-
maticoi nunaqualsiasidisciplinaoattivit`a,permettedianalizzareladisciplinastessas
ottounanuovalucechelarendepiu`strutturaleestrutturatanelsensoche:
Quelchecontadelladisciplinanonsonopiu`iconcettiins
´echelacompongono, ma le diflerenze o irapportitradi essi,
ilmodoconcui le correlazioi sicreano,ovvero leprocedure.
Adesempio,il“contenutoinformaticodegliscacchi”`equelcheri-
manequandononcisonopiulascacchieraelepedine.Quelcherimaneel a
rappresentazionedelleregoleditrasformazionetracon-
figurazioniconcui descrivereogni passodi una qualsiasipartita.
`p ossibilefaremergerel’aspettoinformatico,ovverogliaspettiproceduraleelinguis
tico-semantico,all’internodinumeroseattivit`aediscipline:d allametrica
estrutturadellefilastrocche,alritodelladanza,dallemanovreferroviarie,algioco.L ’ informatica
sierivelatacosı,primaancoradiesserecalatanellesueap-plicazioni, una lingua
franca per il dialogo interdisciplinare, ovvero un
antidotoall’incomunicabiit`adeglispecialismi.
Informatica vs. altre scienze: andata e ritorno.Attraverso la
veraalfabetizzazione informatica, specialisti di altre discipline possono
beneficiaredelcorredoconcettualechele`eproprio.
Infatti,s ed avveroe spostia l lac ulturai nformatica,d au n l ato`epossibileaccresc
erelapropriaproduttivitaindividualeattraversol’usosapienteepiuconsapevole
di ausilitecnologici.
Dall’altro,sar`aanchepossibileintrecciarescambiconcettualiconl’infor-
maticasulpianodeicontenutiperch
´enelmomentoincuisidiventautilizzatoriconsapevolidistrumentirealieconcettualinuovila
distanzatraduediscipline,otraattivit`aconradiciemetodologiediverse,tendeadannullarsi.
Informatica: Elogio di Babele
2
Dopoaverpropagandatolapossibileutilitadidiventareutilizzatoripiucoscientidell
’armamentario informatico, approfondiamo una delle possibili prospettive,con
cui guardare a talearmamentario.
Leorigini.Abbiamogi`aprovatoadescriverel’informaticamoltosuccinta-mente
come:
Scienza delle metodologie generali per “automatizzare” la
soluzionea problemi.
`u tilericodarechelanascitadell’informaticaprecededialmenodiecianniladisponi
bilit`adiqueimanufattichechiamiamocalcolatori( computer) el’utilizzodeiqualiog
gitendiamoaconfondereconquellascienza
3 .
L’“automatizzabile”,omeglioil“calcolabile”.Lostudiodelleattivit`achesian
oatomatizzabili,o,piu`tecnicamente, calcolabilim aturaneiprimiannitrentadelnove
cento,nelcuoredellalogicamatematica,peroperadiK.G¨odel,
A. Church, S. Kleene, E. Post e, soprattutto, Alan M. Turing.
Il“calcolo”`emanipolazionesimbolica.Medianteun’analisideipro-
cessidicalcoloumani(inparticolaredellelimitazionidellamemoriaedellapercezion
e),Turingi dentificai l “ c alcolo”c onl apossibilit`ad im anipolazionecombinatori
adiinsiemifinitiediscretidisimboli:
2 Liberamente tratto da [Mar08]
3 “ Computer science is no more about computers than astronomy is about telescopes ”,
E. W.Dijkstra,premioTuring 1972 .IlpremioTuring,ilpiu`importantericonoscimentointernazion
aleperuninf ormatico,`eattribuitoognianno dall’associazioneprofessionaledegli informatic
i americani( A CM).
I calcolatori che stanno sulle nostre scrivanie sono,ancor oggi,va-
riazionitecnologicamenteavanzate delprogettoingegneristico di
JohnVonNeumann, basato sulprogettopuramentespeculativo,di natura
astratta, di AlanTuring.
Saremopreponderantementeinteressatiallaletturalinguisticadell’informatica.
Comeconseguenza,vedremoalcuniaspettitecnologiciavanzatiadessacollegati.
Tantilinguaggi,unsoloconcettodi“calcolabile”.Nonvi`ecalcolosenzalinguag
gio,malavariet`adeilinguaggi nonproduceconcettidiversidicalcolo ,perch
´etuttisonocodificabilinellasemplicemacchinadiTuringuniversale.U n sololinguag
gio,chepu`oessererappresentatodasequenzefinitediunasolacoppiadisimboli,e sauri
sce,mediantecodifica,tuttoquanto`eesprimibileperla
manipolazioneautomatica.
Inparticolare,cioccuperemodiprovareacapiredicosasioccupil’informati-
ca,edicomelasipossausare,proprioconcetrandocisuunospecificolinguaggio,l’XML,checiperme
tter`adidescriverneinfinitialtri,maconcaratteristichebenprecise,e“verificabili”au
tomaticamentedauncalcolatore.
Tuttiilinguaggidel“calcolabile”sonoequivalenti.L’XML`eunodeilinguag
gi della babele cui si accenna nel titolo.
La babele nasce sin dall’inizio dell’informatica.
Esistonopiuspeculatoridel“calcolabile”.Intendiamochen onc ’e
statosoloTuring,aspecularesuieadefinireiprocessidicalcoloeffettivopermezzo di
rappresentazioni linguistiche, indipendenti da qualsiasi
realizzazionetecnologica del processo di calcolodescritto.
Neglistessianni,altridescrivonoincosaconsista“calcolare”,partendodapresupposti ed
analisi diverse:
Alonzo Church .Introduce il Z -calcolo, un formalismo basato sulla riscrit-
tura successiva di sequenze di caratteri che corrispondono
adespressionisimboliche.
KurtG¨odel .Sviluppaunmododidefinirefunzioniper“ricorrenza”,oricor-sione.
EmilPost .Definisceunsistemadicellecontiguechesiinfluenzanotraloroeche evolvono per
passidiscreti.
FORTRAN, LISP, Java,... , XML , DTD , XSLT ,.. .In seguito, quando
ladisponibilitadicalcolatorielettronicirichiederadipoterliprogrammareinmodos
emprepiu`sempliceede⇥cace,sarannointrodottealtrecentinaiadilinguaggidipro
grammazioneperdescrivereilcalcolo.
Tuttavia,q uestam oltiplicazioned il i nguaggin oni ntaccal ag e neralit`ad elconc
ettodi“calcolabile”.Tuttiquestilinguaggi,infatti,sonosolomaterializ-
zazionidiversedellostessoconcetto,sviluppatesicomeconseguenzadisensibilit`ades
crittive e obiettividiversi.
Adesempio,seunacertacorrispondenzatranumerinaturali`ecalcolabiledaunam
acchinadiTuring,alloraesisteunafrasenel Z -
calcolodiChurch,onellefunzioniricorsivediG¨odel,odiunqualsiasialtrolinguaggiodip
rogrammazione,checostruiscelastessacorrispondenza.I lpunto`echeilmodoincuisid
escrivecomecostruirelacorrispondenzainquesionecambia,mailconcettodi“cosa`ec
alcolabile”`einvarianterispettoalladescrizione.
Unadellepeculiaritadell’informaticaequindisollecitarelosviluppodilinguaggiper
descrivere fenomeni di particolareinteresse.
Talifenomenisonoleprocedurecheciconduconoarisolveredeiproblemiche possiamo
ritenereinteressanti.
Gliinterpretinaturaliditalidescrizionisonoicalcolatori.E
`c omedireche:
L’informaticaelascienzaunadellecuicaratteristichepeculiariedescri
vere il mondo aic a l c o l a t o r i.
In accordo con tale definizione, ci occuperemo proprio di descrivere il mondo
aicalcolatori, sotto forma di documenti opportunamente strutturati.
Uncalcolatorepotr`aoperaresutalidocumenti,interpretandolicondiversefinalit
`a.
Vedremocomeilprodurretalidescrizioniciforzer`aarifletteresuvariaspettiquali,
adesempio:
quantononsianecessariamentebanalescegliereilgiustolivellodescrittivonelparlarediun
qualchesoggettod’interesse,
come sia possibile caratterizzare l’insieme dei soggetti di nostro interesse,
cosapossasignificaredareun’interpretazioneaconcetti,attraversouncalcolatore.
Atalfine,comegi`aannunciato,sfrutteremolatecnologialinguisticafornitacidal
linguaggio per descrivere linguaggiXML.
Moltimetodipossonoesistereperscoprireilperch
´eesostenibilelaposizionesecondolaqualel’informaticaelascienzaconlaqualeside
scriveilmondoaicalcolatori.
Ilnostrometodomescoler`ateoriaepratica,laquale,evidenziaquantol’essenzadel
lateoria`estataassimilata.
Un sito
per cv .Visitiamohttp://europass.cedefop.europa.eu/it/home.Tralevariefinalit`a,ilsi
to`eprogettatoperraccogliereediffondere curriculumvitaedi personechevoglianopart
ecipareadiniziativedistudioolavoroinEuropa.
In quanto persone che desiderino “giocare all’informatico” cominciamo
conl’osservare come i cv vengono raccolti.
I cvsono raccoltipermezzodiun’interfacciaweb.Ovvero,all’interessato non`ep ermes
soinviareun cvs crittoconunprogrammadielaborazionedisuascelta.
`d atoperscontatoche,selasceltafosselasciataall’interessatoall’invio,nel-
lastragrandemaggioranzadeicasigliorganizzatoridelsitoriceverebberoun file scrittoconunod
eglielaboratoriditestopiudiffusi—nonedi⇥cileimmaginarequale
—,inaccordoconunasceltatipograficaessenzialmentearbitraria.
Le prima domanda (fondamentale).
Perch´esiimpediscel’inviodi cvc omposticonelaboratoritestiampia-
mentediffusienormalmenteutilizzatidallepersone?
Possibile risposta alla prima domandaSenza troppi
preamboli:Siccome gli elaboratori di testo diffusi memorizzano
i file usando
formatiproprietarin ´eg l ior ganizzatoridels erviziod ir accolta,n
´ecolorocheinvianoil cvsi possonoritenerepienamenteproprietaridelle
informazionirilasciate.
Per“formatoproprietario”intendiamocheidatisonomemorizzatiinaccordo
conconvenzionichenonsonogeneralmentenote,amenodi reverseengineering.
Esempio 1 (Cosapu`onascondereunformatoproprietario.)Perrender-
cicontodicosapossasignificare“formatoproprietario”facciamounesperimento.
PrimapassoSupponiamoc hes uln ostroc alcolatores iau tilizzabileil p iu`n oto,ad
oggi, anno 2011, elaboratore di testi. Supponiamo di scrivere su diesso
unabbozzodi cvche memorizziamocome filedi nomecv.Anchesequestopu`onones
sereevidentedaquantoapparesulloschermo,ilveronomedel fileche abb iam o me m
orizzatoecv.doc .Ils u⇥sso.docel’estensioned el fi l ee dindicaqualesiailprogr
ammachelohageneratoechepotr`a,ingenerale,accedervi per
eventualimodifiche.
Per ipotesi, supponiamo di aver memorizzatocv.docincuiinostridatianagrafici
includevanoilnostronomeLuca.
Figura 1.1: Il file cv.docletto con l’elaboratore di file esadecimaleXVI32.exe
Secondo passoScarichiamo dawww.chmaas.handshake.del’archivio
hex-editor-xvi32.zip. L’archivio scompattato, contiene (anche) il pro-
grammaX V I 3 2. e x e .E sso`eu n e laboratoret estie sadecimale.Conb uonaappr
ossimazione,questosignificacheXVI32.exeleggeilcontenutodei file conlamassimag
ranularit`apossibile.
TerzopassoUsiamoXVI32.exeper leggere il contenuto dicv.doc. Una
voltacaricatocv.docilprogrammaXVI32.execirivelal’esistenzadiunenormequ
antit`adicaratterinonintellegibilitraiqualiesistonoanchequellie"ettiva-
mentedigitatisullatastiera.Se,infatti,cerchiamoiltesto“Luca”XVI32.exescovataleseque
nzadicaratteri,mostrandolafinestrainFig.1.1.
Ilmotivopercuimemorizzareun filedoc “vuoto”,nelqualenonabbiamointrodottoa
lcuntesto,occupaunaquantit`adispaziomoltosuperioreaquelchecipotremmoaspett
are`estatoconfermatotramiteXVI32.exe.E ssoharivelatol’effettivapresenzadiinfor
mazionesottoformadisequenzenonintelleggibilidicaratteri.Talis equenzes onos icura
mentelegateal menoal lanecessit`adime-
morizzareleinformazioniperlacorrettaimpaginazionedeltesto.I nrealt`anon
`edatosaperequelcheessacodificaatalpuntochelaconfigurazionedell’elab-
oratoretesticheproduce file.doc pu`ocontinuareamemorizzarepartiditestocancella
te,semplicementeoscurandolaloropresenzainfasedistampa,sucarta, o sullo schermo, senza
eliminarle del tutto.XVI32.exepotrebbe rivelare la pre-
type="text/xsl"?>
<europass:learnerinfol
ocale="en_GB"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"xmlns:europass="http://europass.cedefop.europa.eu/Europass/
V2.0"xsi:schemaLocation
="http://europass.cedefop.europa.eu/Europass/V2.0http://europass.cedefop.europa.eu/xml/
EuropassSchema_V2.0.xsd">
<field before="step1.lastName"name="step1.firstName">
<field format="" keep="false"name="step1.birthDate">
<field keep="true"na me =" s te p1. ge nd e r" >< /f i el d>
<field keep="false"na me =" s te p1. ph ot o "> </ fi e ld >
<field format="/text/short"name="step3List[0].period">
<field before="step4List" keep="false"name="step3List">
<field keep="false"name="step6.organisationalSkills">
<field keep="false"n a m e = " s t e p 6. c o m p u t e r S k i l l s " > < / f i e l d >
<field keep="false"n a m e = " s t e p 6. a r t i s t i c S k i l l s " > < / f i e l d >
<structured-skillxsi:type="europass:driving"></
structured-skill>
</europass:learnerinfo>
Lastrutturasintatticadel fileX MLquisoprariportatonon`emoltointelleggi-
biledaunumano,peresserlo,invece,agli“occhi”diuncalcolatoreopportuna-
menteprogrammato.Noiarriveremoacapirecomeprogrammareuncalcolatore