tema 1 - lenguajes de programación orientados a objetosjjap/tema3lenguajespoo.pdf · programación...

29
Tema 1. LPOO 1 Programación Orientada a Objetos 3º de I.T.I.S. Departamento de Informática y Automática Universidad de Salamanca Tema 1 Lenguajes de Programación Orientados a Objetos Versión 6.0 – 14 de febrero de 2005 © Francisco José García Peñalvo 2 Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo Tema 1. LPOO Resumen En este tema se exponen los principios fundamentales que, de forma genérica, se deben conocer sobre los lenguajes de programación orientados a objetos. Se comienza con la historia de estos lenguajes, se sigue con las diferentes clasificaciones de los múltiples lenguajes de programación y con los elementos concretos que pueden aparecer en un lenguaje de programación orientado a objetos. También se mencionan las características que pueden servir para la elección de un determinado lenguaje de programación. Por último, se presentan las características más destacables de algunos lenguajes de programación orientados a objetos Resumen [Deitel y Deitel, 2003] Capítulo 1 [Meyer, 1999] Capítulos 33, 34, 35 y 36 [Rumbaugh et al., 1998] Capítulos 14, 15 y 16 [Stroustrup, 2002] Capítulo 1 Bibliografía Programación orientada a objetos; Lenguaje de programación orientado a objetos; Lenguaje basado en objetos; Lenguaje basado en clases; Lenguaje orientado a objetos; Comprobación de tipos; Lenguaje orientado a objetos puro; Lenguaje orientado a objetos híbrido; Ligadura temprana; Ligadura tardía; Metadato; Biblioteca de clases; Entorno de desarrollo Descriptores

Upload: danglien

Post on 10-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 1

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

Tema 1

Lenguajes de Programación Orientados a Objetos

Versión 6.0 – 14 de febrero de 2005 © Francisco José García Peñalvo

2Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

ResumenEn este tema se exponen los principios fundamentales que, de forma genérica, se deben conocer sobre los lenguajes de programación orientados a objetos. Se comienza con la historia de estos lenguajes, se sigue con las diferentes clasificaciones de los múltiples lenguajes de programación y con los elementos concretos que pueden aparecer en un lenguaje de programación orientado a objetos. También se mencionan las características que pueden servir para la elección de un determinado lenguaje de programación. Por último, se presentan las características más destacables de algunos lenguajes de programación orientados a objetos

Resumen

[Deitel y Deitel, 2003] Capítulo 1[Meyer, 1999] Capítulos 33, 34, 35 y 36[Rumbaugh et al., 1998] Capítulos 14, 15 y 16[Stroustrup, 2002] Capítulo 1

Bibliografía

Programación orientada a objetos; Lenguaje de programación orientado a objetos; Lenguaje basado en objetos; Lenguaje basado en clases; Lenguaje orientado a objetos; Comprobación de tipos; Lenguaje orientado a objetos puro; Lenguaje orientado a objetos híbrido; Ligadura temprana; Ligadura tardía; Metadato; Biblioteca de clases; Entorno de desarrollo

Descriptores

Page 2: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 2

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

3Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Esquema

1. Historia y evolución2. Clasificación3. Características4. Revisión general de algunos LPOO

representativos5. Referencias6. Lecturas complementarias

4Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

1. Historia y Evolución

Page 3: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 3

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

5Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

1.1 Marco histórico de la OO (i)La OO ha seguido pasos similares a otros paradigmas de desarrollo

Primeramente el énfasis estuvo en las técnicas de programaciónPosteriormente se centró la atención en las fases de desarrollo de mayor nivel de abstracción, diseño y análisis Actualmente los procesos de negocio son el foco de interés

La evolución temporal de la OO ha sido más irregularPrimeros pasos dados a finales de la década de los sesentaParada significativa en su evolución hasta la segunda mitad de la década de los ochenta Resurge con tremenda fuerza, especialmente a partir de la primera conferencia OOPSLA en 1986

Gran diversidad, que podría calificarse de caótica en algunas parcelas

En los últimos años de la década de los noventa se produjo una cierta madurez en la tecnología de objetos, caminando hacia la unificación y los primeros estándares

6Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

1.1 Marco histórico de la OO (ii)

El término objeto surge de forma independiente en varios campos de la informática en la década de los setenta

Se refiriere a nociones que eran diferentes en su apariencia pero relacionadas entre síTratan de manejar la complejidad de los sistemas software

