materia : programacion 5 tema: ejemplos del resumen magister ing. divas sanjur s. presentado por :...
TRANSCRIPT
MATERIA PROGRAMACION 5
Tema EJEMPLOS DEL RESUMEN
MAGISTERING DIVAS SANJUR S
bull Presentado por Geovany A Guerra
CIP 4 ndash 718 ndash 53
bull Nivel Licenciatura Sistemas
Informaacuteticosbull Antildeo 2011
Domingo Lunes Martes Miercoles Jueves Viernes Sabado
210423
ACTIVIDAD EN CASAACTIVIDAD EN CASA
AbrMarFebEne
DIA
AgoJunMay Jul Sep Oct Nov Dic
PROGRAMACION JAVA PROGRAMACION JAVA
TABLA DE CONTENIDO
PRESENTACIONbull HISTORIAbull EVOLUCIONbull CLASIFICACIONbull CARACTERISTICAS
bull LPOO REPRESENTATIVOS
bull REFERENCIASbull LECTURAS
COMPLEMENTARIAS
INDICE
bull INVESTIGACIONbull EJEMPLOS
bull GLOSARIO ldquoescritordquobull ILUSTRACIONES
bull CONCLUSIONbull BIBLIOGRAFIAbull INFOGRAFIA
JAVAJAVA
2 Clasificacion de los POO
Proyeccioacuten de las PC
SIMULA
1966 1970 1980 1990
Esta inicia a finales de los antildeos60 con el lenguaje simula disentildeado x norwegian computin centre seguido la decada de los 70 se monopoliza smartal en los 80 el auge de los POOentre los 80-83 stroutup desarrolla C++ y en los noventas la innovacion tecnologica de la tecnologia orientada a
objetos
Arquitecturas nuevas
SMARTALK 72
SMARTALK 80 C++
Objetive ndashc Eiffel
OO COBOL
ADA 95 SQL3 Delphi JAVA
bull EPOCAS DE LA HISTORIA DE LOS POO
CONEXION JAVACONEXION JAVA
NS OBJECT
NS OBJECT
NS RESPONDER
NS VIEW
NS CONTROL
Objeto base init retain release
Objeto base init retain release
Objeto base init retain release
Objeto base init retain release
NS OBJECTNS OBJECT NS OBJECT
OP OO
EJEMPLOSEJEMPLOSENTRADA
SALIDA
ENTRADA
SALIDA
PROCEDIMIENTOS A
PROCESOS A
PASOS A
OBJETOS A
ATRIBUTOS
METODOS
OBJETOS B
ATRIBUTOS
METODOS
OBJETOS C
ATRIBUTOS
METODOS
2121Existen varias clasificaciones de los LPOO
atendiendo a criterios de construccioacuten ocaracteriacutesticas especiacuteficas de los mismos
bull Clasificacioacuten de Peter Wegnerbull Clasificacioacuten de Teslerbull Clasificacioacuten seguacuten el origen
Clasificacioacuten deWegner bull Lenguajes Basados en Objetos Soportan objetos Es decirdisponen de componentes caracterizados por un conjunto deoperaciones (comportamiento) y un estadobull Lenguajes Basados en Clases Disponen ademaacutes de objetosde componentes tipo clase con operaciones y estado comuacutenbull Lenguajes Orientados al Objeto Ademaacutes de objetos y clasesofrecen mecanismos de herencia
Clasificacioacuten de WegnerBasado en objeto = encapsulamiento +identidad de objetosbull Basado en clases = basado en objetos +abstraccioacuten de conjuntobull Orientados a objetos = Basados en clases +herencia + autorrecursioacuten
BASADO EN OBJETOS
BASADO EN CLASES
ORIENTADO AL OBJETO
OBJETOS
ADA 95
C++
EIFFIEL
SMARLLTALK
DELPHI
ADA 873
CLIPPER 52
+ CLASES
+ HERENCIAS
CLU
Clasificacioacuten de Tesler
OODLObject ndash Oriented
Dinamic LanguajesSmalltlk Dylan
PODLProcess ndash Oriented Dinamic Languajes
Lisp Schame
OOSLObject ndash Oriented Static Languajes
C + +JAVA
POSLProcess-oriented Static Languajes
Pascal C
Dinamicos
Estaticos
Orientados al objetoOrientados al proceso
2323Clasificacioacuten de Tesler
Comprobacion estrictaComprobacion debilSin tipos
Un sistema de tipos son las reglas que la
establecen la utilizacion de los tipos su
correccion en un lenguaje de modelado o
relizacion
Chequeo de momento
Smalltalk
Dinamico
Rigurosidad
Sin Tipos
CLASIFICACION DE TESLER
Clasificacioacuten de Tesler
Beneficios del uso de lenguajes con tiposestrictosndash Evitan los fallos en tiempo de ejecucioacutenderivados de conflictos con los tiposndash Deteccioacuten temprana en tiempo de compilacioacutende erroresndash Declaracioacuten de tipos como ayuda para ladocumentacioacutenndash Eficiencia en el coacutedigo
Clasificacioacuten de Tesler
Tipificacioacuten o tipado (ldquotypingrdquo) es el proceso dedeclarar cuaacutel es el tipo de informacioacuten que puede
contener una variable
Sistemas de tipos estaacuteticosbull Tambieacuten llamados sistemas contipado fuerte o estrictobull Exigen asociacioacuten expliacutecita de un tipoa cada nombre declaradobull El tipo de cada objeto se ha de determinarcon anterioridad a la ejecucioacuten del programabull Menos flexible pero maacutes segurabull Ejecucioacuten maacutes eficiente al no tener quehacer comprobacioacuten de tipos en tiempo deEjecucioacuten
Sistemas de tipos dinaacutemicosbull Tambieacuten llamados sistemas con tipadodeacutebilno estricto o dinaacutemicobull No exigen asociacioacuten expliacutecita de un tipoa cada variablebull Cada objeto conoce su tipo cuando se creadurante la ejecucioacutenbull Maacutes flexibilidadbull Peacuterdida de eficiencia durante la ejecucioacuten delprograma debida a la necesidad de mantenery comprobar el tipo de todos los objetosdurante la ejecucioacuten
Clasificacioacuten de Tesler
Ligadura es el proceso de asociar un atributo a un nombreEn el caso de las funciones el teacutermino ligadura (binding) serefiere a la conexioacuten o enlace entre una llamada a funcioacuteny el coacutedigo real ejecutado como resultado de la llamada[Joyanes 1998]
Ligadura estaacutetica otemprana
Ligadura dinaacutemica otardiacutea
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
TABLA DE CONTENIDO
PRESENTACIONbull HISTORIAbull EVOLUCIONbull CLASIFICACIONbull CARACTERISTICAS
bull LPOO REPRESENTATIVOS
bull REFERENCIASbull LECTURAS
COMPLEMENTARIAS
INDICE
bull INVESTIGACIONbull EJEMPLOS
bull GLOSARIO ldquoescritordquobull ILUSTRACIONES
bull CONCLUSIONbull BIBLIOGRAFIAbull INFOGRAFIA
JAVAJAVA
2 Clasificacion de los POO
Proyeccioacuten de las PC
SIMULA
1966 1970 1980 1990
Esta inicia a finales de los antildeos60 con el lenguaje simula disentildeado x norwegian computin centre seguido la decada de los 70 se monopoliza smartal en los 80 el auge de los POOentre los 80-83 stroutup desarrolla C++ y en los noventas la innovacion tecnologica de la tecnologia orientada a
objetos
Arquitecturas nuevas
SMARTALK 72
SMARTALK 80 C++
Objetive ndashc Eiffel
OO COBOL
ADA 95 SQL3 Delphi JAVA
bull EPOCAS DE LA HISTORIA DE LOS POO
CONEXION JAVACONEXION JAVA
NS OBJECT
NS OBJECT
NS RESPONDER
NS VIEW
NS CONTROL
Objeto base init retain release
Objeto base init retain release
Objeto base init retain release
Objeto base init retain release
NS OBJECTNS OBJECT NS OBJECT
OP OO
EJEMPLOSEJEMPLOSENTRADA
SALIDA
ENTRADA
SALIDA
PROCEDIMIENTOS A
PROCESOS A
PASOS A
OBJETOS A
ATRIBUTOS
METODOS
OBJETOS B
ATRIBUTOS
METODOS
OBJETOS C
ATRIBUTOS
METODOS
2121Existen varias clasificaciones de los LPOO
atendiendo a criterios de construccioacuten ocaracteriacutesticas especiacuteficas de los mismos
bull Clasificacioacuten de Peter Wegnerbull Clasificacioacuten de Teslerbull Clasificacioacuten seguacuten el origen
Clasificacioacuten deWegner bull Lenguajes Basados en Objetos Soportan objetos Es decirdisponen de componentes caracterizados por un conjunto deoperaciones (comportamiento) y un estadobull Lenguajes Basados en Clases Disponen ademaacutes de objetosde componentes tipo clase con operaciones y estado comuacutenbull Lenguajes Orientados al Objeto Ademaacutes de objetos y clasesofrecen mecanismos de herencia
Clasificacioacuten de WegnerBasado en objeto = encapsulamiento +identidad de objetosbull Basado en clases = basado en objetos +abstraccioacuten de conjuntobull Orientados a objetos = Basados en clases +herencia + autorrecursioacuten
BASADO EN OBJETOS
BASADO EN CLASES
ORIENTADO AL OBJETO
OBJETOS
ADA 95
C++
EIFFIEL
SMARLLTALK
DELPHI
ADA 873
CLIPPER 52
+ CLASES
+ HERENCIAS
CLU
Clasificacioacuten de Tesler
OODLObject ndash Oriented
Dinamic LanguajesSmalltlk Dylan
PODLProcess ndash Oriented Dinamic Languajes
Lisp Schame
OOSLObject ndash Oriented Static Languajes
C + +JAVA
POSLProcess-oriented Static Languajes
Pascal C
Dinamicos
Estaticos
Orientados al objetoOrientados al proceso
2323Clasificacioacuten de Tesler
Comprobacion estrictaComprobacion debilSin tipos
Un sistema de tipos son las reglas que la
establecen la utilizacion de los tipos su
correccion en un lenguaje de modelado o
relizacion
Chequeo de momento
Smalltalk
Dinamico
Rigurosidad
Sin Tipos
CLASIFICACION DE TESLER
Clasificacioacuten de Tesler
Beneficios del uso de lenguajes con tiposestrictosndash Evitan los fallos en tiempo de ejecucioacutenderivados de conflictos con los tiposndash Deteccioacuten temprana en tiempo de compilacioacutende erroresndash Declaracioacuten de tipos como ayuda para ladocumentacioacutenndash Eficiencia en el coacutedigo
Clasificacioacuten de Tesler
Tipificacioacuten o tipado (ldquotypingrdquo) es el proceso dedeclarar cuaacutel es el tipo de informacioacuten que puede
contener una variable
Sistemas de tipos estaacuteticosbull Tambieacuten llamados sistemas contipado fuerte o estrictobull Exigen asociacioacuten expliacutecita de un tipoa cada nombre declaradobull El tipo de cada objeto se ha de determinarcon anterioridad a la ejecucioacuten del programabull Menos flexible pero maacutes segurabull Ejecucioacuten maacutes eficiente al no tener quehacer comprobacioacuten de tipos en tiempo deEjecucioacuten
Sistemas de tipos dinaacutemicosbull Tambieacuten llamados sistemas con tipadodeacutebilno estricto o dinaacutemicobull No exigen asociacioacuten expliacutecita de un tipoa cada variablebull Cada objeto conoce su tipo cuando se creadurante la ejecucioacutenbull Maacutes flexibilidadbull Peacuterdida de eficiencia durante la ejecucioacuten delprograma debida a la necesidad de mantenery comprobar el tipo de todos los objetosdurante la ejecucioacuten
Clasificacioacuten de Tesler
Ligadura es el proceso de asociar un atributo a un nombreEn el caso de las funciones el teacutermino ligadura (binding) serefiere a la conexioacuten o enlace entre una llamada a funcioacuteny el coacutedigo real ejecutado como resultado de la llamada[Joyanes 1998]
Ligadura estaacutetica otemprana
Ligadura dinaacutemica otardiacutea
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
JAVAJAVA
2 Clasificacion de los POO
Proyeccioacuten de las PC
SIMULA
1966 1970 1980 1990
Esta inicia a finales de los antildeos60 con el lenguaje simula disentildeado x norwegian computin centre seguido la decada de los 70 se monopoliza smartal en los 80 el auge de los POOentre los 80-83 stroutup desarrolla C++ y en los noventas la innovacion tecnologica de la tecnologia orientada a
objetos
Arquitecturas nuevas
SMARTALK 72
SMARTALK 80 C++
Objetive ndashc Eiffel
OO COBOL
ADA 95 SQL3 Delphi JAVA
bull EPOCAS DE LA HISTORIA DE LOS POO
CONEXION JAVACONEXION JAVA
NS OBJECT
NS OBJECT
NS RESPONDER
NS VIEW
NS CONTROL
Objeto base init retain release
Objeto base init retain release
Objeto base init retain release
Objeto base init retain release
NS OBJECTNS OBJECT NS OBJECT
OP OO
EJEMPLOSEJEMPLOSENTRADA
SALIDA
ENTRADA
SALIDA
PROCEDIMIENTOS A
PROCESOS A
PASOS A
OBJETOS A
ATRIBUTOS
METODOS
OBJETOS B
ATRIBUTOS
METODOS
OBJETOS C
ATRIBUTOS
METODOS
2121Existen varias clasificaciones de los LPOO
atendiendo a criterios de construccioacuten ocaracteriacutesticas especiacuteficas de los mismos
bull Clasificacioacuten de Peter Wegnerbull Clasificacioacuten de Teslerbull Clasificacioacuten seguacuten el origen
Clasificacioacuten deWegner bull Lenguajes Basados en Objetos Soportan objetos Es decirdisponen de componentes caracterizados por un conjunto deoperaciones (comportamiento) y un estadobull Lenguajes Basados en Clases Disponen ademaacutes de objetosde componentes tipo clase con operaciones y estado comuacutenbull Lenguajes Orientados al Objeto Ademaacutes de objetos y clasesofrecen mecanismos de herencia
Clasificacioacuten de WegnerBasado en objeto = encapsulamiento +identidad de objetosbull Basado en clases = basado en objetos +abstraccioacuten de conjuntobull Orientados a objetos = Basados en clases +herencia + autorrecursioacuten
BASADO EN OBJETOS
BASADO EN CLASES
ORIENTADO AL OBJETO
OBJETOS
ADA 95
C++
EIFFIEL
SMARLLTALK
DELPHI
ADA 873
CLIPPER 52
+ CLASES
+ HERENCIAS
CLU
Clasificacioacuten de Tesler
OODLObject ndash Oriented
Dinamic LanguajesSmalltlk Dylan
PODLProcess ndash Oriented Dinamic Languajes
Lisp Schame
OOSLObject ndash Oriented Static Languajes
C + +JAVA
POSLProcess-oriented Static Languajes
Pascal C
Dinamicos
Estaticos
Orientados al objetoOrientados al proceso
2323Clasificacioacuten de Tesler
Comprobacion estrictaComprobacion debilSin tipos
Un sistema de tipos son las reglas que la
establecen la utilizacion de los tipos su
correccion en un lenguaje de modelado o
relizacion
Chequeo de momento
Smalltalk
Dinamico
Rigurosidad
Sin Tipos
CLASIFICACION DE TESLER
Clasificacioacuten de Tesler
Beneficios del uso de lenguajes con tiposestrictosndash Evitan los fallos en tiempo de ejecucioacutenderivados de conflictos con los tiposndash Deteccioacuten temprana en tiempo de compilacioacutende erroresndash Declaracioacuten de tipos como ayuda para ladocumentacioacutenndash Eficiencia en el coacutedigo
Clasificacioacuten de Tesler
Tipificacioacuten o tipado (ldquotypingrdquo) es el proceso dedeclarar cuaacutel es el tipo de informacioacuten que puede
contener una variable
Sistemas de tipos estaacuteticosbull Tambieacuten llamados sistemas contipado fuerte o estrictobull Exigen asociacioacuten expliacutecita de un tipoa cada nombre declaradobull El tipo de cada objeto se ha de determinarcon anterioridad a la ejecucioacuten del programabull Menos flexible pero maacutes segurabull Ejecucioacuten maacutes eficiente al no tener quehacer comprobacioacuten de tipos en tiempo deEjecucioacuten
Sistemas de tipos dinaacutemicosbull Tambieacuten llamados sistemas con tipadodeacutebilno estricto o dinaacutemicobull No exigen asociacioacuten expliacutecita de un tipoa cada variablebull Cada objeto conoce su tipo cuando se creadurante la ejecucioacutenbull Maacutes flexibilidadbull Peacuterdida de eficiencia durante la ejecucioacuten delprograma debida a la necesidad de mantenery comprobar el tipo de todos los objetosdurante la ejecucioacuten
Clasificacioacuten de Tesler
Ligadura es el proceso de asociar un atributo a un nombreEn el caso de las funciones el teacutermino ligadura (binding) serefiere a la conexioacuten o enlace entre una llamada a funcioacuteny el coacutedigo real ejecutado como resultado de la llamada[Joyanes 1998]
Ligadura estaacutetica otemprana
Ligadura dinaacutemica otardiacutea
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
2 Clasificacion de los POO
Proyeccioacuten de las PC
SIMULA
1966 1970 1980 1990
Esta inicia a finales de los antildeos60 con el lenguaje simula disentildeado x norwegian computin centre seguido la decada de los 70 se monopoliza smartal en los 80 el auge de los POOentre los 80-83 stroutup desarrolla C++ y en los noventas la innovacion tecnologica de la tecnologia orientada a
objetos
Arquitecturas nuevas
SMARTALK 72
SMARTALK 80 C++
Objetive ndashc Eiffel
OO COBOL
ADA 95 SQL3 Delphi JAVA
bull EPOCAS DE LA HISTORIA DE LOS POO
CONEXION JAVACONEXION JAVA
NS OBJECT
NS OBJECT
NS RESPONDER
NS VIEW
NS CONTROL
Objeto base init retain release
Objeto base init retain release
Objeto base init retain release
Objeto base init retain release
NS OBJECTNS OBJECT NS OBJECT
OP OO
EJEMPLOSEJEMPLOSENTRADA
SALIDA
ENTRADA
SALIDA
PROCEDIMIENTOS A
PROCESOS A
PASOS A
OBJETOS A
ATRIBUTOS
METODOS
OBJETOS B
ATRIBUTOS
METODOS
OBJETOS C
ATRIBUTOS
METODOS
2121Existen varias clasificaciones de los LPOO
atendiendo a criterios de construccioacuten ocaracteriacutesticas especiacuteficas de los mismos
bull Clasificacioacuten de Peter Wegnerbull Clasificacioacuten de Teslerbull Clasificacioacuten seguacuten el origen
Clasificacioacuten deWegner bull Lenguajes Basados en Objetos Soportan objetos Es decirdisponen de componentes caracterizados por un conjunto deoperaciones (comportamiento) y un estadobull Lenguajes Basados en Clases Disponen ademaacutes de objetosde componentes tipo clase con operaciones y estado comuacutenbull Lenguajes Orientados al Objeto Ademaacutes de objetos y clasesofrecen mecanismos de herencia
Clasificacioacuten de WegnerBasado en objeto = encapsulamiento +identidad de objetosbull Basado en clases = basado en objetos +abstraccioacuten de conjuntobull Orientados a objetos = Basados en clases +herencia + autorrecursioacuten
BASADO EN OBJETOS
BASADO EN CLASES
ORIENTADO AL OBJETO
OBJETOS
ADA 95
C++
EIFFIEL
SMARLLTALK
DELPHI
ADA 873
CLIPPER 52
+ CLASES
+ HERENCIAS
CLU
Clasificacioacuten de Tesler
OODLObject ndash Oriented
Dinamic LanguajesSmalltlk Dylan
PODLProcess ndash Oriented Dinamic Languajes
Lisp Schame
OOSLObject ndash Oriented Static Languajes
C + +JAVA
POSLProcess-oriented Static Languajes
Pascal C
Dinamicos
Estaticos
Orientados al objetoOrientados al proceso
2323Clasificacioacuten de Tesler
Comprobacion estrictaComprobacion debilSin tipos
Un sistema de tipos son las reglas que la
establecen la utilizacion de los tipos su
correccion en un lenguaje de modelado o
relizacion
Chequeo de momento
Smalltalk
Dinamico
Rigurosidad
Sin Tipos
CLASIFICACION DE TESLER
Clasificacioacuten de Tesler
Beneficios del uso de lenguajes con tiposestrictosndash Evitan los fallos en tiempo de ejecucioacutenderivados de conflictos con los tiposndash Deteccioacuten temprana en tiempo de compilacioacutende erroresndash Declaracioacuten de tipos como ayuda para ladocumentacioacutenndash Eficiencia en el coacutedigo
Clasificacioacuten de Tesler
Tipificacioacuten o tipado (ldquotypingrdquo) es el proceso dedeclarar cuaacutel es el tipo de informacioacuten que puede
contener una variable
Sistemas de tipos estaacuteticosbull Tambieacuten llamados sistemas contipado fuerte o estrictobull Exigen asociacioacuten expliacutecita de un tipoa cada nombre declaradobull El tipo de cada objeto se ha de determinarcon anterioridad a la ejecucioacuten del programabull Menos flexible pero maacutes segurabull Ejecucioacuten maacutes eficiente al no tener quehacer comprobacioacuten de tipos en tiempo deEjecucioacuten
Sistemas de tipos dinaacutemicosbull Tambieacuten llamados sistemas con tipadodeacutebilno estricto o dinaacutemicobull No exigen asociacioacuten expliacutecita de un tipoa cada variablebull Cada objeto conoce su tipo cuando se creadurante la ejecucioacutenbull Maacutes flexibilidadbull Peacuterdida de eficiencia durante la ejecucioacuten delprograma debida a la necesidad de mantenery comprobar el tipo de todos los objetosdurante la ejecucioacuten
Clasificacioacuten de Tesler
Ligadura es el proceso de asociar un atributo a un nombreEn el caso de las funciones el teacutermino ligadura (binding) serefiere a la conexioacuten o enlace entre una llamada a funcioacuteny el coacutedigo real ejecutado como resultado de la llamada[Joyanes 1998]
Ligadura estaacutetica otemprana
Ligadura dinaacutemica otardiacutea
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
Proyeccioacuten de las PC
SIMULA
1966 1970 1980 1990
Esta inicia a finales de los antildeos60 con el lenguaje simula disentildeado x norwegian computin centre seguido la decada de los 70 se monopoliza smartal en los 80 el auge de los POOentre los 80-83 stroutup desarrolla C++ y en los noventas la innovacion tecnologica de la tecnologia orientada a
objetos
Arquitecturas nuevas
SMARTALK 72
SMARTALK 80 C++
Objetive ndashc Eiffel
OO COBOL
ADA 95 SQL3 Delphi JAVA
bull EPOCAS DE LA HISTORIA DE LOS POO
CONEXION JAVACONEXION JAVA
NS OBJECT
NS OBJECT
NS RESPONDER
NS VIEW
NS CONTROL
Objeto base init retain release
Objeto base init retain release
Objeto base init retain release
Objeto base init retain release
NS OBJECTNS OBJECT NS OBJECT
OP OO
EJEMPLOSEJEMPLOSENTRADA
SALIDA
ENTRADA
SALIDA
PROCEDIMIENTOS A
PROCESOS A
PASOS A
OBJETOS A
ATRIBUTOS
METODOS
OBJETOS B
ATRIBUTOS
METODOS
OBJETOS C
ATRIBUTOS
METODOS
2121Existen varias clasificaciones de los LPOO
atendiendo a criterios de construccioacuten ocaracteriacutesticas especiacuteficas de los mismos
bull Clasificacioacuten de Peter Wegnerbull Clasificacioacuten de Teslerbull Clasificacioacuten seguacuten el origen
Clasificacioacuten deWegner bull Lenguajes Basados en Objetos Soportan objetos Es decirdisponen de componentes caracterizados por un conjunto deoperaciones (comportamiento) y un estadobull Lenguajes Basados en Clases Disponen ademaacutes de objetosde componentes tipo clase con operaciones y estado comuacutenbull Lenguajes Orientados al Objeto Ademaacutes de objetos y clasesofrecen mecanismos de herencia
Clasificacioacuten de WegnerBasado en objeto = encapsulamiento +identidad de objetosbull Basado en clases = basado en objetos +abstraccioacuten de conjuntobull Orientados a objetos = Basados en clases +herencia + autorrecursioacuten
BASADO EN OBJETOS
BASADO EN CLASES
ORIENTADO AL OBJETO
OBJETOS
ADA 95
C++
EIFFIEL
SMARLLTALK
DELPHI
ADA 873
CLIPPER 52
+ CLASES
+ HERENCIAS
CLU
Clasificacioacuten de Tesler
OODLObject ndash Oriented
Dinamic LanguajesSmalltlk Dylan
PODLProcess ndash Oriented Dinamic Languajes
Lisp Schame
OOSLObject ndash Oriented Static Languajes
C + +JAVA
POSLProcess-oriented Static Languajes
Pascal C
Dinamicos
Estaticos
Orientados al objetoOrientados al proceso
2323Clasificacioacuten de Tesler
Comprobacion estrictaComprobacion debilSin tipos
Un sistema de tipos son las reglas que la
establecen la utilizacion de los tipos su
correccion en un lenguaje de modelado o
relizacion
Chequeo de momento
Smalltalk
Dinamico
Rigurosidad
Sin Tipos
CLASIFICACION DE TESLER
Clasificacioacuten de Tesler
Beneficios del uso de lenguajes con tiposestrictosndash Evitan los fallos en tiempo de ejecucioacutenderivados de conflictos con los tiposndash Deteccioacuten temprana en tiempo de compilacioacutende erroresndash Declaracioacuten de tipos como ayuda para ladocumentacioacutenndash Eficiencia en el coacutedigo
Clasificacioacuten de Tesler
Tipificacioacuten o tipado (ldquotypingrdquo) es el proceso dedeclarar cuaacutel es el tipo de informacioacuten que puede
contener una variable
Sistemas de tipos estaacuteticosbull Tambieacuten llamados sistemas contipado fuerte o estrictobull Exigen asociacioacuten expliacutecita de un tipoa cada nombre declaradobull El tipo de cada objeto se ha de determinarcon anterioridad a la ejecucioacuten del programabull Menos flexible pero maacutes segurabull Ejecucioacuten maacutes eficiente al no tener quehacer comprobacioacuten de tipos en tiempo deEjecucioacuten
Sistemas de tipos dinaacutemicosbull Tambieacuten llamados sistemas con tipadodeacutebilno estricto o dinaacutemicobull No exigen asociacioacuten expliacutecita de un tipoa cada variablebull Cada objeto conoce su tipo cuando se creadurante la ejecucioacutenbull Maacutes flexibilidadbull Peacuterdida de eficiencia durante la ejecucioacuten delprograma debida a la necesidad de mantenery comprobar el tipo de todos los objetosdurante la ejecucioacuten
Clasificacioacuten de Tesler
Ligadura es el proceso de asociar un atributo a un nombreEn el caso de las funciones el teacutermino ligadura (binding) serefiere a la conexioacuten o enlace entre una llamada a funcioacuteny el coacutedigo real ejecutado como resultado de la llamada[Joyanes 1998]
Ligadura estaacutetica otemprana
Ligadura dinaacutemica otardiacutea
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
CONEXION JAVACONEXION JAVA
NS OBJECT
NS OBJECT
NS RESPONDER
NS VIEW
NS CONTROL
Objeto base init retain release
Objeto base init retain release
Objeto base init retain release
Objeto base init retain release
NS OBJECTNS OBJECT NS OBJECT
OP OO
EJEMPLOSEJEMPLOSENTRADA
SALIDA
ENTRADA
SALIDA
PROCEDIMIENTOS A
PROCESOS A
PASOS A
OBJETOS A
ATRIBUTOS
METODOS
OBJETOS B
ATRIBUTOS
METODOS
OBJETOS C
ATRIBUTOS
METODOS
2121Existen varias clasificaciones de los LPOO
atendiendo a criterios de construccioacuten ocaracteriacutesticas especiacuteficas de los mismos
bull Clasificacioacuten de Peter Wegnerbull Clasificacioacuten de Teslerbull Clasificacioacuten seguacuten el origen
Clasificacioacuten deWegner bull Lenguajes Basados en Objetos Soportan objetos Es decirdisponen de componentes caracterizados por un conjunto deoperaciones (comportamiento) y un estadobull Lenguajes Basados en Clases Disponen ademaacutes de objetosde componentes tipo clase con operaciones y estado comuacutenbull Lenguajes Orientados al Objeto Ademaacutes de objetos y clasesofrecen mecanismos de herencia
Clasificacioacuten de WegnerBasado en objeto = encapsulamiento +identidad de objetosbull Basado en clases = basado en objetos +abstraccioacuten de conjuntobull Orientados a objetos = Basados en clases +herencia + autorrecursioacuten
BASADO EN OBJETOS
BASADO EN CLASES
ORIENTADO AL OBJETO
OBJETOS
ADA 95
C++
EIFFIEL
SMARLLTALK
DELPHI
ADA 873
CLIPPER 52
+ CLASES
+ HERENCIAS
CLU
Clasificacioacuten de Tesler
OODLObject ndash Oriented
Dinamic LanguajesSmalltlk Dylan
PODLProcess ndash Oriented Dinamic Languajes
Lisp Schame
OOSLObject ndash Oriented Static Languajes
C + +JAVA
POSLProcess-oriented Static Languajes
Pascal C
Dinamicos
Estaticos
Orientados al objetoOrientados al proceso
2323Clasificacioacuten de Tesler
Comprobacion estrictaComprobacion debilSin tipos
Un sistema de tipos son las reglas que la
establecen la utilizacion de los tipos su
correccion en un lenguaje de modelado o
relizacion
Chequeo de momento
Smalltalk
Dinamico
Rigurosidad
Sin Tipos
CLASIFICACION DE TESLER
Clasificacioacuten de Tesler
Beneficios del uso de lenguajes con tiposestrictosndash Evitan los fallos en tiempo de ejecucioacutenderivados de conflictos con los tiposndash Deteccioacuten temprana en tiempo de compilacioacutende erroresndash Declaracioacuten de tipos como ayuda para ladocumentacioacutenndash Eficiencia en el coacutedigo
Clasificacioacuten de Tesler
Tipificacioacuten o tipado (ldquotypingrdquo) es el proceso dedeclarar cuaacutel es el tipo de informacioacuten que puede
contener una variable
Sistemas de tipos estaacuteticosbull Tambieacuten llamados sistemas contipado fuerte o estrictobull Exigen asociacioacuten expliacutecita de un tipoa cada nombre declaradobull El tipo de cada objeto se ha de determinarcon anterioridad a la ejecucioacuten del programabull Menos flexible pero maacutes segurabull Ejecucioacuten maacutes eficiente al no tener quehacer comprobacioacuten de tipos en tiempo deEjecucioacuten
Sistemas de tipos dinaacutemicosbull Tambieacuten llamados sistemas con tipadodeacutebilno estricto o dinaacutemicobull No exigen asociacioacuten expliacutecita de un tipoa cada variablebull Cada objeto conoce su tipo cuando se creadurante la ejecucioacutenbull Maacutes flexibilidadbull Peacuterdida de eficiencia durante la ejecucioacuten delprograma debida a la necesidad de mantenery comprobar el tipo de todos los objetosdurante la ejecucioacuten
Clasificacioacuten de Tesler
Ligadura es el proceso de asociar un atributo a un nombreEn el caso de las funciones el teacutermino ligadura (binding) serefiere a la conexioacuten o enlace entre una llamada a funcioacuteny el coacutedigo real ejecutado como resultado de la llamada[Joyanes 1998]
Ligadura estaacutetica otemprana
Ligadura dinaacutemica otardiacutea
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
OP OO
EJEMPLOSEJEMPLOSENTRADA
SALIDA
ENTRADA
SALIDA
PROCEDIMIENTOS A
PROCESOS A
PASOS A
OBJETOS A
ATRIBUTOS
METODOS
OBJETOS B
ATRIBUTOS
METODOS
OBJETOS C
ATRIBUTOS
METODOS
2121Existen varias clasificaciones de los LPOO
atendiendo a criterios de construccioacuten ocaracteriacutesticas especiacuteficas de los mismos
bull Clasificacioacuten de Peter Wegnerbull Clasificacioacuten de Teslerbull Clasificacioacuten seguacuten el origen
Clasificacioacuten deWegner bull Lenguajes Basados en Objetos Soportan objetos Es decirdisponen de componentes caracterizados por un conjunto deoperaciones (comportamiento) y un estadobull Lenguajes Basados en Clases Disponen ademaacutes de objetosde componentes tipo clase con operaciones y estado comuacutenbull Lenguajes Orientados al Objeto Ademaacutes de objetos y clasesofrecen mecanismos de herencia
Clasificacioacuten de WegnerBasado en objeto = encapsulamiento +identidad de objetosbull Basado en clases = basado en objetos +abstraccioacuten de conjuntobull Orientados a objetos = Basados en clases +herencia + autorrecursioacuten
BASADO EN OBJETOS
BASADO EN CLASES
ORIENTADO AL OBJETO
OBJETOS
ADA 95
C++
EIFFIEL
SMARLLTALK
DELPHI
ADA 873
CLIPPER 52
+ CLASES
+ HERENCIAS
CLU
Clasificacioacuten de Tesler
OODLObject ndash Oriented
Dinamic LanguajesSmalltlk Dylan
PODLProcess ndash Oriented Dinamic Languajes
Lisp Schame
OOSLObject ndash Oriented Static Languajes
C + +JAVA
POSLProcess-oriented Static Languajes
Pascal C
Dinamicos
Estaticos
Orientados al objetoOrientados al proceso
2323Clasificacioacuten de Tesler
Comprobacion estrictaComprobacion debilSin tipos
Un sistema de tipos son las reglas que la
establecen la utilizacion de los tipos su
correccion en un lenguaje de modelado o
relizacion
Chequeo de momento
Smalltalk
Dinamico
Rigurosidad
Sin Tipos
CLASIFICACION DE TESLER
Clasificacioacuten de Tesler
Beneficios del uso de lenguajes con tiposestrictosndash Evitan los fallos en tiempo de ejecucioacutenderivados de conflictos con los tiposndash Deteccioacuten temprana en tiempo de compilacioacutende erroresndash Declaracioacuten de tipos como ayuda para ladocumentacioacutenndash Eficiencia en el coacutedigo
Clasificacioacuten de Tesler
Tipificacioacuten o tipado (ldquotypingrdquo) es el proceso dedeclarar cuaacutel es el tipo de informacioacuten que puede
contener una variable
Sistemas de tipos estaacuteticosbull Tambieacuten llamados sistemas contipado fuerte o estrictobull Exigen asociacioacuten expliacutecita de un tipoa cada nombre declaradobull El tipo de cada objeto se ha de determinarcon anterioridad a la ejecucioacuten del programabull Menos flexible pero maacutes segurabull Ejecucioacuten maacutes eficiente al no tener quehacer comprobacioacuten de tipos en tiempo deEjecucioacuten
Sistemas de tipos dinaacutemicosbull Tambieacuten llamados sistemas con tipadodeacutebilno estricto o dinaacutemicobull No exigen asociacioacuten expliacutecita de un tipoa cada variablebull Cada objeto conoce su tipo cuando se creadurante la ejecucioacutenbull Maacutes flexibilidadbull Peacuterdida de eficiencia durante la ejecucioacuten delprograma debida a la necesidad de mantenery comprobar el tipo de todos los objetosdurante la ejecucioacuten
Clasificacioacuten de Tesler
Ligadura es el proceso de asociar un atributo a un nombreEn el caso de las funciones el teacutermino ligadura (binding) serefiere a la conexioacuten o enlace entre una llamada a funcioacuteny el coacutedigo real ejecutado como resultado de la llamada[Joyanes 1998]
Ligadura estaacutetica otemprana
Ligadura dinaacutemica otardiacutea
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
2121Existen varias clasificaciones de los LPOO
atendiendo a criterios de construccioacuten ocaracteriacutesticas especiacuteficas de los mismos
bull Clasificacioacuten de Peter Wegnerbull Clasificacioacuten de Teslerbull Clasificacioacuten seguacuten el origen
Clasificacioacuten deWegner bull Lenguajes Basados en Objetos Soportan objetos Es decirdisponen de componentes caracterizados por un conjunto deoperaciones (comportamiento) y un estadobull Lenguajes Basados en Clases Disponen ademaacutes de objetosde componentes tipo clase con operaciones y estado comuacutenbull Lenguajes Orientados al Objeto Ademaacutes de objetos y clasesofrecen mecanismos de herencia
Clasificacioacuten de WegnerBasado en objeto = encapsulamiento +identidad de objetosbull Basado en clases = basado en objetos +abstraccioacuten de conjuntobull Orientados a objetos = Basados en clases +herencia + autorrecursioacuten
BASADO EN OBJETOS
BASADO EN CLASES
ORIENTADO AL OBJETO
OBJETOS
ADA 95
C++
EIFFIEL
SMARLLTALK
DELPHI
ADA 873
CLIPPER 52
+ CLASES
+ HERENCIAS
CLU
Clasificacioacuten de Tesler
OODLObject ndash Oriented
Dinamic LanguajesSmalltlk Dylan
PODLProcess ndash Oriented Dinamic Languajes
Lisp Schame
OOSLObject ndash Oriented Static Languajes
C + +JAVA
POSLProcess-oriented Static Languajes
Pascal C
Dinamicos
Estaticos
Orientados al objetoOrientados al proceso
2323Clasificacioacuten de Tesler
Comprobacion estrictaComprobacion debilSin tipos
Un sistema de tipos son las reglas que la
establecen la utilizacion de los tipos su
correccion en un lenguaje de modelado o
relizacion
Chequeo de momento
Smalltalk
Dinamico
Rigurosidad
Sin Tipos
CLASIFICACION DE TESLER
Clasificacioacuten de Tesler
Beneficios del uso de lenguajes con tiposestrictosndash Evitan los fallos en tiempo de ejecucioacutenderivados de conflictos con los tiposndash Deteccioacuten temprana en tiempo de compilacioacutende erroresndash Declaracioacuten de tipos como ayuda para ladocumentacioacutenndash Eficiencia en el coacutedigo
Clasificacioacuten de Tesler
Tipificacioacuten o tipado (ldquotypingrdquo) es el proceso dedeclarar cuaacutel es el tipo de informacioacuten que puede
contener una variable
Sistemas de tipos estaacuteticosbull Tambieacuten llamados sistemas contipado fuerte o estrictobull Exigen asociacioacuten expliacutecita de un tipoa cada nombre declaradobull El tipo de cada objeto se ha de determinarcon anterioridad a la ejecucioacuten del programabull Menos flexible pero maacutes segurabull Ejecucioacuten maacutes eficiente al no tener quehacer comprobacioacuten de tipos en tiempo deEjecucioacuten
Sistemas de tipos dinaacutemicosbull Tambieacuten llamados sistemas con tipadodeacutebilno estricto o dinaacutemicobull No exigen asociacioacuten expliacutecita de un tipoa cada variablebull Cada objeto conoce su tipo cuando se creadurante la ejecucioacutenbull Maacutes flexibilidadbull Peacuterdida de eficiencia durante la ejecucioacuten delprograma debida a la necesidad de mantenery comprobar el tipo de todos los objetosdurante la ejecucioacuten
Clasificacioacuten de Tesler
Ligadura es el proceso de asociar un atributo a un nombreEn el caso de las funciones el teacutermino ligadura (binding) serefiere a la conexioacuten o enlace entre una llamada a funcioacuteny el coacutedigo real ejecutado como resultado de la llamada[Joyanes 1998]
Ligadura estaacutetica otemprana
Ligadura dinaacutemica otardiacutea
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
Clasificacioacuten de WegnerBasado en objeto = encapsulamiento +identidad de objetosbull Basado en clases = basado en objetos +abstraccioacuten de conjuntobull Orientados a objetos = Basados en clases +herencia + autorrecursioacuten
BASADO EN OBJETOS
BASADO EN CLASES
ORIENTADO AL OBJETO
OBJETOS
ADA 95
C++
EIFFIEL
SMARLLTALK
DELPHI
ADA 873
CLIPPER 52
+ CLASES
+ HERENCIAS
CLU
Clasificacioacuten de Tesler
OODLObject ndash Oriented
Dinamic LanguajesSmalltlk Dylan
PODLProcess ndash Oriented Dinamic Languajes
Lisp Schame
OOSLObject ndash Oriented Static Languajes
C + +JAVA
POSLProcess-oriented Static Languajes
Pascal C
Dinamicos
Estaticos
Orientados al objetoOrientados al proceso
2323Clasificacioacuten de Tesler
Comprobacion estrictaComprobacion debilSin tipos
Un sistema de tipos son las reglas que la
establecen la utilizacion de los tipos su
correccion en un lenguaje de modelado o
relizacion
Chequeo de momento
Smalltalk
Dinamico
Rigurosidad
Sin Tipos
CLASIFICACION DE TESLER
Clasificacioacuten de Tesler
Beneficios del uso de lenguajes con tiposestrictosndash Evitan los fallos en tiempo de ejecucioacutenderivados de conflictos con los tiposndash Deteccioacuten temprana en tiempo de compilacioacutende erroresndash Declaracioacuten de tipos como ayuda para ladocumentacioacutenndash Eficiencia en el coacutedigo
Clasificacioacuten de Tesler
Tipificacioacuten o tipado (ldquotypingrdquo) es el proceso dedeclarar cuaacutel es el tipo de informacioacuten que puede
contener una variable
Sistemas de tipos estaacuteticosbull Tambieacuten llamados sistemas contipado fuerte o estrictobull Exigen asociacioacuten expliacutecita de un tipoa cada nombre declaradobull El tipo de cada objeto se ha de determinarcon anterioridad a la ejecucioacuten del programabull Menos flexible pero maacutes segurabull Ejecucioacuten maacutes eficiente al no tener quehacer comprobacioacuten de tipos en tiempo deEjecucioacuten
Sistemas de tipos dinaacutemicosbull Tambieacuten llamados sistemas con tipadodeacutebilno estricto o dinaacutemicobull No exigen asociacioacuten expliacutecita de un tipoa cada variablebull Cada objeto conoce su tipo cuando se creadurante la ejecucioacutenbull Maacutes flexibilidadbull Peacuterdida de eficiencia durante la ejecucioacuten delprograma debida a la necesidad de mantenery comprobar el tipo de todos los objetosdurante la ejecucioacuten
Clasificacioacuten de Tesler
Ligadura es el proceso de asociar un atributo a un nombreEn el caso de las funciones el teacutermino ligadura (binding) serefiere a la conexioacuten o enlace entre una llamada a funcioacuteny el coacutedigo real ejecutado como resultado de la llamada[Joyanes 1998]
Ligadura estaacutetica otemprana
Ligadura dinaacutemica otardiacutea
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
Clasificacioacuten de Tesler
OODLObject ndash Oriented
Dinamic LanguajesSmalltlk Dylan
PODLProcess ndash Oriented Dinamic Languajes
Lisp Schame
OOSLObject ndash Oriented Static Languajes
C + +JAVA
POSLProcess-oriented Static Languajes
Pascal C
Dinamicos
Estaticos
Orientados al objetoOrientados al proceso
2323Clasificacioacuten de Tesler
Comprobacion estrictaComprobacion debilSin tipos
Un sistema de tipos son las reglas que la
establecen la utilizacion de los tipos su
correccion en un lenguaje de modelado o
relizacion
Chequeo de momento
Smalltalk
Dinamico
Rigurosidad
Sin Tipos
CLASIFICACION DE TESLER
Clasificacioacuten de Tesler
Beneficios del uso de lenguajes con tiposestrictosndash Evitan los fallos en tiempo de ejecucioacutenderivados de conflictos con los tiposndash Deteccioacuten temprana en tiempo de compilacioacutende erroresndash Declaracioacuten de tipos como ayuda para ladocumentacioacutenndash Eficiencia en el coacutedigo
Clasificacioacuten de Tesler
Tipificacioacuten o tipado (ldquotypingrdquo) es el proceso dedeclarar cuaacutel es el tipo de informacioacuten que puede
contener una variable
Sistemas de tipos estaacuteticosbull Tambieacuten llamados sistemas contipado fuerte o estrictobull Exigen asociacioacuten expliacutecita de un tipoa cada nombre declaradobull El tipo de cada objeto se ha de determinarcon anterioridad a la ejecucioacuten del programabull Menos flexible pero maacutes segurabull Ejecucioacuten maacutes eficiente al no tener quehacer comprobacioacuten de tipos en tiempo deEjecucioacuten
Sistemas de tipos dinaacutemicosbull Tambieacuten llamados sistemas con tipadodeacutebilno estricto o dinaacutemicobull No exigen asociacioacuten expliacutecita de un tipoa cada variablebull Cada objeto conoce su tipo cuando se creadurante la ejecucioacutenbull Maacutes flexibilidadbull Peacuterdida de eficiencia durante la ejecucioacuten delprograma debida a la necesidad de mantenery comprobar el tipo de todos los objetosdurante la ejecucioacuten
Clasificacioacuten de Tesler
Ligadura es el proceso de asociar un atributo a un nombreEn el caso de las funciones el teacutermino ligadura (binding) serefiere a la conexioacuten o enlace entre una llamada a funcioacuteny el coacutedigo real ejecutado como resultado de la llamada[Joyanes 1998]
Ligadura estaacutetica otemprana
Ligadura dinaacutemica otardiacutea
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
2323Clasificacioacuten de Tesler
Comprobacion estrictaComprobacion debilSin tipos
Un sistema de tipos son las reglas que la
establecen la utilizacion de los tipos su
correccion en un lenguaje de modelado o
relizacion
Chequeo de momento
Smalltalk
Dinamico
Rigurosidad
Sin Tipos
CLASIFICACION DE TESLER
Clasificacioacuten de Tesler
Beneficios del uso de lenguajes con tiposestrictosndash Evitan los fallos en tiempo de ejecucioacutenderivados de conflictos con los tiposndash Deteccioacuten temprana en tiempo de compilacioacutende erroresndash Declaracioacuten de tipos como ayuda para ladocumentacioacutenndash Eficiencia en el coacutedigo
Clasificacioacuten de Tesler
Tipificacioacuten o tipado (ldquotypingrdquo) es el proceso dedeclarar cuaacutel es el tipo de informacioacuten que puede
contener una variable
Sistemas de tipos estaacuteticosbull Tambieacuten llamados sistemas contipado fuerte o estrictobull Exigen asociacioacuten expliacutecita de un tipoa cada nombre declaradobull El tipo de cada objeto se ha de determinarcon anterioridad a la ejecucioacuten del programabull Menos flexible pero maacutes segurabull Ejecucioacuten maacutes eficiente al no tener quehacer comprobacioacuten de tipos en tiempo deEjecucioacuten
Sistemas de tipos dinaacutemicosbull Tambieacuten llamados sistemas con tipadodeacutebilno estricto o dinaacutemicobull No exigen asociacioacuten expliacutecita de un tipoa cada variablebull Cada objeto conoce su tipo cuando se creadurante la ejecucioacutenbull Maacutes flexibilidadbull Peacuterdida de eficiencia durante la ejecucioacuten delprograma debida a la necesidad de mantenery comprobar el tipo de todos los objetosdurante la ejecucioacuten
Clasificacioacuten de Tesler
Ligadura es el proceso de asociar un atributo a un nombreEn el caso de las funciones el teacutermino ligadura (binding) serefiere a la conexioacuten o enlace entre una llamada a funcioacuteny el coacutedigo real ejecutado como resultado de la llamada[Joyanes 1998]
Ligadura estaacutetica otemprana
Ligadura dinaacutemica otardiacutea
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
Chequeo de momento
Smalltalk
Dinamico
Rigurosidad
Sin Tipos
CLASIFICACION DE TESLER
Clasificacioacuten de Tesler
Beneficios del uso de lenguajes con tiposestrictosndash Evitan los fallos en tiempo de ejecucioacutenderivados de conflictos con los tiposndash Deteccioacuten temprana en tiempo de compilacioacutende erroresndash Declaracioacuten de tipos como ayuda para ladocumentacioacutenndash Eficiencia en el coacutedigo
Clasificacioacuten de Tesler
Tipificacioacuten o tipado (ldquotypingrdquo) es el proceso dedeclarar cuaacutel es el tipo de informacioacuten que puede
contener una variable
Sistemas de tipos estaacuteticosbull Tambieacuten llamados sistemas contipado fuerte o estrictobull Exigen asociacioacuten expliacutecita de un tipoa cada nombre declaradobull El tipo de cada objeto se ha de determinarcon anterioridad a la ejecucioacuten del programabull Menos flexible pero maacutes segurabull Ejecucioacuten maacutes eficiente al no tener quehacer comprobacioacuten de tipos en tiempo deEjecucioacuten
Sistemas de tipos dinaacutemicosbull Tambieacuten llamados sistemas con tipadodeacutebilno estricto o dinaacutemicobull No exigen asociacioacuten expliacutecita de un tipoa cada variablebull Cada objeto conoce su tipo cuando se creadurante la ejecucioacutenbull Maacutes flexibilidadbull Peacuterdida de eficiencia durante la ejecucioacuten delprograma debida a la necesidad de mantenery comprobar el tipo de todos los objetosdurante la ejecucioacuten
Clasificacioacuten de Tesler
Ligadura es el proceso de asociar un atributo a un nombreEn el caso de las funciones el teacutermino ligadura (binding) serefiere a la conexioacuten o enlace entre una llamada a funcioacuteny el coacutedigo real ejecutado como resultado de la llamada[Joyanes 1998]
Ligadura estaacutetica otemprana
Ligadura dinaacutemica otardiacutea
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
Clasificacioacuten de Tesler
Beneficios del uso de lenguajes con tiposestrictosndash Evitan los fallos en tiempo de ejecucioacutenderivados de conflictos con los tiposndash Deteccioacuten temprana en tiempo de compilacioacutende erroresndash Declaracioacuten de tipos como ayuda para ladocumentacioacutenndash Eficiencia en el coacutedigo
Clasificacioacuten de Tesler
Tipificacioacuten o tipado (ldquotypingrdquo) es el proceso dedeclarar cuaacutel es el tipo de informacioacuten que puede
contener una variable
Sistemas de tipos estaacuteticosbull Tambieacuten llamados sistemas contipado fuerte o estrictobull Exigen asociacioacuten expliacutecita de un tipoa cada nombre declaradobull El tipo de cada objeto se ha de determinarcon anterioridad a la ejecucioacuten del programabull Menos flexible pero maacutes segurabull Ejecucioacuten maacutes eficiente al no tener quehacer comprobacioacuten de tipos en tiempo deEjecucioacuten
Sistemas de tipos dinaacutemicosbull Tambieacuten llamados sistemas con tipadodeacutebilno estricto o dinaacutemicobull No exigen asociacioacuten expliacutecita de un tipoa cada variablebull Cada objeto conoce su tipo cuando se creadurante la ejecucioacutenbull Maacutes flexibilidadbull Peacuterdida de eficiencia durante la ejecucioacuten delprograma debida a la necesidad de mantenery comprobar el tipo de todos los objetosdurante la ejecucioacuten
Clasificacioacuten de Tesler
Ligadura es el proceso de asociar un atributo a un nombreEn el caso de las funciones el teacutermino ligadura (binding) serefiere a la conexioacuten o enlace entre una llamada a funcioacuteny el coacutedigo real ejecutado como resultado de la llamada[Joyanes 1998]
Ligadura estaacutetica otemprana
Ligadura dinaacutemica otardiacutea
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
Clasificacioacuten de Tesler
Tipificacioacuten o tipado (ldquotypingrdquo) es el proceso dedeclarar cuaacutel es el tipo de informacioacuten que puede
contener una variable
Sistemas de tipos estaacuteticosbull Tambieacuten llamados sistemas contipado fuerte o estrictobull Exigen asociacioacuten expliacutecita de un tipoa cada nombre declaradobull El tipo de cada objeto se ha de determinarcon anterioridad a la ejecucioacuten del programabull Menos flexible pero maacutes segurabull Ejecucioacuten maacutes eficiente al no tener quehacer comprobacioacuten de tipos en tiempo deEjecucioacuten
Sistemas de tipos dinaacutemicosbull Tambieacuten llamados sistemas con tipadodeacutebilno estricto o dinaacutemicobull No exigen asociacioacuten expliacutecita de un tipoa cada variablebull Cada objeto conoce su tipo cuando se creadurante la ejecucioacutenbull Maacutes flexibilidadbull Peacuterdida de eficiencia durante la ejecucioacuten delprograma debida a la necesidad de mantenery comprobar el tipo de todos los objetosdurante la ejecucioacuten
Clasificacioacuten de Tesler
Ligadura es el proceso de asociar un atributo a un nombreEn el caso de las funciones el teacutermino ligadura (binding) serefiere a la conexioacuten o enlace entre una llamada a funcioacuteny el coacutedigo real ejecutado como resultado de la llamada[Joyanes 1998]
Ligadura estaacutetica otemprana
Ligadura dinaacutemica otardiacutea
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
Clasificacioacuten de Tesler
Ligadura es el proceso de asociar un atributo a un nombreEn el caso de las funciones el teacutermino ligadura (binding) serefiere a la conexioacuten o enlace entre una llamada a funcioacuteny el coacutedigo real ejecutado como resultado de la llamada[Joyanes 1998]
Ligadura estaacutetica otemprana
Ligadura dinaacutemica otardiacutea
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
Clasificacioacuten de Tesler
Ligadura estaacutetica o temprana
ndash Resuelve las correspondencias en tiempo de compilacioacutenndash No hay sobrecarga en tiempo de ejecucioacuten y los fallos se detectanen tiempo de compilacioacutenndash Los enlaces no pueden hacerse sin volver a compilar
bull Ligadura dinaacutemica o tardiacutea
ndash La correspondencia se hace al invocar los meacutetodosndash Soporta la evolucioacuten de los programas sin tener que recompilarndash Coste en tiempo de ejecucioacuten
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
No hay garantia de interpretacionInterpretacion
flexible SMALLTALK
Garantia de correccion Interpretacion flexibleC++ OBJECT PASCAL
Combinacion No Valida Sin Sentido
GaraniaDe correccionInterpretacion
inflexible
C COBOL
Dinamicos
Estaticos
Comprobacion dinamica
Comprobacion Estatica
Clasificacioacuten de Tesler
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
Clasificacioacuten seguacuten el
Origen
Lenguajes purosLenguajes Hibridos
Smalltalk Eiffel
C ++ OBJECT PASCAL
Objetos Mensajes
Clases
Objetos Mensajes
Clases
Lenguajes con base tradicional
+
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
Clasificacioacuten seguacuten elOrigen
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
Caracteriacutesticas de losLPOO
31 Elementos Concretos
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
Requisitos Deseablesen los LPOO
Conceptos clarosbull Orientacioacuten al Objetopurabull Seguridadbull Alto nivelbull Modelo de ejecucioacutensimplebull Sintaxis faacutecil de leer
bull Eliminacioacuten de laredundanciabull Pequentildeobull De faacutecil transicioacuten aotros lenguajesbull Soporte para elaseguramiento de lacorreccioacutenbull Entornos agradables
Revisioacuten de algunos delos Principales LPOO
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
41 SIMULA
El Simula 67 fue considerado como elprimer LPOO
bull Fue disentildeado en 1967 por Ole-Johan Dhaly Kristen Nygaard en el Norwegian
Computing Center en Oslobull El nombre de Simula 67 fue acortado a
Simula en 1986 existiendo un estaacutendar dellenguaje desde 1987 [SIS 1987]
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
- Primer lenguaje creado con tecnologiacutea de objetos puros- El origen de Smalltalk estaacute alrededor de 1970 en la Universidad de Utahde la mano de Alan Kay- Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC)de la mano de Alan Kay Adele Goldberg y Daniel Ingalls- Los conceptos de Smalltalk han influido en el disentildeo de LPOO y en el aspectoy sensacioacuten de los GUI como los de Macintosh o Motif- Smalltalk 72 Smalltalk 74 Smalltalk 76 Smalltalk 78 y Smalltalk 80- SmalltalkV de Digital- Entorno de programacioacuten Lenguaje Smalltalk baacutesico Coleccioacuten de clases y elentorno real de programacioacuten- El estilo del lenguaje se enfatiza la ligadura dinaacutemica y no realiza chequeo detipos- El bloque fundamental es la clase que contiene la descripcioacuten de variables ymeacutetodos- Los meacutetodos contienen el coacutedigo y definen coacutemo responde un objeto a unmensaje
SMALLTALK
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
- La ejecucioacuten de una rutina de un objeto se denomina en la terminologiacutea deSmalltalk ldquoenviar un mensajerdquo al objeto cuya clase encontraraacute la formaapropiada de manejar dicho mensaje- Todo en Smalltalk son objetos incluyendo a las propias clases- El entorno de Smalltalk permite un raacutepido desarrollo de programas- La biblioteca de clases fue disentildeada para ser extendida y adaptada por adicioacutende subclases para satisfacer las necesidades de la aplicacioacuten- La arquitectura ModeloVistaControlador (MVC) es una importante contribucioacutende Smalltalk- Una referencia claacutesica sobre Smalltalk es [Goldberg and Robson 1983]
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
43 C++
- C++ es un lenguaje hiacutebrido extensioacuten del lenguaje C- Fue desarrollado por Bjarne Stroustrup en los laboratorios ATampT- Las primeras versiones del lenguaje se denominaron C con clasesy datan de 1980- El nombre de C++ se debe a Rick Mascitti quien lo bautizoacute de estamanera en el verano de 1983- C++ fue instalado por primera vez fuera del grupo de investigacioacutendel autor en julio de 1983- En 1987 surge la necesidad de estandarizacioacuten de C++- Dispone de capacidades para la herencia simple y muacuteltiple- Por defecto C++ tiene ligadura estaacutetica- Las funciones definidas como virtuales pueden beneficiarse delconcepto de ligadura dinaacutemica
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
C++ es estrictamente tipado aunque admite la posibilidad de casting- No cuenta con un recolector de basura- La ausencia de un gestor automaacutetico de memoria por defecto obligaal concepto de destructor- Ocultamiento de la informacioacuten incluso a los descendientes- Cuenta con un mecanismo de acceso especial por parte de una clase ouna funcioacuten que se declare como friend- Soporte de manejo de excepciones- Soporte de genericidad mediante las plantillas- Permite sobrecarga de operadores- Sintaxis oscura y gramaacutetica difiacutecil de analizar- Lenguaje complejo preocupado por la deteccioacuten temprana de erroresy por la eficiencia de la ejecucioacuten perdiendo algo de sencillez y deflexibilidad para el disentildeo- [Stroustrup 1997] es una referencia vaacutelida para este lenguaje
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
Eiffel
- Eiffel fue desarrollado por Bertrand Meyer- Es un lenguaje orientado al objeto puro- Soporta ligadura dinaacutemica- Tiene comprobacioacuten estricta de tipos- Admite herencia muacuteltiple- Soporta clases parametrizadas- La gestioacuten de memoria la lleva a cabo el entorno de programacioacuten- Eiffel proporciona una biblioteca de clases predefinidas muy completa- Eiffel cuenta con la clase como uacutenico criterio de estructuracioacuten- Una declaracioacuten de clase en Eiffel puede incluir una lista de caracteriacutesticasexportadas una lista de clases predecesoras y una lista de declaraciones decaracteriacutesticas- Cuenta con manejo de excepciones- [Meyer 1992] es una de las referencias obligadas aunque con unas mirasmaacutes amplias se recomienda [Meyer 1997]
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
-Disentildeo por contrato
bull Precondiciones que deben cumplirse antes de que se invoque un meacutetodobull Postcondiciones que se garantizan han de cumplirse despueacutes de que sehaya ejecutado el meacutetodobull Invariantes condicioacuten que debe cumplir la clase en toda circunstanciaestablebull Un contrato entre el proveedor y el usuario de una clase espera que1048670 El usuario de una clase aseguraraacute que las precondiciones de un meacutetodose cumplan antes de que el meacutetodo se invoque1048670 El proveedor de la clase garantizaraacute que las postcondiciones se cumplandespueacutes que se ha aplicado el meacutetodo
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
RESPONSABILIDADES
iquestDe quieacuten es la responsabilidadbull Precondiciones De quien solicita el servicio (cliente)bull Postcondiciones De quien ofrece el servicio (servidor)bull Invariantes De quien esteacute actuando en ese momento sobre el objetobull iquestQueacute provoca la violacioacuten de una asercioacuten Excepcionesbull iexclQueacute se encargue el responsable1048670 Manejo de la excepcioacuten tratar de arreglar la situacioacutenclaacuteusula de rescate intentar nuevamente1048670 Pasar la responsabilidad iquestNadie El sistema abortaAserciones y Herencia La subcontratacioacutenel subcontratado pide menos y garantiza maacutes (sino no es negocio 1048670)
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
Java- Realizado por un equipo de Sun Microsystems a finales de 1995- Ha recibido una especial atencioacuten desde los primeros meses de 1996- Es un lenguaje orientado al objeto puro disentildeado desde cero que recibemuchas influencias de C++- Se le atribuyen las siguientes caracteriacutesticasbull Simple y poderosobull Segurobull Robustobull Interactivobull Independiente de la arquitecturabull Interpretadobull Sencillo de aprender- Soporta threads-Recogida de basura automaacutetica- De la abundante bibliografiacutea existente se recomienda [SUN 2001]
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
- Java produce un bytecode que seraacute interpretado por una maacutequina virtual- La maacutequina virtual se encuentra a menudo en navegadores web- La explosioacuten de Internet ha influido en el auge de Java
Java es un componente principal dentro del curriacuteculo de laIngenieriacutea del Software varias Universidades
En los primeros seis meses de 1996 Javaaparecioacute en la prensa de US 4325 veces comopunto de comparacioacuten Bill Gates aparecioacute5096 veces
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
JAVAHISTORIA Y ANECDOTAS
Puedes ver una presentacion de Work films Tutorial del tema JAVA
Luego puedes continuar con otro temas
VIDEOS
Recomendaciones de la Recomendaciones de la Docencia Docencia
Recomendaciones de la Recomendaciones de la Docencia Docencia