HOME 
Informatica
Italiano
Storia
Inglese
Fisica
Chimica
Biologia
Scienze
Educazione Fisica
Informatica
Bibliografia

ANALISI TECNICA PER LA REALIZZAZIONE DELLA TESINA IPERTESTUALE

 

Software adoperato : Macromedia Dreamweaver; software utilizzato per progettare e costruire siti Web

Storia Software: Dreamweaver nasce, come editor visuale, nel 1997 ed il suo bellissimo nome ( tessitore dei sogni ) risulta veramente azzeccato. Nel corso degli anni si arriva alla versione 4, che consente anche un eccellente controllo del codice e che riscuote un crescente successo anche fra gli utenti avanzati, tra i più riluttanti ad adottare editor visuali. Oggi, infatti, Dreamweaver è utilizzato in tutto il mondo da circa l'80% dell'utenza professionale, perché offre molteplici vantaggi, non ultimo, quello di generare il codice più corretto e "pulito" tra gli editor della sua categoria .

 

Editor visuali e editor testuali

Gli strumenti per realizzare pagine web sono definiti editor HTML. Questi si dividono in due grandi categorie:

  • editor visuali o, dall'inglese, WSYIWYG  - What You See Is What You Get, ovvero ciò che vedi e ciò che ottieni (il risultato finale) - poiché consentono all'utente di realizzare le pagine in maniera visiva, quasi come se si stesse lavorando all'interno di un browser virtuale, generando automaticamente il codice sottostante;
  • editor di testo o di codice, perché l'utente non modifica visualmente gli elementi di una pagina - immagini, tabelle, frames, ecc. - ma interviene direttamente sul codice.

Questa divisione, più netta nella seconda metà degli anni '90, è adesso più sfumata. Infatti gli editor visuali consentono un facile intervento diretto sul codice, mentre gli editor testuali, per contro, consentono rapide anteprima di pagina e l'inserimento di elementi della pagina tramite comandi che risparmiano buona parte della scrittura diretta  del codice.

Entrambi gli editor presentano vantaggi e svantaggi : se da un lato gli editor visuali consentono un più rapido apprendimento e spesso velocizzano il lavoro, dall'altro gli editor testuali consentono un assoluto controllo del codice, risultando così, spesso più graditi agli utenti avanzati e velocizzano il lavoro quando si vuole inserire codice personalizzato.

 

HyperText Markup Language(HTML)

 

Introduzione al linguaggio per la creazione di ipertesti sul World-Wide Web

 

Breve introduzione

  • Internet è una infrastruttura che interconnette un grandissimo numero di reti di calcolatori utilizzando il protocollo TCP/IP.
  • Uno di questi protocolli di alto livello è l' HyperText Transfer Protocol , che consente l'accesso a risorse distribuite su diversi host sulla Rete con un approccio di tipo ipertestuale .
  • I documenti ipertestuali sono codificati secondo le specifiche dettate dallo standard HTML: HyperText Markup Language .
  • L'HTML è una applicazione dell'SGML ( Standard Generalized Markup Language ), uno standard internazionale per la formattazione di documenti (norma ISO 8879).
  • HTTP identifica le risorse in rete mediante URL ( Universal Resource Locator ):

 

 

Cronologia del WWW

1980 Tim Berners-Lee (CERN) sviluppa il programma "Enquire-Within-Upon-Everything" che consentiva di effettuare link tra diversi nodi.

1989 Tim Berners-Lee diffonde due documenti per raccogliere opinioni sul suo lavoro presso il CERN.

1990 Il documento di TBL viene riformulato con l'appoggio ufficiale del CERN; viene coniato il nome World-Wide Web.

1991 Sviluppo dei primi client ed apertura del WWW server del CERN.

1992 Sviluppo del client con interfaccia X; viene rilasciata la lista dei primi 26 server WWW.

1993 Viene rilasciato il primo browser per Macintosh; viene rilasciato X-Mosaic di Marc Andreessen (NCSA); i server HTTP sono circa 50.

1994 Viene fondata la Mosaic Corporation (oggi Netscape Corp.); i siti WWW sono 1.500. A dicembre si tiene il primo meeting del "W3 Consortium" presso il MIT; il CERN, a causa di problemi di budget, decide di sospendere il supporto del progetto WWW.

1995 Viene fondata la "Web Society" a Graz (Austria): partecipano la Technical University di Graz, il CERN, l'Università del Minnesota e l'INRIA (Francia).

 

