Barbara-Liskov

De WIAragón
Saltar a: navegación, buscar


GPower

Barbara Liskov
Barbara_liskov.jpg
Nombre principal Barbara Jane Huberman
Nacimiento 7 de noviembre de 1939, California, Estados Unidos
Nacionalidad estadounidense
Campo Científica y Programadora
Lugar de profesión Instituto Tecnológico de Massachusetts
Creaciones Principio de sustitución de Liskov y CLU
Trabajo notable Computación distribuida
Alma Mater Universidad de Stanford
Libros

Abstractions and specification in program development

Program development in Java
Premios Premio Turing 2008 y Medalla Jhon von Neumann 2004
Página web Barbara Liskov

Barbara Jane Huberman (nacida el 7 de noviembre de 1939), más conocida como Barbara Liskov, es una científica y programadora estadounidense, líder del Grupo de Metodologia de Programación y profesora del Tecnológico de Massachusetts. En la actualidad tiene 77 años.

Biografía

Barbara Liskov (nacida el 7, 1939 como Barbara Jane Huberman), en 1970, se casó con Nathan Liskov, y su hijo, Moses Liskov, nació en 1975. Bárbara Liskov es la primera mujer (una de las primeras personas) que obtuvo un doctorado en Ciencias de la Computación en Estados Unidos. En 1961, después de graduarse como Matemática de la Universidad de California en Berkeley decidió solicitar admisión al departamento de Postgrados de la Universidad de Princeton para recibir una respuesta negativa: Princeton no admitía estudiantes de sexo femenino. Fue en la Universidad de Stanford, a principios de la década de los 70s cuando obtuvo su doctorado en Ciencias de la Computación y en 1972, ingresó en el MIT como la primera mujer profesora del departamento de ciencias de la computación y ha estado trabajando en la docencia y en la investigación dentro de este instituto desde entonces. El incidente de Princeton y los inconvenientes que las mujeres deseosas de realizar una carrera profesional en el área de la computación hace más de cuarenta años experimentaron, no la detuvieron para realizar una brillante carrera en un área predominantemente masculina que empezaba a cautivar la mirada de los científicos e investigadores. Las investigaciones de la Doctora Liskov han tenido un impacto decisivo en áreas fundamentales de las ciencias de la computación tales como los sistemas operativos, lenguajes de programación, sistemas distribuidos y la metodología de la programación. Con el objeto de transmitir sus ideas acerca de la escritura de buenos programas, la Doctora Liskov creó el lenguaje de programación llamado CLU, el cual sirvió para sentar las bases de características propias de la programación orientada a objetos tales como el encapsulamiento, el polimorfismo o el manejo de excepciones. Durante la década de los 80s, el interés de la Doctora Liskov se centró en el desarrollo de aplicaciones que pudieran funcionar adecuadamente en internet. Sus contribuciones en el área de los sistemas distribuidos han sido fundamentales para que sistemas complejos tales como el motor de búsqueda de Google funcionen correctamente aún cuando millones de usuarios alrededor del mundo están subiendo, bajando o borrando información simultáneamente. A más de veinte años de haber sido concebidas, las ideas de la Doctora Liskov en torno a las aplicaciones en internet y los lenguajes de programación siguen vigentes. Actualmente, su interés está centrado en el área de seguridad, en la manera de lograr que la información delicada que circula a través de internet permanezca confidencial. Sin lugar a dudas, la Doctora Bárbara Liskov es un personaje que inspira no tan sólo a la comunidad femenina que se encuentra estudiando una carrera en el área de las ciencias de la computación sino a todo estudiante de esta área. Durante 2008, sus logros fueron reconocidos mediante el premio Turing (Association for Computing Machinery), el cual es considerado el “Premio Nobel de las ciencias de la computación”.

Investigaciones

Principio de sustitución de Liskov

  • Se basa en lenguajes OO como C# o VB.NET, la clave para conseguir la abstracción y polimorfismo de entidades es mediante la herencia, y es precisamente en esta característica en la que se basa el Principio de Sustitución de Liskov (Liskov Substitution Principle, LSP). Cuáles son los fundamentos básicos de diseño que debe seguir la herencia en un caso particular, o cuál es la mejor forma de crear jerarquías de herencia entre clases, son algunas de las preguntas a las que responde dicho principio.
  • Un ejemplo de este principio:

275x

CLU

  • El CLU es un lenguaje de programación creado por Barbara Liskov y sus estudiantes del MIT en los años 1974 y 1975, orientado a usar constructores para los tipos de datos abstractos que se incluyeron en el código, un paso adelante en la programación orientada a objetos (POO).
  • CLU es un lenguaje imperativo compilado con características extensas para definir y emplear tipos de datos abstractos. Se diseñó para el desarrollo general de aplicaciones, y también como un vehículo de investigación en el diseño de lenguaje informático para experimentar con la abstracción de datos y otros problemas de diseño de lenguaje.
El nombre "CLU" es la abreviatura de "CLUster", esto fue elegido porque un programa CLU normalmente consiste en procedimientos,clústeres e interactores. CLU apoyó una serie de características avanzadas para los lenguajes estructurados en su día, incluyendo un recolector de basura iteradores,una forma de herenecia y en el manejo de excepciones entre otros. Algunas de sus ideas, especialmente en el área de manejo de excepciones, han sido adoptadas en :lenguajes más recientes como Ada y Java.
Todos los objetos de un programa CLU viven en el montón, y la administración de memoria es automática. Este tipo de enfoque elimina gran :parte de la complejidad semántica asociada con múltiples formas de almacenamiento de objetos administrados por el programador observadas :en C ++.
  • Un ejemplo de código CLU:
    % Driver and function to compute factorials
    % from the PCLU distribution.
    start_up = proc ()
       pi: stream := stream$primary_input()
       po: stream := stream$primary_output()
       while true do
           stream$puts(po, "Enter an integer (or RETURN to exit): ")
           s: string := stream$getl(pi)
           if string$empty(s) then break end
           n: int := int$parse(s)
              except when bad_format:
                           stream$putl(po, "Illegal integer")
                     end
           stream$putl(po, int$unparse(n) || "! = " || int$unparse(factorial(n)))
              except when negative:
                          stream$putl(po, "Integer must be positive")
                     when overflow:
                          stream$putl(po, "Overflow")
                     end
           end
       end start_up

    factorial = proc (n: int) returns (int) signals (negative, overflow)
       if n < 0 then signal negative end
       if n = 0 then return(1) end
       return(n*factorial(n-1))
          resignal overflow
       end factorial

Premios

Premio Turing

Es el premio que se concede anualmente por la Asociación para la Maquinaria Computacional (ACM) a quien haya hecho aportes de significación histórica para las Ciencias de la computación. El también conocido como "Nobel de la Informática", ha sido otorgado desde 1966 en Nueva York y lleva el nombre del matemático, criptólogo y científico de la computación británico Alan Turing (1912–1954), a quién rinde homenaje. Ganado en 2008. Barbara Liskov ha contribuido a varias áreas de la informática, principalmente en: lenguajes de programación, sobre todo con la herramienta de programación distribuida, la teoría de tipos, donde Barbara Liskov ha definido una nueva noción de tipo derivado, las bases de datos, en particular orientadas al objeto, la algoritmia distribuida con tolerancia a fallos, y en particular las más difíciles de ellas: los procesos bizantinos.

125x 200x

Medalla Jhon von Neumann

La Medalla John von Neumann es un premio de ciencias de la computación establecido por la dirección del IEEE en 1990 y puede ser concedida anualmente "en reconocimiento a logros sobresalientes en ciencia y tecnología relativos a los computadores." Los logros pueden ser teóricos, tecnológicos o empresariales, y no tienen por qué haberse conseguido con precedencia inmediata a la concesión del galardón. Esta medalla fue ganada por Barbara Liskov en 2004 por contribuciones fundamentales a la programación de lenguajes y metodologia de programación entre otras.

50x

Publicaciones

Documentos

Algunas de sus publicaciones son:

2016

  • Type-aware transactions for faster concurrent code. Junto a Nathaniel Herman, Jeevana Priya Inala, Yihe Huang, Lillian Tsai, Eddie Kohler, Liuba Shrira.
  • Accepting blame for safe tunneled exceptions. Junto a Yizhou Zhang, Guido Salvaneschi, Quinn Beightol, Andrew C. Myers.

2015

  • Lightweight, flexible object-oriented generics. Junto a Yizhou Zhang, Matthew C. Loring, Guido Salvaneschi, Andrew C. Myers
  • Perspectives on system languages and abstraction.

2014

  • Fast Databases with Fast Durability and Recovery Through Multicore Parallelism. Junto a Wenting Zheng, Stephen Tu, Eddie Kohler.
  • A Modular and Efficient Past State System for Berkeley DB. Junto a Ross Shaull, Liuba Shrira.

2013

  • IFDB: decentralized information flow control for databases. Junto a David A. Schultz.
  • Speedy transactions in multicore in-memory databases. Junto a Stephen Tu, Wenting Zheng, Eddie Kohler, Samuel Madden.

2012

  • Automatic Reconfiguration for Large-Scale Reliable Storage Systems. Junto a Rodrigo Rodrigues, Kathryn Chen, Moses Liskov, David A. Schultz.
  • Programming Languages - Past Achievements and Future Challenges. Junto a Susan Graham, Frances E. Allen, Niklaus Wirth.
  • Keynote presentation: Programming the turing machine.
  • Abstractions for Usable Information Flow Control in Aeolus. Junto a Winnie Cheng, Dan R. K. Ports, David A. Schultz, Victoria Popic, Aaron Blankstein, James A. Cowling, Dorothy Curtis, Liuba Shrira.
  • Granola: Low-Overhead Distributed Transaction Coordination. Junto a James A. Cowling.

1984

  • Programming language issues for the 1980's: SIGPLAN '83: symposium on programming languages issues in software systems. Junto a Lawrence A. Rowe, L. Peter Deutsch, Stuart I. Feldman, Butler W. Lampson, Terry Winograd.
  • The Argus Language and System.

1983

  • Specification and implementation of resilient, atomic data types. Junto a William E. Weihl.
  • Guardians and Actions: Linguistic Support for Robust, Distributed Programs. Junto a Robert Scheifler.
  • Issues Process and Communication Structure for Distributed Programs. Junto a Maurice Herlihy.

1982

  • A Value Transmission Method for Abstract Data Types. Junto a Maurice Herlihy.
  • On Linguistic Support for Distributed Programs.
  • Guardians and Actions: Linguistic Support for Robust, Distributed Programs. Junto a Robert Scheifler.

1981

  • CLU Reference Manual. Junto a Russell R. Atkinson, Toby Bloom, J. Eliot B. Moss, Craig Schaffert, Robert Scheifler, Alan Snyder.
  • Report on the Workshop on Fundamental Issues in Distributed Computing.

1979

  • Exception Handling in CLU. Junto a Alan Snyder.
  • Modular Program Construction Using Abstractions.
  • Primitives for Distributed Computing.

1978

  • A Language Extension for Expressing Constraints on Data Access. Junto a Anita K. Jones.
  • Aspects Of Implementing CLU. Russell R. Atkinson, Robert Scheifler.
  • Crossfertilization Of DBMS Research With Other Disciplines Of Computer Science (Panel Discussion). Junto a Bharat K. Bhargava, Stephen R. Kimbleton, Jack Minker, Jeffrey D. Ullman.

1977

  • Abstraction Mechanisms in CLU. Junto a Alan Snyder, Russell R. Atkinson, Craig Schaffert.

1976

  • A Language Extension for Controlling Access to Shared Data. Junto a Anita K. Jones.
  • A Language Extension for Controlling Access to Shared Data (Abstract). Junto a Barbara Liskov.

1975

  • Specification Techniques for Data Abstractions. Junto a Stephen N. Zilles
  • Data types and program correctness.

1974

  • Programming with Abstract Data Types. Junto a Stephen N. Zilles.

1972

  • The Design of the Venus Operating System.
  • A design methodology for reliable software systems.

1971

  • The Design of the Venus Operating System.

Para encontrar todas sus publicaciones vista su página web.

Libros

Abstraction and Specification in Program Development

(Mh-Mit Series). 1986: Junto a colaboración de John Guttag. La abstracción y la especificación en el Desarrollo de Programas, ofrece a los profesionales en el diseño y el software de programas de ingeniería de una metodología que les permita construir programas que son confiables y razonablemente fáciles de entender, modificar y mantener. Una buena programación implica el dominio sistemático de complejidad, y este libro ofrece el primer tratamiento unificado de las técnicas de abstracción y especificaciones, las cuales, afirman los autores, son la pieza clave de cualquier enfoque efectivo para la programación. Ellos hacen especial hincapié en el uso de la abstracción de datos para producir programas altamente modulares.

150x

Program development in Java

En 2002. Junto a John Guttag, se muestra cómo construir programas de producción de calidad (programas que sean fiables, fáciles de mantener y rápidos modificar). Su énfasis reside en la construcción modular del programa, cómo obtener los módulos de la derecha y la forma de organizar un programa como un conjunto de módulos. El libro presenta una metodología eficaz, ya sea para un programador individual, que puede ser, escribir un pequeño programa o un módulo individual en una más grande; o un ingeniero de software, que puede ser parte de un equipo de desarrollo de un programa complejo compuesto por varios módulos. Ambas audiencias adquirirán una base sólida para el diseño del programa orientado a objetos y desarrollo de software basado en componentes de esta metodología.

150x

Enlaces externos

https://www.csail.mit.edu/user/971

https://en.m.wikipedia.org/wiki/Barbara_Liskov

http://tipsparaisc.blogspot.com.es/2010/01/barbara-liskov.html

https://desarrolloweb.com/articulos/principio-sustitucion-liskov-dotnet.html

https://devexperto.com/principio-de-sustitucion-de-liskov/

http://www.pmg.csail.mit.edu/

http://www.pmg.csail.mit.edu/~liskov/

https://www.ecured.cu/Barbara_Liskov#Libros_escritos