La materia di cui sono fa0 i sogni digitali - Gian Luigi Ferrari Dipar7mento di Informa7ca Universita' di Pisa
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
La materia di cui sono fa0 i sogni digitali Gian Luigi Ferrari Dipar7mento di Informa7ca Universita’ di Pisa
Presentazioni ! Gian Luigi Ferrari o Informa7co ! Di cosa mi occupo (ricerca) o Linguaggi di Programmazione ! Service Oriented Compu7ng ! Cloud Compu7ng ! Internet of things o Ingegneria del soDware (Verifica7on, Model Checking, Program Analysis) o Sicurezza ! Language Based Security ! Di cosa mi occupo (dileNo) o Divulgazione scien7fica
Informa7ca ! Informa7ca: ha trasformato la societa’ e il modo di costruire la conoscenza o SoDware is ea7ng the world!! ! Informa7ca: tecnologia non neutrale o Impone a chi la uso uno sguardo diverso nell’organizzazione dei fenomeni ! Informa7ca: scienza sperimentale o Spesso ridoNa all’aspeNo meramente strumentale
Calcoli e linguaggi ! Scienza che studia i procedimen7 di calcolo effe0vi. ! La crisi dei fondamen7 Calcolo come manipolazione combinatoria della matema7ca di insiemi fini3 e discre3 di simboli secondo (Gödel, Church, un insieme finito di regole Kleene, Post e Turing)
Linguaggi e programmazione ! Linguaggio di programmazione e’ uno strumento linguis6co pensato per comunicare e controllare il comportamento di una opportuna tecnologia. ! Comunicazione come insieme dei fenomeni che portano alla distribuzione di informazioni ! Controllo come insieme delle struNure che regolano l’elaborazione dell’informazione ! Programma= Comunicazione informazione + Controllo
Programmare?
Programmare?
Strana forma di inglese
Non è magia: tu0 possono imparare
… anche se
PROGRAMMARE E’ FICO
Medicina
Automo7ve
ROBOTICA
CINEMA
GIOCHI
WEB APPS
STESSI CONCETTI ALLA BASE
Programmare e’ costruire un modello computazionale 25
Astrazione ! In informa7ca “astrazione” indica, l’operazione conceNuale con la quale si passa da una descrizione di basso livello ad una descrizione dello stesso conceNo ad un livello più alto, che subordina alcuni deNagli ed evidenzia alcune caraNeris7che importan7 sulle quali si vuole richiamare l’aNenzione
Astrazione ! Quali sono i meccanismi di astrazione lega7 alla programmazione: o usando direNamente i costru0 del linguaggio ad alto livello invece che una delle numerosissime sequenze di istruzioni in linguaggio macchina “equivalen7” ! l’astrazione è scelta dal proge0sta del linguaggio o quali e quante quanto complicato diventa il linguaggio? ! meglio progeNare linguaggi dota7 di meccanismi che permeNano di definire le astrazioni che servono
Astrazioni e linguaggi o astrazione procedurale !si aggiungono nuove operazioni o astrazione di da6 !si aggiungono nuovi 7pi di dato o iterazione astraHa !permeNe di iterare su elemen7 di una collezione, senza sapere come ques7 vengono oNenu7 o Tipi e gerarchie di 6po !permeNe di astrarre da specifici 7pi di dato a famiglie di 7pi correla7
La torre di Babele 29
Elogio della Torre di Babele ! Alan J. Perlis, 1922 – 1990: ! A good programming language is a conceptual universe for thinking about programming ! A language that doesn’t affect the way you think about programming, is not worth knowing. ! There will always be things we wish to say in our programs that in all known languages can only be said poorly.
Tan7 Linguaggi. Perche’? ! Prendiamo il migliore e basta!!! o Sono tu0 Turing Equivalen7: stessa potenza espressiva ! I migliori sono tan7 (numerose risposte) o Oracle-‐Sun: Java o MicrosoD: C# o Web-‐programmer: Javascript ! Tante mo7vazioni: alcuni linguaggi meglio si adaNano a un par7colare contesto
MACCHINE ASTRATTE ! una collezione di struNure da7 ed algoritmi in grado di memorizzare ed eseguire programmi Memoria Operazioni Interprete primi7ve op1 Programma op2 Controllo … Dati ... opn 32
L’INTERPRETE start controllo acquisisci la prossima istruzione decodifica controllo acquisisci gli operandi seleziona operazioni esegui op1 esegui op2 ... esegui opn esegui alt controllo memorizza il risultato stop 33
INTERPRETAZIONE E COMPILAZIONE realizzazione ML MI MO Programma in L Programma in LMI traduzione ! ML = MI interpretazione pura ! MO = MI compilazione pura 34
Compilazione ! Teorema: Fissa6 due linguaggi di programmazione L1 e L2 esiste un programma C[L1>L2] tale che per ogni programma P scriHo in L1, C[L1>L2] (P ) e’ un programma in L2 equivalente a P .
Compilatori meta-‐circolari ! Un compilatore per un linguaggio, scriNo in quello stesso linguaggio, C[L1>L2] scriNo in L1 ! Corrado Boehm, Ann. di Mat. Pura ed Applicata, vol. 37(4), 1954.
Circolarita’ (Escher)
SOGNI DIGITALI
Autonomic Compu7ng ! Obie0vo: suo scopo è quello di fornire gli strumen7 necessari affinche’ i programmi siano in grado di auto-‐ ges7rsi senza l'intervento umano. ! Self-‐configura6on: Automa7c configura7on of components; ! Self-‐healing: Automa7c discovery, and correc7on of faults; ! Self-‐op6miza6on: Automa7c monitoring and control of resources to ensure the op7mal func7oning with respect to the defined requirements; ! Self-‐protec6on: Proac7ve iden7fica7on and protec7on from arbitrary aNacks.
Adap7ve SoDware ! Adap6ve soTware uses available informa6on about changes in its environment to improve its behaviour Peter Norvig Director of Research Google Inc.
Internet of things
Psyleron’s Mind-Lamp (Princeton U), connections between the mind and the physical world. MIT’s Fluid Interface Group: wearable device with a projector for deep interactions with the environment Neuro Sky's mind-controlled headset to play a video game.
Sogni Probleni di ricerca ! Definire astrazioni necessarie per programmare applicazioni ada0ve in IoT ! ProgeNare e realizzare i linguaggi di programmazione del futuro.
Puoi anche leggere