Generalità sull'HTML

  • Ogni documento in formato HTML è costituito da una intestazione ( HEAD ) e da un corpo ( BODY ).
  • Un documento HTML è un file di testo ASCII dotato di opportuni tag che svolgono diverse funzioni:
    • formattazione dello stile del testo;
    • rimandi (link) ad altre risorse disponibili sul WWW;
    • definizione di maschere di inserimento dati;
    • inclusione di altri oggetti complessi.
  • I tag HTML sono racchiusi tra i simboli di maggiore e minore: < tag >
  • Alcuni tag prevedono un identificatore di inizio (< tag >)e di fine marcatura (</ tag >), altri sono dei tag singoli (es.: <HR> , <BR> ).

Esistono delle codifiche per rappresentare in modo universale ed indipendente dalla piattaforma i caratteri ASCII non standard (es.: lettere accentate).

 

Immagini

  • È possibile includere nella pagina delle immagini; è necessario indicare il nome del file in formato GIF o JPEG specificandone la collocazione mediante una URL:

•  <IMG SRC="http://host.domain/file.gif" ISMAP HEIGHT=h WIDTH=w •  BORDER=n ALIGN=RIGHT|LEFT|TOP|MIDDLE|BOTTOM ALT="testo alternativo">

  • Esempio:
•  <IMG SRC="/gif/mczolor.gif" ALT="Mozilla"> •  Questa &egrave; una immagine visualizzata alla destra del testo...

  • È possibile associare una immagine anche allo sfondo dell'intero documento:
•  <BODY BACKGROUND="http://host.domain/file.gif" BGCOLOR=#rrggbb

TEXT=#rrggbb LINK=#rrggbb VLINK=#rrggbb ALINK=#rrggbb>

 

Collegamenti ipertestuali

  • Definizione di una hotword con collegamento ad una URL:
•  <A HREF="URL">hotword</A>
  • Definizione di un'ancora da utilizzare per un link ad un punto specifico all'interno del documento corrente:
•  <A NAME="ancora">testo</A>
  • Collegamento ipertestuale ad un'ancora definita all'interno di un documento:
•  <A HREF="URL#ancora">hotword<A>
  • Definizione di un link ad un indirizzo di posta elettronica per l'invio di una E-mail:

<A HREF="mailto:nome@dominio">Nominativo</A>

 

DIFFERENZA FRA PROGRAMMAZIONE AD OGGETTI E QUELLA STRUTTURATA

 

"Cosa c'è dentro al calcolatore che esegue il lavoro?" Non importa chi e come esegue le azioni, ma solo che queste vengano fatte con il massimo scrupolo e precisione. Quello che importa quindi è la regola assolutamente precisa ed ineluttabile (senza fantasia) che presiede al comportamento della macchina, quello che prende il nome di algoritmo . L'algoritmo è quindi la precisa descrizione di tutto quello che si deve fare, passo per passo, prendendo in considerazione tutte le possibilità in modo che chi lo esegue non venga mai a trovarsi in una situazione inaspettata, per esempio cimentarsi in bug e in conseguenti blocchi (crash).

  Gli argomenti rilevanti di questo campo possono essere divisi in due: da una parte c'è la discussione del concetto di algoritmo e della sua rappresentazione, la macchina di Alan Turing , cioè del "cosa fare e come farlo", dall'altra quella dei linguaggi di programmazione , cioè del "come esprimerlo". Le due cose nella realtà sono andate ovviamente di pari passo, interagendo tra loro, ma in una discussione concettuale è bene tenerle distinte.

  Un poco più su come livello di astrazione ci sono i cosiddetti linguaggi imperativi , in cui l'idea di fondo è che il programmatore ha ancora l'obbligo di definire in tutti i dettagli l'algoritmo che sta costruendo, ma ha a disposizione strumenti che richiamano più un linguaggio naturale che la macchina che lo esegue.

  Importante è qui l'idea di programmazione strutturata , con il famoso teorema di Jacopini-Böhm, che dice sostanzialmente che si può programmare senza i "goto", sostituiti dai concetti di blocco , di alternativa e ciclo . Importanti sono anche i concetti di procedura e programmazione ricorsiva , e di struttura dati con puntatore , i quali, assieme al controllo di tipo , sono i primi rudimentali elementi del concetto di tipo di dati astratto (ADT, Abstract Data Type) della programmazione ad oggetti.

  In questa categoria si possono far rientrare, pur con la difficoltà che tutte le classificazioni comportano, tutti i linguaggi più noti, a cominciare dal Fortran per proseguire con tutti i suoi eredi più o meno diretti, cioè Algol, Pascal, Modula e Ada da una parte, BCPL e C dall'altra.

  Un altro tipo di evoluzione dei linguaggi è quello verso la cosiddetta programmazione ad oggetti (OOP, Object Oriented Programming), settore che attualmente attrae il maggior numero di studi ed attività, promettendo un rivoluzione nella capacità di costruire programmi per sistemi complessi. Una caratteristica dei linguaggi imperativi che li rende inadatti a questo scopo è infatti quella che con essi il programmatore ha sempre l'impressione di dover partire da zero, anche quando riutilizza parti di programmi scritti da altri.

  La capacità di utilizzare il lavoro di altri viene, nei linguaggi OO, dai concetti di incapsulamento , ereditarietà e polimorfismo . Questi permettono di dare al linguaggio che li implementa, sia la potenza dell' a strazione matematica che la flessibilità del linguaggio naturale . Queste due cose sono spesso in contraddizione e non a caso esistono diversi tipi di linguaggi OO, che propendono verso uno o l'altro dei due versanti.

  La differenza è nei due modi in cui possono essere implementati i controlli di tipo . Se il controllo è dinamico si hanno i linguaggi alla Smalltalk, flessibili ed espressivi come i linguaggi naturali, ma anche con i problemi di imprecisione di questi, se invece è statico si hanno i linguaggi alla Eiffel, perfetti per implementare il metodo "astratto" della matematica moderna, con tutta la sua potenza e precisione, ma anche, di conseguenza, meno "facili".

  I linguaggi OO sono derivati tutti dal capostipite Simula, da cui direttamente discendono Beta ed Eiffel. Simula ha però trovato una reinterpretazione terminologica e quasi "filosofica" in Smalltalk, che ha finito per trovarsi al centro dell'attenzione, come fosse il progenitore della specie.

  Nella realtà però, la purezza di impostazione che caratterizza i linguaggi appena citati non ha trovato gran riscontro, forse perché le idee innovative faticano sempre ad affermarsi. Così in giro si sente parlare prevalentemente di linguaggi "misti", che altro non sono che linguaggi imperativi a cui sono stati sovrapposti i costrutti tipici della OOP: dal C sono derivati Objetive-C, C++ e Java, dal Pascal l'Object Pascal (Delphi), dal Modula-2 Modula-3 e da Ada Ada 95. Qualcuno di questi concetti è filtrato addirittura nella struttura del Basic.

 

