Programacion
Tipos para Lenguajes Orientado a Objetos
Eduardo Bonelli
Departamento de Computaci´n o FCEyN UBA
27 de junio, 2006
Eduardo Bonelli
Tipos para Lenguajes Orientado a Objetos
Tipos en lenguajes OO Limitaciones de sistemas invariantes
Introducci´n o Tipos para lenguajes OO Subtipado y herencia
Introducci´n o
Todos loslenguajes “modernos” cuentan con sistemas de tipos Ya hemos discutido los beneficios de contar con sistemas de tipos Los lenguajes orientados a objetos tambi´n cuentan con e sistemas de tipos Sin embargo, los sistemas de tipos en lenguajes OO tienen sus limitaciones pues hacer type checking para lenguajes OO no es f´cil: a “Type checking object-oriented languages is difficult”a
a Kim Bruce,Foundations of Object Oriented Languages, MIT Press,2002.
Eduardo Bonelli
Tipos para Lenguajes Orientado a Objetos
Tipos en lenguajes OO Limitaciones de sistemas invariantes
Introducci´n o Tipos para lenguajes OO Subtipado y herencia
Introducci´n o
Desde mediados de los 80 en adelante han habido numerosos esfuerzos por realizar estudios “te´ricos” que analizan o sistemas de tipos paradistintos modelos de lenguajes orientados a objetos A pesar de que en la actualidad se usan lenguajes OO que cuentan con sistemas de tipos, el inter´s radica en que: e
Los sistemas de tipo hist´ricamente significativos como el de o SIMULA o aquel propuesto por Borning e Ingallsa para SmallTalk ten´ problemas significativos ıan
Un programa bien tipado podr´ en tiempo de ejecuci´n, ıa, o env´ unmensaje a un objeto que no cuenta con un m´todo ıar e para responder al mismo, justamente el motivo por el cual el sistema de tipos fue introducido! A type declaration and inference system for Smalltalk, POPL 1982
Eduardo Bonelli Tipos para Lenguajes Orientado a Objetos a
Tipos en lenguajes OO Limitaciones de sistemas invariantes
Introducci´n o Tipos para lenguajes OO Subtipado y herenciaIntroducci´n o
Desde mediados de los 80 en adelante han habido numerosos esfuerzos por realizar estudios “te´ricos” que analizan o sistemas de tipos para distintos modelos de lenguajes orientados a objetos A pesar de que en la actualidad se usan lenguajes OO que cuentan con sistemas de tipos, el inter´s radica en que: e
Hay muchos usuarios de lenguajes OO que consideran que los sistemas de tiposactuales imponen restricciones demasiado severas para permitir programaci´n OO verdadera o Vamos a ver algunos ejemplos en la clase de hoy
Eduardo Bonelli
Tipos para Lenguajes Orientado a Objetos
Tipos en lenguajes OO Limitaciones de sistemas invariantes
Introducci´n o Tipos para lenguajes OO Subtipado y herencia
Plan de la clase de hoy
Tipos en lenguajes OO Subtipado y herenciaSistemas de tipos invariantes Ilustrar a trav´s de ejemplos algunas limitaciones de sistemas e de tipos invariantes
Eduardo Bonelli
Tipos para Lenguajes Orientado a Objetos
Tipos en lenguajes OO Limitaciones de sistemas invariantes
Introducci´n o Tipos para lenguajes OO Subtipado y herencia
Tipos para lenguajes OO
La noci´n de clase y de tipo se mantienen separadas o
La clase esuna noci´n inherentemente de implementaci´n: o o establece, entre otras cosas, variables de instancia privadas, c´digo fuente de los m´todos, etc. o e El tipo de un objeto representa solamente la interfase p´blica u del mismo
nombres de todos los m´todos e tipo de los argumentos de cada m´todo y tipo del resultado e
De esta manera, la especificaci´n de un objeto (representado o por su su tipo)no se mezcla con su implementaci´n o (especificado en su clase) Esta separaci´n beneficia el desarrollo modular de sistemas: o varias clases pueden instanciar objetos con el mismo tipo El tipo de un objeto a veces se conoce como interface type
Eduardo Bonelli Tipos para Lenguajes Orientado a Objetos
Tipos en lenguajes OO Limitaciones de sistemas invariantes
Introducci´n o Tipos para...
Regístrate para leer el documento completo.