De forma que los objetos representabanComponentes de un sistema descompuesto modularmente Unidades modulares de representación del conocimiento

Page 4: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 4

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

7Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

1.1 Marco histórico de la OO (iii)Acontecimientos que contribuyeron a la evolución de los conceptos orientados a objetos [Levy, 1984]

Avances en la arquitectura de los computadores, incluyendo los sistemas de capacidades y el apoyo en hardware para conceptos de sistemas operativos Avances en los lenguajes de programación Avances en metodología de la programación, incluyendo la modularización y la ocultación de la información [Parnas, 1972]

A los anteriores deberían unirse [Booch, 1994]Avances en los modelos de bases datosInvestigación en Inteligencia ArtificialAvances en Filosofía y Ciencia Cognitiva

8Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

1.1 Marco histórico de la OO (iv)El concepto de un objeto tuvo sus inicios en el hardware con la aparición de arquitecturas basadas en descriptores y arquitecturas basadas en capacidades Muy relacionados con las arquitecturas orientadas a objetos están los sistemas operativos orientados a objetos

THE, UCLA Secure UNIX, StarOS, Medusa, iMAX, Microsoft Windows NT…

Aunque la tecnología de Bases de Datos ha evolucionado un tanto independientemente de la Ingeniería del Software, también ha contribuido al modelo de objetos

Aproximación entidad-relación al modelado de datos

En el campo de la Inteligencia Artificial, los avances en representación del conocimiento han contribuido a una comprensión de las abstracciones orientadas a objetos

Teoría de marcos para representar objetos del mundo real

Page 5: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 5

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

9Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

1.1 Marco histórico de la OO (v)

La Filosofía y la Ciencia Cognitiva han contribuido al avance del modelo de objetos

La idea de que el mundo podía verse en términos de objetos o procesos procede de los filósofos griegos

Concretamente de la Teoría de las Ideas desarrollada por Platón, a partir de las enseñanzas de Sócrates, y estudiada y ampliada por Aristóteles

Se puede decir que la OO se acerca más al enfoque Aristotélico-Tomista frente al enfoque Kantiano de los métodos estructurados

10Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Simula

Smalltalk 721970

Smalltalk 72

1980 Smalltalk 80

1966

C++Objective-C

Eiffel1990

OO COBOLADA 95SQL3DelphiJava

La historia de los LPOO comienza a finales de los años 60, con el lenguaje Simula, diseñado en el Norwegian Computing CentreDurante la década de los 70s la poca actividaden el tema la monopoliza SmalltalkLa década de los 80s supone un nuevo auge para la POOEntre 1980 y 1983 Stroustrup desarrolla C++En la década de los 90s se produce la explosión total de las tecnologías orientadas al objetoEn mayo 1995 de 1995 SUN presenta JavaEn octubre de 2000 Hewlett-Packard, Intel y Microsoft remiten C# a la EuropeanManufacturers Association (ECMA) para su estandarización. En diciembre de 2001 ECMA lo adopta como estándar

1.2 Historia de los LPOO (i)

2000C#

Page 6: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 6

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

11Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Algol 60

Pascal

Simula 67

Algol 68CLUCOBOL

Smalltalk 72

ADA 83

BCPL

C

ActorLISP

FLAVORS

LOOPS

CLOS

OO COBOL

ADA 95

ObjectPascal Smalltalk 80

Objective C

C++

Java

Eiffel

Delphi

Evolución de los LPOO

CPL1.2 Historia de los LPOO (ii)

C#

12Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

2. Clasificación de los LPOO

Page 7: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 7

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

13Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Existen varias clasificaciones de los LPOO,atendiendo a criterios de construcción ocaracterísticas específicas de los mismos

Clasificación de Peter WegnerClasificación de TeslerClasificación según el origen

2.1 Introducción

14Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

2.2 Clasificación de Wegner (i)

Lenguajes Basados en ObjetosSoportan objetos

Disponen de componentes caracterizados por un conjunto de operaciones (comportamiento) y un estado

Lenguajes Basados en ClasesDisponen, además de objetos, de componentes tipo clase con operaciones y estado común

Lenguajes Orientados al ObjetoAdemás de objetos y clases ofrecen mecanismos de herencia

[Wegner, 1987]

Page 8: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 8

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

15Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Basado en objeto = encapsulamiento + identidad de objetosBasado en clases = basado en objetos + abstracción de conjuntoOrientados a objetos = Basados en clases + herencia + autorrecursión