Linguaggio di programmazione JAVA

 

Breve introduzione

Il linguaggio Java è derivato da un linguaggio chiamato OAK, che fu sviluppato nei primi anni '90 alla Sun Microsystem come linguaggio piattaforma-indipendente predisposto per applicazioni di intrattenimento come console per video game e VCR per comunicazioni.

OAK fu impiegato per la TV via cavo, per ordinare i programmi da vedere.

Mentre quel tipo di spettacolo on-demand tramontava, il World Wide Web, invece, riscontrava sempre più interesse. A quel punto i tecnici sviluppatori di OAK ci si buttarono a capofitto, trasformando il programma OAK nel nuovo Java.

 

Le funzioni principali Java

•  Platform Independence - il compilatore Java non produce un codice oggetto nativo per una determinata piattaforma, ma piuttosto delle istruzioni byte code da usare con il JVM (Java Virtual Machine).

•  Object Orientation - Java è un puro linguaggio object-oriented, il chè significa che in Java qualsiasi cosa è vista come oggetto e tutto deriva da una classe principale. 

•  Rich Standard Library - una delle più interessanti funzioni di Java è la libreria standard.

•  Applet Interface - oltre ad essere in grado di creare applicazioni autonome,  gli sviluppatori che usano Java possono creare dei programmi scaricabili da una pagina web per essere eseguiti sul browser del visitatore. 

•  Familiar C++-like Syntax - uno dei motivi della rapida ascesa di Java è la somiglianza della sintassi con altri linguaggi come il C++ .

•  Garbage Collection - Java non coinvolge il programmatore ad occuparsi di liberare la memoria allocata dinamicamente. Ciò rende Java più facile da scrivere e meno soggetta ad errori in memoria.

 

Aree applicative Java

•  World Wide Web Applets

•  Cross-Platform Application Development

•  Other Network Applications

Applicazioni e Applet:

Il piu' semplice programma Java

  class Ciao{ public static void main (String args[]){ System.out.println("Ciao a tutti"); } }

Per scrivere programmi Java usate un editore di testi come Wordpad su Pc o vi su Unix.Copiate il programma e salvatelo in un file di nome Ciao.java L'istruzione

javac Ciao.java

compilera' il programma' creando un file: Ciao.class Finalmente l'istruzione

java Ciao

fara' eseguire il programma che scrivera' la frase Ciao a Tutti .

Gli applet sono programmi da inserire in una pagina HTML e quindi scaricabili attraverso Internet ed eseguiti dal browser (il quale deve implementare la JVM - Java Virtual Machine)

Ogni applet e' implementato dalla creazione di una subclass della classe applet.

Un applet e' un programma Java che gira all'interno di un browser.