Laboratorio Matematico Informatico 2 (Matematica specialistica) A.A. 2006/07 Pierluigi Amodio Dipartimento di Matematica Università di Bari Laboratorio Matematico Informatico 2 p. 1/1
Informazioni Orario (prime 5 lezioni): martedì giovedì dalle 13.00 alle 15.00 (aula C centro di calcolo) Stanza: n. 8 al IV piano del Dipartimento di Matematica E-mail: amodio@dm.uniba.it Tel.: 080 5442703 Pagina web: http://www.dm.uniba.it/ amodio/labmatinf.html Laboratorio Matematico Informatico 2 p. 2/1
Programma HTML (Amodio) PHP (Labianca) Fortran 90 (Iavernaro, Mazzia) Laboratorio Matematico Informatico 2 p. 3/1
linguaggi di programmazione In informatica, un linguaggio di programmazione è un linguaggio formale dotato di una sintassi ben definita, che si usa per scrivere programmi per calcolatori, cioè per codificare algoritmi e strutture dati in un tutto organico, in una forma più vicina al linguaggio umano scritto. Tutti i linguaggi di programmazione esistenti possiedono (almeno) due concetti chiave: variabili istruzioni Laboratorio Matematico Informatico 2 p. 4/1
l. di programmazione - variabili Un dato o un insieme di dati, noti o ignoti, già memorizzati o da memorizzare; ad una variabile corrisponde sempre, da qualche parte, un certo numero (fisso o variabile) di locazioni di memoria che vengono allocate, cioè riservate, per contenere i dati stessi. Molti linguaggi inoltre attribuiscono alle variabili un tipo, con differenti proprietà (stringhe di testo, numeri, liste, ecc.). Laboratorio Matematico Informatico 2 p. 5/1
l. di programmazione - istruzioni Comandi, funzioni, oppure anche regole descrittive. Anche il concetto di istruzione è molto variabile fra i vari linguaggi. A prescindere dal particolare linguaggio però, ogni volta che un istruzione viene eseguita, lo stato interno del calcolatore (che sia lo stato reale della macchina oppure un ambiente virtuale, teorico, creato dal linguaggio) cambia. Laboratorio Matematico Informatico 2 p. 6/1
programmazione Programmare in un dato linguaggio di programmazione significa generalmente scrivere uno o più semplici file di testo ASCII, chiamato codice sorgente. Il codice sorgente, contenente le istruzioni da eseguire e (spesso) alcuni dati noti e costanti, può essere poi eseguito passandolo ad un interprete che eseguirà le istruzioni in esso contenute; oppure può venire compilato, cioè tradotto in istruzioni di linguaggio macchina da un programma compilatore: il risultato è un file binario eseguibile che non ha bisogno di altri programmi per andare in esecuzione. Laboratorio Matematico Informatico 2 p. 7/1
linguaggio di markup Il termine markup (o marcatura) deriva dall ambiente tipografico dove si usava marcare con annotazioni le parti del testo che andavano evidenziate o corrette, allo scopo di segnalarle al compositore o al dattilografo. La tecnica di composizione di un testo con l uso di marcatori (o espressioni codificate) richiede una serie di convenzioni, ovvero di un linguaggio a marcatori di documenti. In generale un linguaggio di markup descrive i meccanismi di rappresentazione (strutturali, semantici o presentazionali) del testo che, utilizzando convenzioni standardizzate, sono utilizzabili su più supporti. Laboratorio Matematico Informatico 2 p. 8/1
linguaggi di markup I diversi linguaggi di markup esistenti si distinguono fondamentalmente in: linguaggi di markup di tipo procedurale; linguaggi di markup di tipo descrittivo. La differenza tra i due sta nel meccanismo usato per definire la rappresentazione del testo, sia per quanto riguarda la sua struttura, sia per quanto riguarda il significato degli elementi che lo compongono, sia per quanto riguarda la visualizzazione (o formattazione). Laboratorio Matematico Informatico 2 p. 9/1
linguaggi di markup linguaggi di tipo procedurale. Indicano le procedure di trattamento del testo aggiungendo le istruzioni che devono essere eseguite per visualizzare la porzione di testo referenziata (troff, T E X, L A T E X,...) linguaggi di tipo descrittivo. Lasciano la scelta del tipo di rappresentazione da applicare al testo al software che di volta in volta lo riprodurrà (SGML, HTML, XML,...) Laboratorio Matematico Informatico 2 p. 10/1
L A TEX Al contrario di editor (meglio parlare di word processors) più conosciuti quali ad esempio Microsoft Word, WordPerfect, Works, StarOffice, che si basano sull editoria WYSIWYG (What You See Is What You Get), con L A T E Xsi scrive un testo quale lo si pensa. Scrivendo il codice sorgente sullo schermo, il testo del documento risulta frammisto ad istruzioni: per ottenere l output finale è necessario che tale sorgente sia poi compilato. Questo approccio viene anche definito WYSIWYM (What You See Is What You Mean): lo scrittore è quindi anche tipografo e deve occuparsi, all inizio, soltanto delle convenzioni da usare. Fissate queste, si concentra sul contenuto del testo, non curando invece ad esempio l impaginazione, l indice (generale e analitico), l inserimento delle figure, delle tabelle, che sarà invece semi-automaticamente curata da L A T E X. Laboratorio Matematico Informatico 2 p. 11/1
SGML L SGML (Standard Generalized Markup Language) è stato il primo metalinguaggio di markup descrittivo standardizzato a livello internazionale (ISO 8879 del 1986) che ha definito dei metodi di rappresentazione del testo in forma elettronica in modo indipendente dall hardware e dal sistema utilizzato. L idea centrale dello standard è un tipo di marcatura generica chiamata marcatura descrittiva che definisce la struttura logica dei documenti. L organizzazione di un documento non è espressa usando la codifica dei sistemi di scrittura, che è finalizzata alla presentazione grafica, ma sono evidenziate le parti in cui è strutturato il documento (ad esempio paragrafi, capitoli) insieme ad altre particolarità del testo (come note, tabelle, intestazioni). Laboratorio Matematico Informatico 2 p. 12/1
SGML L SGML è basato sul concetto di definizione del tipo di documento DTD (Document Type Definition) ovvero richiede per ogni documento la definizione del modo in cui i vari elementi del testo possono essere utilizzati. Ad esempio una lettera contiene degli elementi essenziali quali mittente, uno o più destinatari, data, oggetto, corpo, l indicazione di colui che la firma,... Tutti elementi che devono essere presenti, probabilmente anche con un certo ordine. Il DTD deve prendersi carico di definire tutto questo, stabilendo ciò che è legale e cosa invece non lo è. Laboratorio Matematico Informatico 2 p. 13/1
HTML HTML (acronimo per Hyper Text Mark-Up Language) è un linguaggio usato per descrivere i documenti ipertestuali disponibili nel Web. Basato sul linguaggio SGML, è un linguaggio di pubblico dominio la cui sintassi è stabilita dal World Wide Web Consortium (W3C). È stato sviluppato alla fine degli anni 80 da Tim Berners-Lee al CERN di Ginevra. Verso il 1994 ha avuto una forte diffusione, in seguito ai primi utilizzi commerciali del web. Attualmente l ultima versione disponibile è la versione 4.01, resa pubblica il 24 dicembre 1999. Da allora, da parte del W3C non è stata manifestata alcuna intenzione di apportare ulteriori modifiche all HTML, poiché verrà presto sostituito dai nuovi linguaggi XHTML ed XML. Laboratorio Matematico Informatico 2 p. 14/1
HTML Ogni documento ipertestuale scritto in HTML deve essere contenuto in un file, la cui estensione deve essere.htm o.html. Ogni elemento di un file HTML è racchiuso all interno di tag, uno di apertura ed uno di chiusura. Quest ultimo, per certi elementi, è opzionale. I tag sono dei segnalini (markup) costituiti da una sequenza di caratteri racchiusa da due parentesi angolari, cioè i segni minore e maggiore. Ad esempio, <b>testo</b> visualizzerà sul browser testo in grassetto. Laboratorio Matematico Informatico 2 p. 15/1