Basado enObjetos

Objetos

Basado enClases

Orientado alObjeto

+ Clases

+ HerenciaAda 83Clipper 5.2

CLU

Ada 95C++EiffelSmalltalkDelphi

2.2 Clasificación de Wegner (ii)

[Graham, 1994]

16Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Orientados alproceso

Orientados alobjeto

Estático

Dinámico

POSLPOSL OOSLOOSL

OODLOODLPODLPODLPascal, C

Process-OrientedStatic Languages

Object-OrientedStatic Languages

C++, Java

Object-OrientedDinamic Languages

Process-OrientedDinamic Languages

Lisp, Scheme Smalltalk, Dylan

2.3 Clasificación de Tesler (i)

[Tesler, 1993]

Page 9: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 9

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

17Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

2.3 Clasificación de Tesler (ii)

Un sistema de tipos son las reglas que establecen la utilización de los tipos su corrección en un lenguaje

de modelado o realización

Lenguajes de programación OOCon comprobación estricta de tipos (Eiffel)

La concordancia se impone de forma estrictaNo puede llamarse a una operación sobre un objeto a menos que en la clase o la superclase del objeto esté definido el prototipo exacto de esa operación

Puede detectarse en tiempo de compilación cualquier violación a la concordancia de tipos

Comprobación débil de tiposSin tipos

Un cliente puede enviar un mensaje a cualquier clase (aunque ésta desconozca cómo responder al mensaje)No puede saberse si hay incongruencias de tipos hasta la ejecución

18Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

FORMA

MOMENTOdel CHEQUEO

RIGUROSIDAD

dinámico

estricta

débil

sin tipos

declaración inferencia

estático

C++

CAMLEiffel,Pascal OO

Smalltalk

Sistemas de tiposMonomórficos

Polimórficos

LigaduraEstática

Dinámica

[Cardelli y Wegner, 1985]

2.3 Clasificación de Tesler (iii)

Tipificación o tipado (typing) es el proceso de declarar cuál es el tipo de información que puede

contener una variable

Page 10: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 10

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

19Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Beneficios del uso de lenguajes con tipos estrictosEvitan los fallos en tiempo de ejecución derivados de conflictos con los tiposDetección temprana en tiempo de compilación de erroresDeclaración de tipos como ayuda para la documentaciónEficiencia en el código

[Tesler, 1981]

2.3 Clasificación de Tesler (iv)

20Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Ligadura es el proceso de asociar un atributo a un nombre.En el caso de las funciones, el término ligadura (binding) serefiere a la conexión o enlace entre una llamada a funcióny el código real ejecutado como resultado de la llamada

[Joyanes, 1998]

Ligadura estática otemprana

Ligadura dinámica otardía

2.3 Clasificación de Tesler (v)

Page 11: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 11

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

21Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Ligadura estática o tempranaResuelve las correspondencias en tiempo de compilaciónNo hay sobrecarga en tiempo de ejecución y los fallos se detectan en tiempo de compilaciónLos enlaces no pueden hacerse sin volver a compilar

Ligadura dinámica o tardíaLa correspondencia se hace al invocar los métodosSoporta la evolución de los programas sin tener que recompilarCoste en tiempo de ejecución

2.3 Clasificación de Tesler (vi)

22Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Comprobación Estática

Comprobación Dinámica

Ligadura Estática

Garantía de corrección, interpretación inflexible

C, Cobol

Combinación no válida (Sin sentido)

Ligadura Dinámica

Garantía de corrección,Interpretación flexible

C++, Object Pascal

No hay garantía de corrección,

interpretación flexible Smalltalk

2.3 Clasificación de Tesler (vii)

Page 12: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 12

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

23Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Lenguajes Puros

ObjetosMensajes

Clases

Lenguajes Híbridos

ObjetosMensajes

Clases

+

Lenguajescon basetradicional

SmalltalkEiffel

C++Object Pascal

2.4 Clasificación según el origen (i)

24Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Lenguajes Puros Lenguajes Híbridos

Ventajas Desventajas Ventajas DesventajasObligan a seguir los principios del paradigma objetualProporcionan su máxima flexibilidad para cambiar los aspectos esenciales del lenguaje

En general, son menos rápidos que los híbridosSon difíciles de codificar en toda clase de operacionesfundamentalesPérdida de eficiencia en tiempo de ejecución

