Programmazione slides
Calcolatori programmabili
I calcolatori programmabili sono in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall'utente mediante un programma. Grazie alla definizione di macchine virtuali (software) sopra la macchina hardware, l'utente riesce a interagire con la macchina fisica usando un opportuno linguaggio di comandi, perché una programmazione diretta sarebbe troppo complessa.
Programmare
Programmare significa definire un nuovo insieme di "comandi virtuali" che consistono in una sequenza di istruzioni che devono essere eseguite. Per scrivere un programma ho bisogno di un linguaggio di programmazione "ad alto livello", cioè che mi permette di definire funzioni (comandi) virtuali in cima alla gerarchia. Per eseguire un programma scritto in un linguaggio di programmazione ad alto livello, devo tradurlo nel linguaggio della macchina virtuale sottostante fino ad arrivare alla traduzione nel linguaggio macchina.
Per eseguire un programma ho quindi bisogno di:
- Sistema operativo (insieme di programmi per la gestione dell’elaboratore)
- Interpreti e compilatori (programmi che traducono le funzioni dei linguaggi ad alto livello in funzioni appartenenti ai linguaggi sottostanti fino al linguaggio macchina)
Il programma scritto dal programmatore è detto codice sorgente, generalmente contenuto in un file con un'estensione che indica il linguaggio usato, per esempio: pippo.java, pippo.c, script.js.
Compilazione e interpretazione
In un linguaggio di programmazione, le frasi ben formate sono il codice del programma, mentre la semantica equivale all'esecuzione del programma. Due tecniche per effettuare la traduzione del programma:
- Interpretazione: Come JavaScript e PHP, il browser legge il contenuto del file e lo manda direttamente in esecuzione (non c'è un passaggio ulteriore); avviene ogni volta che lanci lo script.
- Compilazione: Modo di tradurre il linguaggio, fa un debug del codice e produce un ulteriore file che può essere eseguito; la traduzione avviene una sola volta, la prima, oppure se si fanno delle modifiche al codice sorgente.
Programmazione non strutturata
Il programma è costituito da un unico blocco di codice detto "main" dentro il quale vengono manipolati i dati in maniera totalmente sequenziale. Questo metodo è fortemente limitato e pieno di svantaggi, poiché molte istruzioni vengono ripetute.
Programmazione procedurale/funzionale
Il concetto base della programmazione procedurale è quello di raggruppare i pezzi di programma ripetuti in porzioni di codice utilizzabili e richiamabili ogni volta che se ne presenti l'esigenza (procedure/funzioni). Ogni procedura può essere vista come un sottoprogramma che svolge una ben determinata funzione e che può utilizzare uno o più parametri, fornendo duttilità. Il main continua ad esistere, ma al suo interno appaiono soltanto le invocazioni alle procedure definite nel programma. Il vantaggio principale è il sostanziale abbattimento del numero di errori.
Programmazione modulare
La programmazione modulare prevede di raggruppare le procedure aventi un dominio comune (ad esempio, procedure che eseguono operazioni matematiche) in moduli separati, le cosiddette librerie. In questo modo le procedure possono essere riutilizzate anche da programmi diversi. Un singolo programma non è più costituito da un solo file, ma da diversi moduli.
Programmazione ad oggetti
La programmazione ad oggetti è possibile con linguaggi orientati agli oggetti. È basata sul fatto che esistono una serie di oggetti che interagiscono vicendevolmente, scambiandosi messaggi ma mantenendo ognuno il proprio stato e i propri dati. Le caratteristiche di un oggetto vengono denominate proprietà e le azioni sono dette metodi. I metodi sono le funzioni, mentre le proprietà sono i dati.
- Classe: Raggruppamento di tutti gli oggetti che hanno le stesse proprietà e utilizzano gli stessi metodi. Esempio: la classe finestra del browser (window); classe padre, classi figli: classe padre windows con figli documenti, ecc. Un oggetto è un'istanza della sua classe di appartenenza, come la finestra del mio browser.
Quello che si fa è di andare a creare oggetti, modellando il mondo come composto di tanti oggetti che sono caratterizzati dal fatto di avere proprietà e di fare delle cose. Esempio: se devo organizzare dati in una rubrica, si dice che la rubrica è qualcosa composto da persone caratterizzate da nome, cognome, indirizzo, che possono chiamare e mandare e ricevere email. Altri esempi includono una lavatrice, con marca, velocità, interfaccia, le cui azioni sono: lavaggio, prelavaggio, centrifuga e passarli ad un altro oggetto come l'asciugatrice.
In JavaScript la finestra del browser/la pagina (window) sono viste come degli oggetti, con proprietà come titolo, dimensione, barra di stato, ridimensionabilità [y/n] e può aprire finestre di alert, o chiedere di inserire del testo.
Due tipi di dati
Esistono due tipi di dati:
- Tipi elementari di base: Numerici (divisi in formati di diverso genere come Interi, Short, Long, Real, Double). L'unica differenza in JavaScript è che si possono dividere in numeri interi e numeri con la virgola. Stringa (char - ASCII, UNICODE, o string), i valori di tipo stringa stanno tra le virgolette. Booleani (T/F), per le enumerazioni (elenchi di costanti specificate come colori).
- Operatori: Numerici (operazioni matematiche; JavaScript ha quelle standard), booleani (logico: and, or, not), stringhe (concact, add, substring), caratteri (succ, prec). L' "=" è un operatore di assegnazione: riassegna i valori (left value e right value).
-
Riassunti Demografia
-
Riassunti esame Programmazione 2
-
Riassunti Nanomedicine
-
Riassunti Microeconomia