La materia di cui sono fa0 i sogni digitali - Gian Luigi Ferrari Dipar7mento di Informa7ca Universita' di Pisa

Pagina creata da Roberto Lazzari
 
CONTINUA A LEGGERE
La materia di cui sono fa0 i sogni digitali - Gian Luigi Ferrari Dipar7mento di Informa7ca Universita' di Pisa
La	
  materia	
  di	
  cui	
  sono	
  fa0	
  
         i	
  sogni	
  digitali	
  
           Gian	
  Luigi	
  Ferrari	
  
      Dipar7mento	
  di	
  Informa7ca	
  
           Universita’	
  di	
  Pisa	
  
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	
  	
  
La materia di cui sono fa0 i sogni digitali - Gian Luigi Ferrari Dipar7mento di Informa7ca Universita' di Pisa
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	
  
La materia di cui sono fa0 i sogni digitali - Gian Luigi Ferrari Dipar7mento di Informa7ca Universita' di Pisa
La materia di cui sono fa0 i sogni digitali - Gian Luigi Ferrari Dipar7mento di Informa7ca Universita' di Pisa
La materia di cui sono fa0 i sogni digitali - Gian Luigi Ferrari Dipar7mento di Informa7ca Universita' di Pisa
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)	
  
La materia di cui sono fa0 i sogni digitali - Gian Luigi Ferrari Dipar7mento di Informa7ca Universita' di Pisa
MATERIA	
  
I	
  LINGUAGGI	
  DI	
  PROGRAMMAZIONE	
  
La materia di cui sono fa0 i sogni digitali - Gian Luigi Ferrari Dipar7mento di Informa7ca Universita' di Pisa
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	
  
La materia di cui sono fa0 i sogni digitali - Gian Luigi Ferrari Dipar7mento di Informa7ca Universita' di Pisa
ABACO:	
  TABLET	
  
     R	
  
     O	
                      I	
  
     M	
                      N	
  
     A	
                      C	
  
     N	
                      A	
  
     O	
                      S	
  

             GIAPPONESE	
  
La materia di cui sono fa0 i sogni digitali - Gian Luigi Ferrari Dipar7mento di Informa7ca Universita' di Pisa
Programmatori:	
  
Moderni	
  Alchinis7	
  
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