RápidosPermiten una mayorintegración con el entorno existenteLos programadores pueden seguir siendo productivos mientras aprenden las extensiones orientadas al objeto

Pierden con frecuencia alguna característica del paradigma objetualNo permiten modificarlas características de construcción del lenguaje base

2.3 Clasificación según el origen (ii)

Page 13: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 13

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

25Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

3. Características de los LPOO

26Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

• Objetos• Clases• Herencia simple• Herencia múltiple• Comprobación estricta de

tipos frente a comprobación débil• Encapsulamiento• Empaquetamiento• Genericidad• Paso de mensajes

• Polimorfismo • Excepciones• Concurrencia• Persistencia• Metadatos• Afirmaciones y restricciones • Bibliotecas de clases• Eficiencia• Administración de memoria• Entorno de desarrollo

[Rumbaugh et al., 1991]

3.1 Elementos Concretos

Page 14: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 14

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

27Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

3.2 Requisitos Deseables en los LPOO

Conceptos clarosOrientación al Objeto puraSeguridadAlto nivelModelo de ejecución simpleSintaxis fácil de leer

Eliminación de la redundanciaPequeñoDe fácil transición a otros lenguajesSoporte para el aseguramiento de la correcciónEntornos agradables

[Kölling, 1999]

28Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Smalltalk

Eiffel

C++

Java

Smalltalk

C++

Java

Eiffel

C++

Java

4. Revisión de algunos de los PrincipalesLPOO

Sim

ula

Simula

C#

C#

C#

Page 15: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 15

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

29Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

4.1 Simula (i)

El Simula 67 fue considerado como el primer LPOOFue diseñado en 1967 por Ole-Johan Dhal y Kristen Nygaard en el Norwegian ComputingCenter en OsloEl nombre de Simula 67 fue acortado a Simula en 1986, existiendo un estándar del lenguaje desde 1987 [SIS, 1987]

30Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

4.1 Simula (ii)class POLIGONO;

virtual: procedure set_verticesbegin

procedure dibuja begin ... end;end POLIGONO

POLIGONO class TRIANGULO...end TRIANGULO

...ref(TRIANGULO) t; ref(POLIGONO) p;...p :- t;

p.set_vertices;

p.dibuja;

(p qua TRIANGULO).dibuja

Page 16: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 16

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

31Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

a

bresume b

resume a

resume b

resume a

4.1 Simula (iii)

CORRUTINAS

32Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

beginclass CONTROLLER; begin

integer i;detach;for i:= 1 step 1 until 1000 resume printer

end CONTROLLER;

class PRINTER; begininteger i;

detach; while true dofor i:=1 step 1 until 8 do beginresume producer;outreal(producer.last_input);resume controller;

end;next_line

endend PRINTER; ...ref(PRINTER) printer; ref(CONTROLLER) controller; ...printer :- new PRINTER; controller :- new CONTROLLER;...resume controllerend

4.1 Simula (iv)CORRUTINAS

Page 17: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 17

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

33Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

4.2 Smalltalk (i)Primer lenguaje creado con tecnología de objetos purosEl origen de Smalltalk está alrededor de 1970 en la Universidad de Utah de la mano de Alan KaySmalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC) por Alan Kay, Adele Goldberg y Daniel IngallsLos conceptos de Smalltalk han influido en el diseño de LPOO y en el aspecto y sensación de los GUI como los de Macintosh o MotifSmalltalk 72, Smalltalk 74, Smalltalk 76, Smalltalk 78 y Smalltalk 80Smalltalk/V de DigitalEntorno de programación

Lenguaje Smalltalk básicoColección de clasesEntorno real de programación

El estilo del lenguaje se enfatiza la ligadura dinámica y no realiza chequeo de tiposEl bloque fundamental es la clase, que contiene la descripción de variables y métodosLos métodos contienen el código y definen cómo responde un objeto a un mensaje

34Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

4.2 Smalltalk (ii)La ejecución de una rutina de un objeto se denomina en la terminología de Smalltalk “enviar un mensaje” al objeto

La clase del objeto encontrará la forma apropiada de manejar dicho mensaje

Todo en Smalltalk son objetos, incluyendo a las propias clasesEl entorno de Smalltalk permite un rápido desarrollo de programasLa biblioteca de clases fue diseñada para ser extendida y adaptada por adición de subclases para satisfacer las necesidades de la aplicaciónLa arquitectura Modelo/Vista/Controlador (MVC) es una importantecontribución de SmalltalkUna referencia clásica sobre Smalltalk es [Goldberg y Robson, 1983]

