Showing posts with label Barbara Liskov. Show all posts
Showing posts with label Barbara Liskov. Show all posts

Monday, December 30, 2019

Com s'ha arribat fins a la Programació Orientada a Objectes?

Com s'ha arribat fins a la Programació Orientada a Objectes?
Per. Maurici Carbó



       Estem rodejats d'ordinadors, telèfons i tauletes. Aquests aparells realment són petits computadors que també n'hi diem maquinari (hardware en anglès) i funcionen dirigits per un programari (software en anglès) i ho considerem una cosa de la vida de cada dia.

      Però tot això és molt nou. Els fets més importants han passat els darrers anys: a partir de 1970, no s'ha inventat a casa nostra, i gairebé no ens n'hem assabentat de res, ni tampoc sabem com hem arribat fins aquí. Això és el que voldria explicar aquí.

      Tot ve de la necessitat de l'ésser humà des dels temps més antics de preveure què passarà, i quan passarà en el futur. Tan per a poder situar-se al món com per construir calendaris precisos.

      Els antics Grecs ja van construir les primeres màquines amb engranatges per a preveure la situació previsible del sol, la lluna els planetes i les estrelles al cel en una data concreta. L'exemple més conegut i sorprenent per la seva antiguitat és l'Anticitera.

Anticitera (de l'any 100 aC):



Reconstrucció dels mecanismes de l'Anticitera

      I al llarg de la Història es van anar fent màquines cada cop més complicades per a poder preveure fets cada cop més detallats: Per exemple, per preveure les marees. Són les màquines d'anàl·lisi harmònic. 
 Màquina d'Anal·lisi Harmònic
Tide Predicting Machine nº2:



En la màquina anterior a aquesta, s'entraven les dades amb unes targetes perforades que eren les mateixes que usaven els telers Jacquard.


  Charles Babbage


Ada Lovelace



 

Per això una de les frases més famoses de Ada Lovelace és:
La Màquina Analítica teixeix patrons algebraics de la mateixa manera que el teler Jacquard teixeix flors i fulles”. (Ada Lovelace)


Teler Jacquard: Teixit i fitxes perforades.

Carta d'agraïment de Charles Babbage a Ada Lovelace 
per la feina que havia fet amb la màquina analítica.  Ell li diu a ella: 
Forget this world and all its troubles and if possible 
its multitudinous Charlatans—every thing 
in short but the Enchantress of Number ” 
(Encantadora de números)




     La màquina més famosa que es conserva encara de tot aquets temps és la “Màquina Diferencial” de Charles Babbage i Ada Lovelace. I aquí per primer cop es va veure que per a fer anar aquestes màquines es necessitaven dos oficis diferents: Construir la màquina, que va ser el que va fer Charles Babbage, i fer-la funcionar, que va ser la feina que va fer Ada Lovelace. El producte del treball dels dos va ser la impressió de llibres de llistats logaritmes que en aquella època eren imprescindibles per a calcular-ho tot.
I al Segle XX, a la Segona Guerra Mundial va sorgir un nou repte: saber què farien els exèrcits enemics espiant i decodificant els seus missatges secrets encriptats amb una màquina (la màquina Enigma). Treballant inicialment a mà, Alan Turing i tot l'equip de Bletchley Park (a Buckingamshire UK), van construir una màquina anomenada “Bombe” que va aconseguir desxifrar els missatges secrets de l'Enemic. Però tot i amb aquest èxit, el més important que va fer Alan Turing va ser entendre que algun dia hi podria haver una màquina que podés fer qualsevol càlcul sense haver-la de fer a mida per a cada problema. Això el converteix en el fundador del la Ciència de les Computadores.



 Code Breakers” de Bletchley Park





      Totes les màquines que s'havien fet fins aleshores eren dedicades a fer una feina concreta que començava i s'acabava. Però al pensar en màquines generals, el que ara se'n diuen “Màquines de Turing” el primer que va preocupar a Turing va ser saber abans de començar si per a fer un càlcul qualsevol, la màquina s'acabaria parant i donant un resultat, o no: Va deduïr que una màquina de les seves no podria saber mai això abans.



Funcionament d'una màquina de Turing.
(amb el programa anomenat: el Castor ocupat)

      Una màquina de Turing és l'equivalent a qualsevol computador que es pugui construir. Però és només un experiment mental que dona la imatge més senzilla possible d'una computadora. I que a la vegada ben programada seria capaç de fer el que faci qualsevol d'elles. És només una cinta infinita en la que un capçal pot anar escrivint i esborrant uns i zeros seguint unes regles preestablertes: Un programa.
Un cop establert el que havia de ser una computadora equivalent a la de Turing, als anys 1950 es van construir moltes màquines d'aquestes arreu del Món. Però els primers èxits que van tenir ressò es van aconseguir a Holanda, on es va construir la màquina ARMAC (1956) i Electrologica X1 amb l'assessorament de EW Dijkstra que va poder fer una demostració en públic del seu algorisme per a Trobar el camí més curt entre dues ciutats de les 64 més importants d'Holanda fet amb el llenguatge per a computadores anomenat ALGOL que Dijkstra va ajudar a crear (publicat el 1959). 



 Edsger Dijkstra (a l'esquerra) 1953 a Amsterdam


     I aleshores es va entrar en la primera explosió de la informàtica. Una batalla impossible per a controlar unes màquines cada cop més grans poderoses i ràpides, i que de vegades paraven sense avisar i els seus programadors amb les mateixes eines que al principi, clamant per assolir una major abstracció: La dificultat del desenvolupament de programes creixia amb la dimensió dels programes i de les màquines.

(Desenvolupant els Objectes per a SIMULA language)


      Cap al 1968 dos noruecs Dahl i Nygaard van inventar els Objectes, quan desenvolupaven un llenguatge de Computadora que es va dir 'SIMULA' pensat per a fer simulacions de física. 




     El 1972 es va publicar el llibre "Structured Programming" escrit per EW Dijkstra Ole-Johan Dahl i C.A.R Hoare.
 
      Finalment, als Estats Units i sota el marc de la investigació en Intel·ligència Artificial al MIT dirigit per Minsky, va produïr els primers processadors de text i es van fer els darrer passos: El Principi de Substitució de Liskov, Que va funcionar per primer cop el 1978 al llenguatge CLU. en referència a la seva autora: Barbara Liskov, autora que posteriorment va fonamentar també la computació distribuïda com a diàleg entre objectes.

 
BarbaraLiskov (Autora de: The Liskov Substitution Principle) 
 
      La combinació dels primers llenguatges d'Ordinador estructurats, amb els Objectes dels noruecs que van desenvolupar el SIMULA, i el Principi de Substitució de Liskov i el diàleg entre objectes de la Computació distribuida van ser el fonament de les abstraccions necessaries per a arribar al que son ara els llenguatges de programació de computadores (Java, C++, C# etc.) i van fer possible tota la complexitat que ha arribat a tenir l'internet actualment. És el que s'anomena Programació Orientada a Objectes.

Tuesday, November 5, 2019

Barbara Liskov - A.M. Turing Award 2008

Original ACM Document:  https://amturing.acm.org/award_winners/liskov_1108679.cfm

Premio A. M. Turing 2008 para: 



Barbara Liskov


Por contribuciones a fundamentos prácticos y teóricos del lenguaje de programación y diseño de sistemas, especialmente relacionados con la abstracción de datos, tolerancia a fallos y computación distribuida.
Barbara Liskov, de nombre original: Barbara Jane Huberman, nació el 7 de noviembre de 1939 en California. Obtuvo su licenciatura en matemáticas en la Universidad de California, Berkeley, en 1961. En lugar de ir directamente a la escuela de posgrado, tomó un trabajo en la Mitre Corporation, donde se dió cuenta que parecía haber nacido para la programación de computadoras. Después de un año en Mitre, se mudó a Harvard para trabajar en la traducción de idiomas humanos con computadora. 


Al regresar a California para realizar un trabajo de posgrado en Stanford, recibió apoyo financiero en el laboratorio de John McCarthy, en parte porque su trabajo anterior en la traducción del lenguaje natural estaba en el área general de la inteligencia artificial. En 1968 se convirtió en una de las primeras mujeres en los Estados Unidos en recibir un doctorado en informática. Su tesis sobre los juegos finales de ajedrez fue supervisada por John McCarthy.

Después de recibir su doctorado, Barbara se casó con Nathan Liskov y regresó al área de Boston para trabajar en Mitre Corporation en Bedford, MA en diseño de computadoras y sistemas operativos. Usando una computadora Interdata 3 que tenía la capacidad de cambiar el conjunto de instrucciones a través de un microcódigo, creó la "Computadora Venus" adaptada para apoyar la construcción de software complejo. El sistema operativo Venus era un pequeño sistema de tiempo compartido para la máquina Venus utilizado para experimentar cómo diferentes arquitecturas ayudaban u obstaculizaban este proceso. El sistema Venus soportaba 16 teletipos y cada usuario estaba conectado a una máquina virtual para que los errores mayores no comprometieran todo el sistema, solo la máquina virtual para ese usuario.

En 1971, poco después de terminar sus experimentos con Venus y presentar un documento de conferencia sobre el tema, otro asistente instó a Liskov a considerar un puesto en el MIT. Ella dejó Mitre y se unió a la facultad del MIT como profesora en el Laboratorio de Ciencias de la Computación. Basándose en su experiencia en Mitre Corporation, su investigación se centró en crear sistemas informáticos más fiables.

En MIT dirigió el diseño e implementación del lenguaje de programación CLU, que enfatizó las nociones de programación modular, abstracción de datos y polimorfismo. Estos conceptos son una base de la programación orientada a objetos utilizada en los lenguajes de computadora modernos como Java y C #, aunque muchas otras características de la programación orientada a objetos modernos faltan en este lenguaje temprano. 

Su grupo MIT también creó el lenguaje Argus, que amplió las ideas de CLU para facilitar la implementación de programas distribuidos en una red, incluido el soporte para transacciones anidadas. Un ejemplo de dicho programa distribuido podría ser un sistema bancario basado en la red. Argus proporcionó abstracciones de objetos llamadas "guardianes" que encapsulan los procedimientos relacionados. Como lenguaje experimental, Argus influyó en otros desarrolladores, pero nunca fue ampliamente adoptado o utilizado para aplicaciones de red desplegadas. 

El trabajo posterior de Liskov ha sido principalmente en el área de sistemas distribuidos, que utilizan varias computadoras conectadas por una red. Su investigación ha cubierto muchos aspectos de los sistemas operativos y la computación, incluido el trabajo importante en sistemas de bases de datos orientados a objetos, recolección de basura, almacenamiento en caché, persistencia, recuperación, tolerancia a fallas, seguridad, flujo de información descentralizado, actualización modular de sistemas distribuidos, enrutamiento geográfico y tolerancia práctica a faltas bizantinas. Muchos de estos, como la tolerancia a faltas bizantinas, tratan situaciones en las que un sistema complejo falla de manera arbitraria. Liskov desarrolló métodos para permitir la operación correcta incluso cuando algunos componentes no son confiables. Con Jeannette Wing, desarrolló una nueva noción de subtipo, conocida como el principio de sustitución de Liskov. Sus contribuciones han influido en el desarrollo de sistemas avanzados y han establecido un estándar de claridad y utilidad.

Liskov es actualmente el profesor de ingeniería de Ford en el MIT. Dirige el Grupo de Metodología de Programación en el MIT, con un enfoque actual de investigación en tolerancia a faltas bizantinas y computación distribuida. Se convirtió en profesora titular en el MIT en 1980. Se desempeñó como Jefa Asociada de Ciencias de la Computación de 2001 a 2004, y en 2007 fue nombrada Rectora Asociada para Equidad de Facultad. En 2008, el MIT la nombró profesora del Instituto, el más alto honor otorgado a un miembro de la facultad del MIT.

"Barbara es venerada en la comunidad del MIT por su papel de erudita, mentora y líder", dijo la presidenta del MIT, Susan Hockfield. "Su investigación pionera la ha convertido en una de las líderes mundiales autoridades en lenguaje informático y diseño de sistemas. Además de sus contribuciones académicas seminales, Barbara ha servido al MIT con gran sabiduría y juicio en varios roles administrativos, más recientemente como Rector Asociado para la Equidad de la Facultad ".

Ha supervisado los programas de investigación de más de veinte estudiantes de doctorado y un gran número de estudiantes de maestría.

Su hijo Moses Liskov recibió un doctorado en ciencias de la computación por el MIT en 2004, y ahora es profesora de ciencias de la computación en el Colegio de William y Mary.
 


Páginas Web

Professor Liskov's home page, http://www.pmg.csail.mit.edu/~liskov/
Biography of Prof. Liskov by Prof. John Guttag, in a book about MIT's EECS department,
http://www.eecs.mit.edu/spotlights/liskov_jvg-bio.html
Article on Professor Liskov in Technology Review (MIT)
http://www.technologyreview.com/article/24108/page1/

Video del Premio Turing:
https://amturing.acm.org/vp/liskov_1108679.cfm

Video Youtube TED  (julio 2019)
How Data Abstraction changed Computing forever | Barbara Liskov | TEDxMIT: