Diferencia entre revisiones de «Barbara-Liskov»
De WIAragón
(→Premios) |
(→CLU) |
||
Línea 42: | Línea 42: | ||
===CLU=== | ===CLU=== | ||
*El '''[https://es.wikipedia.org/wiki/CLU CLU]''' es un '''[https://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n lenguaje de programación]''' creado por '''Barbara Liskov''' y sus estudiantes del '''MIT''' en los años [https://es.wikipedia.org/wiki/1974 1974] y [https://es.wikipedia.org/wiki/1975 1975], orientado a usar constructores para los tipos de '''datos abstractos''' que se incluyeron en el '''código''', un paso adelante en la '''[https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos programación orientada a objetos (POO)]'''. | *El '''[https://es.wikipedia.org/wiki/CLU CLU]''' es un '''[https://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n lenguaje de programación]''' creado por '''Barbara Liskov''' y sus estudiantes del '''MIT''' en los años [https://es.wikipedia.org/wiki/1974 1974] y [https://es.wikipedia.org/wiki/1975 1975], orientado a usar constructores para los tipos de '''datos abstractos''' que se incluyeron en el '''código''', un paso adelante en la '''[https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos programación orientada a objetos (POO)]'''. | ||
+ | *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== | ==Premios== |
Revisión del 09:28 9 abr 2017
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 |
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.
Contenido
Biografía
En 1970, se casó con Nathan Liskov, y su hijo, Moses Liskov, nació en 1975.
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:
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).
- 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 2008
Medalla Jhon von Neumann 2004
Libros
Abstractions and specification in program development
Program development in Java