Page 18: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 18

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

35Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Abstracción Variables de instancia Métodos de instancia Variables de clase Métodos de clase

Sí Sí Sí Sí

Encapsulamiento De variables De métodos

Privado Público

Modularidad Tipos de módulo Ninguno

Jerarquía Herencia Unidades genéricas Metaclases

Simple No Sí

Tipos Comprobación estricta Polimorfismo

No Sí

Concurrencia Multitarea Indirectamente (mediante clases)

Persistencia Objetos persistentes No

4.2 Smalltalk (iii)

36Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

4.3 C++ (i)C++ es un lenguaje híbrido, extensión del lenguaje CFue desarrollado por Bjarne Stroustrup en los laboratorios AT&TLas primeras versiones del lenguaje se denominaron C con clases, y datan de 1980El nombre de C++ se debe a Rick Mascitti, quien lo bautizó de estamanera en el verano de 1983C++ fue instalado por primera vez fuera del grupo de investigación del autor en julio de 1983En 1987 surge la necesidad de estandarización de C++Dispone de capacidades para la herencia simple y múltiplePor defecto C++ tiene ligadura estáticaLas funciones definidas como virtuales pueden beneficiarse del concepto de ligadura dinámica

Page 19: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 19

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

37Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

4.3 C++ (ii)C++ es estrictamente tipado, aunque admite la posibilidad de castingNo cuenta con un recolector de basuraLa ausencia de un gestor automático de memoria por defecto, obliga al concepto de destructorOcultamiento de la información, incluso a los descendientesCuenta con un mecanismo de acceso especial por parte de una clase o una función que se declare como friendSoporte de manejo de excepcionesSoporte de genericidad mediante las plantillasPermite sobrecarga de operadoresSintaxis oscura y gramática difícil de analizarLenguaje complejo, preocupado por la detección temprana de errores y por la eficiencia de la ejecución

Perdiendo algo de sencillez y de flexibilidad para el diseño

[Stroustrup, 1997] es una referencia válida para este lenguaje

38Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

#include <iostream.h>#include <string.h>

class Saludos {char *saludo;

public:Saludos(char *msg) {

int longitud = strlen(msg);saludo = new char[longitud+1];strcpy(saludo, msg);

}

char* muestra(void) {return saludo;}};

void main(void) {Saludos s1("Hola Mundo }:()");Saludos s2("Bye, dear friends :(((");

cout << s1.muestra() << endl;cout << s2.muestra() << endl;

}

4.3 C++ (iii)

Page 20: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 20

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

39Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Abstracción Variables de instancia Métodos de instancia Variables de clase Métodos de clase

Sí Sí Sí Sí

Encapsulamiento De variables De métodos

Público, Privado, Protegido Público, Privado, Protegido

Modularidad Tipos de módulo Fichero

Jerarquía Herencia Unidades genéricas Metaclases

Múltiple Sí No

Tipos Comprobación estricta Polimorfismo

Sí Sí

Concurrencia Multitarea Indirectamente (mediante clases)

Persistencia Objetos persistentes No

4.3 C++ (iv)

40Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

4.4 Eiffel (i)Eiffel fue desarrollado por Bertrand MeyerEs un lenguaje orientado al objeto puroSoporta ligadura dinámicaTiene comprobación estricta de tiposAdmite herencia múltipleSoporta clases parametrizadasLa gestión de memoria la lleva a cabo el entorno de programaciónEiffel proporciona una biblioteca de clases predefinidas muy completaEiffel cuenta con la clase como único criterio de estructuraciónUna declaración de clase en Eiffel puede incluir una lista de características exportadas, una lista de clases predecesoras y una lista de declaraciones de característicasCuenta con manejo de excepciones[Meyer, 1992] es una de las referencias obligadas, aunque con unas miras más amplias, se recomienda [Meyer, 1997]

Page 21: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 21

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

41Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Diseño por contratoPrecondicionesPrecondiciones

Deben cumplirse antes de que se invoque un método

PoscondicionesPoscondicionesSe garantizan que han de cumplirse después de que se haya ejecutado el método

InvariantesInvariantesCondición que debe cumplir la clase en toda circunstancia estable

Un contrato entre el proveedor y el usuario de una clase espera que

