La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Dagli editor di testo alla codifica di alto livello

Presentazioni simili


Presentazione sul tema: "Dagli editor di testo alla codifica di alto livello"— Transcript della presentazione:

1 Dagli editor di testo alla codifica di alto livello
Lezione 2 Dagli editor di testo alla codifica di alto livello

2 Il punto di partenza: Testo digitalizzato a livello di carattere (usando ASCII, ISO-Latin-1, o UNICODE) Le avventure di Pinocchio Capitolo I Come andò che Maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino. C'era una volta... - Un re! - diranno subito i miei piccoli lettori. - No, ragazzi, avete sbagliato. C'era una volta un pezzo di legno. Non era un legno di lusso, ma un semplice pezzo da catasta, di quelli che d'inverno si mettono nelle stufe e nei caminetti per accendere il fuoco e per riscaldare le stanze. Non so come andasse, ma il fatto gli è che un bel giorno questo pezzo di legno capitò nella bottega di un vecchio falegname, il quale aveva nome mastr'Antonio, se non che tutti lo chiamavano maestro Ciliegia, per via della punta del suo naso, che era sempre lustra e paonazza, come una ciliegia matura.

3 Cosa intendiamo qui per “testo”?
Testo: “insieme di parole, dal latino textus, correlate tra loro per costituire un'unità logico-concettuale” Significato qui rilevante: una stringa di simboli che possa essere prodotta/letta direttamente da un essere umano. Ad esempio: Un brano in un qualche linguaggio naturale. Un insieme di dati leggibili (p.es. quelli di un elenco telefonico) Un passo di un codice di programmazione, Il file di configurazione di un software Ma non, ad esempio: Qualsiasi opera di ingegno umana (p.es. non un dipinto, una melodia fischiettata,…) Un file prodotto e interpretato esclusivamente da macchine (p.es. una parte di un programma eseguibile) Una sequenza casuale di simboli Criterio intrinsecamente vago

4 Elaborazione di un testo a livello carattere: 3 categorie di programmi
Editor di testo: p.es. blocco note, Emacs, Scite, … Programmi di videoscrittura: Microsoft Word, WordPerfect, Openoffice Writer,… Programmi di “Desktop publishing” Adobe Pagemaker, Quark Xpress,…

5 Editor di testo Programmi per caricare, scrivere o modificare testi in formato ASCII (Latin-1 / UNICODE) Funzioni di stampa ridotte all’osso (niente formattazione del carattere, paragrafo, …) Funzioni anche molto sofisticate di manipolazione del testo (ricerca/sostituzione avanzata, macro, …) Sensibili alla sintassi di vari tipi di file di testo (linguaggi di programmazione, HTML, …)

6 Editor di testo “Blocco note” (ingl. “Notepad”) di Windows.
Editor minimalista, distribuito con Windows. Legge di base file con suffisso .txt Nessuna funzione sofisticata Nessuna sensibilità al tipo di file Conosce UNICODE Problemi nel trattamento di file non-windows

7 Blocco note / Notepad

8 Blocco note / Notepad Segni di fine linea Unix non riconosciuti (LF)

9 Blocco note (su un file binario .doc)
Caratteri binari non stampabili Caratteri stampabili presenti nel file Word

10 Scite

11 Scite (su un file binario .doc, scritto da Word)

12 Scite (su un file .html)

13 Scite (su un file .c , un linguaggio di programmazione)

14 Scite (su un altro linguaggio, Python)

15 Emacs Probabilmente il più potente editor esistente.
Può essere esteso dagli utenti per usi vari; modulare Sofisticata serie di comandi sul testo Gratuito, con codice a disposizione (“open source”) Due versioni: GNU Emacs (1976 Richard Stallman) e Xemacs Disponibile per UNIX, Windows, Mac, … Interfaccia prevalentemente non grafica; ben documentata ma difficile da imparare

16 Emacs: estensibilità Grazie a varie estensioni, oltre alle funzioni più comuni, Emacs consente di: Scrivere ed analizzare programmi in qualsiasi linguaggio Leggere la posta e le news Visualizzare pagine web Visualizzare alcuni tipi di immagini Trattare documenti multilingue Visualizzare calendari e agende di vario tipo Eseguire programmi esterni sul testo caricato Giocare, …

17 GNU Emacs (sul testo di Beccaria)

18 GNU Emacs (uso dei colori su un file in c)

19 GNU Emacs (calendario con festività varie)

20 GNU Emacs (fasi lunari, esempi di alfabeti)

21 Editing avanzato: sistemi di sicurezza anticrash (Emacs, Word)
Salvataggio automatico ogni n caratteri battuti Mantenimento della versione precedente ogni volta che si salva un file (“Copia di backup” in Word) Possibilità di criptazione dei file Possibilità di lavorare su file diversi come se fossero uno stesso documento

22 Editing avanzato: comandi di alterazione/spostamento (Emacs)
Con una singola combinazione di tasti è possibile: Trasporre due caratteri, due parole, due righe (“teh”  “the”) Mettere in maiuscolo/minuscolo la parola che segue (tutta, o solo la lettera iniziale) Spostarsi di una frase/paragrafo/sezione… Cancellare fino a fine/inizio riga

23 Editing avanzato: macro (Emacs, Word)
Possibilità di registrare una sequenza di comandi mentre la si esegue La sequenza può essere poi salvata, modificata e riprodotta con una semplice combinazione di tasti Possibilità di eseguire una macro n volte Utile per velocizzare sequenze di operazioni ripetitive