El usuario de una clase asegurará que las precondiciones de un método se cumplan antes de que el método se invoqueEl proveedor de la clase garantizará que las poscondiciones se cumplandespués que se ha aplicado el método

Ase

rcio

nes

4.4 Eiffel (ii)

42Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

class STACK[T]creation

createfeature {NONE}

elems : ARRAY[T];feature

max_size : INTEGER;total : INTEGER;create(n : INTEGER) isrequire

n > 0do

!!elems.make(1,n);max_size := n

ensuremax_size = n;total = 0;

end;empty : BOOLEAN is do

Result := total = 0ensure

equal(strip(), old strip())end;

full : BOOLEAN is doResult := total =max_size

ensureequal(strip(), old strip())

end;top : T is require

not emptydo

Result := elems@totalensure

equal(strip(), old strip())endpush(x : T) is require

not fulldo

total := total + 1;elems.put(x,total)

ensurenot empty;total = old total + 1;top = x

end;

pop is requirenot empty

dototal := total -1

ensuretotal = old total -1;not full

endinvariant

0 <= total;total <= max_size

end – STACK

4.4 Eiffel (iii)

Page 22: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 22

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

43Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Abstracción Variables de instancia Métodos de instancia Variables de clase Métodos de clase

Sí Sí No No

Encapsulamiento De variables De métodos

Público (sólo lectura), Privado, Selectivamente Público, Privado, Selectivamente

Modularidad Tipos de módulo Clase

Jerarquía Herencia Unidades genéricas Metaclases

Múltiple Sí No

Tipos Comprobación estrictaPolimorfismo

Sí Sí

Concurrencia Multitarea Si (mediante clases de bibliotecas)

Persistencia Objetos persistentes Si (mediante clases)

4.4 Eiffel (iv)

44Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

4.5 Java (i)Realizado por un equipo de Sun Microsystems en 1995Ha recibido una especial atención desde los primeros meses de 1996Es un lenguaje orientado al objeto puro diseñado desde cero, querecibe muchas influencias de C++Se le atribuyen las siguientes características

Simple y poderosoSeguroRobustoInteractivoIndependiente de la arquitecturaInterpretadoSencillo de aprender

Soporta threadsRecogida de basura automáticaDe la abundante bibliografía existente se recomienda [SUN, 2004]

Page 23: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 23

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

45Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Java es un componente principal dentro del curríc

ulo de la

Ingeniería del Software varias Universidades

En los primeros seis meses de 1996, Javaapareció en la prensa de US 4325 veces, comopunto de comparación Bill Gates apareció5096 veces

4.5 Java (ii)Java produce un bytecode que será interpretado por una máquina virtualLa máquina virtual se encuentra a menudo en navegadores WebLa explosión de Internet ha influido en el auge de Java

46Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

class _saludos {String saludo="";

_saludos(String msg) {saludo = msg;

}

public void mostrar() {System.out.println(saludo);

}}class Saludos {

public static void main(String args[]) {_saludos s1 = new _saludos("Hola Mundo :)))");_saludos s2 = new _saludos("Adios amigos :((");

s1.mostrar();s2.mostrar();

}}

4.5 Java (iii)

Page 24: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 24

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

47Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

Abstracción Variables de instancia Métodos de instancia Variables de clase Métodos de clase

Sí Sí Sí Sí

Encapsulamiento De variables De métodos

Público, Privado, Protegido Público, Privado, Protegido

Modularidad Tipos de módulo Fichero

Jerarquía Herencia Unidades genéricas Metaclases

Simple No No

Tipos Comprobación estricta Polimorfismo

Sí Sí

Concurrencia Multitarea Sí

Persistencia Objetos persistentes No

4.5 Java (iv)

48Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

C# (i)C# es el nuevo lenguaje diseñado por Microsoft para su plataforma .NET

Es posible escribir código para la plataforma .NET en muchos otros lenguajes C# es el único que ha sido diseñado específicamente para ser utilizado en esta plataforma

Microsoft suele referirse a C# como el lenguaje nativo de .NETGran parte de la biblioteca de clases base de .NET ha sido escrita en C#

C# ha sido diseñado por Scott Wiltamuth y Anders HejlsbergC# es un lenguaje orientado a objetos que intenta recoger las mejores características de muchos otros lenguajes

Unir la alta productividad y facilidad de aprendizaje de Visual Basic con la potencia de C++

Algunas referencias interesantes pueden ser [Troelsen, 2001; Mayo, 2002]

Page 25: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 25

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

49Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

C# (ii)Principales características (i)

Orientado a objetosModelo de programación orientada a objetos homogéneo

Todo el código se escribe dentro de clases y todos los tipos de datos, incluso los básicos, son clases que heredan de System.Object

Permite definir estructurasClases un tanto especiales

Sus objetos se almacenan en pila, por lo que se trabaja con ellos directamente y no con referencias al montículo, lo que permite accederlos más rápido El tiempo necesario para pasarlas como parámetros a métodos es mayor (sólo paso por valor)No admiten herencia, pero sí implementación de interfaces

Fuertemente tipadoTiene recolector de basuraIncluye soporte nativo para eventos y delegados

50Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

C# (iii)Principales características (ii)

Incorpora propiedadesSoporta redefinición de operadoresAdmite atributos

No son miembros de las clases sino información sobre éstas que se pueden incluir en su declaración

Soporte de XMLSoporte de threadsGestión de excepcionesIncluye espacios de nombres

Page 26: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 26

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

51Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

C# (iv)

// HolaMundo1.cs

class HolaMundo1 {public static void Main(){

System.Console.WriteLine(“¡Hola Mundo!”);}

}

52Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

C# (v)Abstracción Variables de instancia

Métodos de instancia Variables de clase Métodos de clase

Sí Sí Sí Sí

Encapsulamiento De variables De métodos

Público, Privado, Protegido, Interno Público, Privado, Protegido, Interno

Modularidad Tipos de módulo Fichero Jerarquía Herencia

Unidades genéricas Metaclases

Simple No No

Tipos Comprobación estricta Polimorfismo

Sí Sí

Concurrencia Multitarea Sí Persistencia Objetos persistentes No

Page 27: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 27

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

53Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

5. Referencias (i)[Booch, 1994] Booch, G. “Object Oriented Analysis and Design with Applications”. 2nd Edition.

The Benjamin/Cummings Publishing Company, 1994[Cardelli y Wegner, 1985] Cardelli, L., Wegner, P. “On Understanding Types, Data

Abstraction and Polymorphism”. ACM Computing Surveys, 17(4). 1985[Goldberg y Robson, 1983] Goldberg, A., Robson, D. “Smalltalk-80: The Language and its

Implementation”. Addison-Wesley, 1983[Graham, 1994] Graham, I. “Object-Oriented Methods”. 2nd Edition. Addison-Wesley, 1994[Joyanes, 1998] Joyanes Aguilar, L. “Programación Orientada a Objetos”. 2ª Edición.

McGraw-Hill, 1998.[Kölling, 1999] Kölling, M. “The Problem of Teaching Object-Oriented Programming, Part 1:

Languages”. Journal of Object-Oriented Programming, 11(8):8-15. January 1999[Levy, 1984] Levy, H. “Capability-Based Computer Systems”. Digital Press, 1984[Mayo, 2002]Mayo, J. “C# Unleashed”. Sams Publishing, 2002[Meyer, 1992] Meyer, B. “Eiffel: The Language”. Prentice Hall Object-Oriented Series, 1991;

second revised printing, 1992[Meyer, 1997] Meyer, B. “Object Oriented Software Construction”. 2nd Edition. Prentice Hall,

1997

54Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

5. Referencias (ii)[Parnas, 1972] Parnas, D. L. “On the Criteria To Be Used in Decomposing Systems into

Modules”. Communications of the ACM, 15(12):1053-1058. December 1972[Rumbaugh et al., 1991] Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F.,

Lorensen, W. “Object-Oriented Modeling and Design”. Prentice-Hall, 1991[SIS, 1987] SIS. “Data Processing - Programming Languages — SIMULA”.

Standardiseringskommissionen i Sverige (Swedish Standards Institute), Svensk Standard SS 63 61 14, 20 May, 1987

[Stroustrup, 1997] Stroustrup, B. “The C++ Programming Language”. 3rd Edition, Addison Wesley, 1997

[SUN, 2004] SUN Microsystems. “The Java Tutorial. A Practical Guide for Programmers”. http://java.sun.com/docs/books/tutorial/index.html. [Última vez visitado, 14/02/2005]. March 2004

[Tesler, 1981] Tesler, L. “The Smalltalk Environment”. Byte, 6(8). August 1981[Tesler, 1993] Tesler, L. “Object-Oriented Dynamic Languages”. In Proceedings of the Object