24 Editing avanzato:trova/sostituisci tramite espressioni regolari
Il linguaggio delle espressioni regolari (regular expressions) consente di descrivere in modo astratto gruppi di caratteri. Esempio (sintassi di Emacs) Espress. Significato a Il carattere “a” . Qualsiasi carattere (“\.” trova il punto) [a-z] Un carattere compreso tra “a” e “z” minuscole [^a-z] Ogni carattere tranne quelli in [a-z] ba? “b” o “ba” (“a” occorre 0 o 1 volte) ba+ “ba”, “baa”, “baaa”, “baaaa”, … (1 o più volte) ba* “b”, “ba”, “baa”, “baaa” … (0 o più volte) \(da\)+ “da”, “dada, “dadada”, … \(in\|ne\) “in” oppure “ne” (alternativa) \(.+\) \1 Gruppo di uno o più caratteri ripetuto con 1 spazio in mezzo (“alto alto”, “caldo caldo”)

25 Editing avanzato Memoria nelle espressioni regolari:
\( testo1 \) \( testo2 \) memorizza testo1 e testo2 nelle variabili \1 e \2 \1 restituisce testo1 \2 restituisce testo2 Utile nelle ricerche di espressioni regolari e nella sostituzione Consente di trovare ripetizioni di uno stesso elemento testuale, qualunque esso sia.

26 Editing avanzato:trova/sostituisci tramite espressioni regolari
e sostituisci con: \3\2\1 “Trova qualsiasi terna di caratteri, assegnagli i numeri \1, \2 e \3 …e riscrivili in ordine inverso Esempio: “abc” \1 = a , \2 = b, \3 = c “cba” Trova: \(io\|lui\) e sostituisci con: \1 \1 “io” “io io” ; “lui” “lui lui”

27 Editing avanzato:trova/sostituisci tramite espressioni regolari
Trova: \([^.?!]\) +\([A-Z]\(\.\|[a-z]+\)\) +\([A-Z][a-z]+\) e sostituisci con: \1 <c>\4</c>, <n>\2</n> “Dopo un carattere che non sia il punto fermo, esclamativo o interrogativo, trova un nome maiuscolo o una iniziale puntata, seguito dopo uno o più spazi da un cognome, e … …inverti il nome o l’iniziale, con il cognome, marcandoli con <n(ome)> e <c(ognome)> rispettivamente, separati da “,” ” Esempio: Marco Tullio <c>Tullio</c>, <n>Marco</n> M. Tullio <c>Tullio</c>, <n>M.</n> . Ecce Homo! Non fa nulla (non otteniamo <c>Homo</c> <n>Ecce</n>)

28 Editor avanzati Pro. Utilissimi:
Per elevati volumi di scrittura, o frequenti cicli di correzione (uso rapido dei tasti invece del mouse) Quando l’aspetto del documento stampato è irrilevante o viene delegato ad altri (p.es. una casa editrice) o a un software specifico Quando si devono modificare elevate quantità di dati simili (elenchi di nomi, numeri telefonici, errori sistematici in un documento lungo) Per testi particolari (programmi, file “tecnici”), se l’editor può marcare automaticamente la sintassi, e/o correggere sviste. In genere gratuiti, e disponibili su ogni S.O.

29 Editor avanzati Contra.
Mancanza di formattazione tipo “WYSIWYG” (What You See Is What You Get) Ripida curva di apprendimento per poter utilizzare i programmi al di là delle funzioni di base. Il trova/sostituisci con le espressioni regolari può fare gravi danni in un testo (importanza del backup!) Compatibilità parziale con programmi che richiedono o si aspettano testo formattato (Word)

30 Per saperne di più Sito principale di Emacs: Manuale in italiano di Emacs online: Espressioni regolari: Sez. 4.2 del Lenci, Montemagni , Pirrella “Testo e Computer” Manuale online di Emacs, sez. sulle espressioni regolari:

31 Elaborazione di un testo a livello carattere: categorie di programmi
Editor di testo: p.es. blocco note, Emacs, Scite, … Programmi di videoscrittura: Microsoft Word, WordPerfect, Openoffice Writer,… Programmi di “Desktop publishing” Adobe Pagemaker, Quark Xpress,…

32 Programmi di videoscrittura
Consentono una gestione “globale” del documento Composizione, modifica, revisione Definizione struttura (metodo degli “stili”) Formattazione e stampa Più limitati nelle funzioni di editing rispetto agli editor avanzati, e nelle funzioni di composizione e stampa rispetto ai veri programmi di Desktop Publishing Problemi di interoperatività (Word/altri, vecchie/nuove versioni, Windows/Mac)

33 Programmi di videoscrittura
Le funzioni di formattazione e stampa messe a disposizione da un programma come Word sono già il riflesso di una (spesso non esplicita o coerente) strutturazione del testo che va al di là della codifica di livello 0 Grassetto  enfasi (?) Corsivo  citazione (?) / enfasi (?) / … Centratura  titolo (di testo/sezione,…?)

34 Formato grafico e codifica
L’uso del formato grafico per rappresentare una codifica di alto livello è insufficiente Non sufficientemente esplicito (cosa “significa” un corsivo ?) Difficilmente combinabile (corsivo+grassetto+apice+… = illegibilità) Non applicabile a certi elementi (p.es. fine pagina) o legato a determinate realizzazioni del testo (video a colori, stampa,…) Esteticamente debole


Scaricare ppt "Dagli editor di testo alla codifica di alto livello"

Presentazioni simili


Annunci Google