Expo Conference. July 1993[Troelsen, 2001] Troelsen, A. “C# and the .NET Platform”. Apress, 2001[Wegner, 1987] Wegner, P. “The Object-Oriented Classification Paradigm in Research

Directions on Object-Oriented Programming”. MIT Press, Cambridge, MA, 1987

Page 28: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 28

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

55Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

6. Lecturas complementarias (i)“The C# Corner”. http://www.c-sharpcorner.com/ [Última vez visitado, 14/2/2005]. 2005

Sitio especializado en el lenguaje C#“The Real Stroustrup Interview”. IEEE Computer, 31(6):110-114. June 1998

En 1998 se difundió por Internet una supuesta entrevista con Bjarne Stroustrup en la prácticamente el autor de C++ tiraba por los suelos su obra. Así en el mes de junio de este mismo año se publica en la revista IEEE Computer una entrevista, esta vez de verdad, con Stroustrup, donde da su opinión sobre el papel de C++ en el mundo de la Programación Orientada a Objetos

Interactive Software Engineering. “Object-Oriented Languages: A Comparison”. Interactive Software Engineering (ISE). http://www.eiffel.com/doc/manuals/technology/oo_comparison/page.html [Última vez visitado, 14-2-2005]. 2005Tablas comparativas entre Eiffel, C++, Java y Smalltalk

Joyner, I. “C++?? A Critique of C++ and Programming and Language Trends of the 1990s”. 3rd edition http://burks.brighton.ac.uk/burks/pcinfo/progdocs/cppcrit. [Última vez visitado 14/2/2005]. 2000.Informe crítico sobre C++, comparando sus características con otros lenguajes de programación, en especial con Eiffel

Kay, A C. “The Early History of Smalltalk”. In Proceedings of the second ACM SIGPLAN conference on History of programming languages – HOPL II. (April 20 - 23, 1993, Cambridge United States). ACM SIGPLAN Notices, 28(3):69-75. March 1993Artículo sobre los orígenes de Smalltalk

56Universidad de Salamanca – Departamento de Informática y Automática © Dr. Francisco J. García Peñalvo

Tema 1. LPOO

6. Lecturas complementarias (ii)Meyer, B. “Approaches to Portability”. Journal of Object-Oriented Programming (JOOP), 11(4):68-70.

July/August 1998Comparativa de los bytecodes de Java con el método propio de Eiffel consistente en utilizar C como lenguaje intermedio para conseguir la portabilidad del software

Meyer, B. “Construcción de Software Orientado a Objetos”. 2ª Edición. Prentice Hall, 1999En relación con el presente tema se destaca en capítulo 35, De Simula a Java y más allá: los principales entornos y lenguajes O-O, donde se repasan algunos de los lenguajes de programación orientados a objetos de mayor peso

Piattini, M. G. “Selección de Lenguajes de Programación Orientados al Objeto: ¿Cuestión de Religión?”. Revista BASE de la ALI (Asociación de Doctores, Licenciados e Ingenieros en Informática), Nº24:58-62. Abril, 1994Artículo intoductorio al mundo de los LPOO

Prechelt, L. “Comparing Java vs. C/C++ Efficiency Differences to Interpersonal Differences”. Communications of the ACM, 42(10):109-112. October 1999Artículo en el que se presenta un experimento llevado a cabo para comparar la eficiencia de estos lenguajes de programación

Rans, M. “A History of Object-Oriented Programming Languages and their Impact on Program Design and Software Development”. http://jeffsutherland.com/papers/Rans/OOlanguages.pdf [Última vez visitado, 14/2/2005]. November 1999Resumen de la historia de algunos lenguajes de programación orientados a objetos destacados

Stroustrup, B. “The Design and Evolution of C++”. Addison-Wesley, 1994. Reprinted with corrections in April 1995Libro del autor de C++ explicando la historia, diseño y evolución de C++

Page 29: Tema 1 - Lenguajes de Programación Orientados a Objetosjjap/Tema3LenguajesPOO.pdf · Programación orientada a objetos; Lenguaje de programación orientado ... avance del modelo

Tema 1. LPOO 29

Programación Orientada a Objetos3º de I.T.I.S.

Departamento de Informática y AutomáticaUniversidad de Salamanca

Tema 1

Lenguajes de Programación Orientados a Objetos

Versión 6.0 – 14 de febrero de 2005 © Francisco José García Peñalvo