PDF de programación - Eiffel

Imágen de pdf Eiffel

Eiffelgráfica de visualizaciones

Publicado el 5 de Junio del 2019
288 visualizaciones desde el 5 de Junio del 2019
119,7 KB
54 paginas
Creado hace 13a (25/01/2007)
Universidad de Granada

E.T.S. Ingeniería Informática

Eiffel

Diego Montesinos Hervás

Irene Díaz Valenzuela
Andrés Herrera del Pino
José Antonio Sáez Muñoz

3º Ingeniería Informática

Programación Dirigida a Objetos

Grupo B - Curso 2006-2007

1

1.Introducción

2

1.Introducción

Eiffel es un lenguaje de programación orientado a
objetos centrado en la construcción de software
robusto.

Diseñado por Bertrand Meyer, apareció en 1985 y
fué desarrollado por Meyer y Eiffel Software.

Eiffel es un lenguaje con tipos fuertes, pero relajado
por herencia. Implementa administración automática
de memoria, generalmente mediante algoritmos de
recolección de basura.

3

integraron

1.1 Características esenciales
- Mecanismos de ayuda al Diseño por contrato que
se
firmemente con el mecanismo de
herencia y otras construcciones del lenguaje.
- Estructura de programa orientada a objetos, las
clases son la unidad básica.
- Asignación estática de tipos.
- Ayuda para la gestión automática de memoria,
implementada por el recolector de basura.
- Papel central de la herencia, incluyendo herencia
múltiple y mecanismo para hacerla segura.

4

1.1 Características esenciales

- Un sistema uniforme de tipos que maneja las semanticas
de referencia y valor, donde todos los tipos (incluyendo los
tipos básicos) están basados en clases.

- Tipos genéricos.

- ‘Bloques‘(agent) (similares a los de Smalltalk)

- Rutinas 'once' (evaluadas solamente la primera vez), para la
compartición de objetos e inicialización.

- Sintaxis basada en las palabras clave de ALGOL/Pascal
pero sin separador (se puede usar el punto y coma, es
opcional).
5

1.2 Características de diseño

- Eiffel enfatiza en sentencias declarativas sobre
código procesal.

- Eiffel evita los trucos de codificación o técnicas de
codificación previstas.

- Se intenta no sólo hacer código más legible, sino
también permitir a los programadores concentrarse en
los aspectos importantes del programa sin meterse
en detalles de implementación.

6

1.2 Características de diseño

–La simplicidad de Eiffel se ha pensado para promover
respuestas simples, extensibles y reutilizables para los
problemas de computación.

–Los compiladores proveen técnicas de optimización con el
objetivo de crear código extremadamente eficiente,
comparable a C++, por ejemplo.

–Al igual que los lenguajes de programación vistos en la
asignatura, Eiffel también utiliza semántica en el heap.

7

2.Características

de Eiffel

8

2.Características

La meta del lenguaje, bibliotecas, y
métodos de programación es crear un
software que utilice módulos lo más
reutilizables posible.

9

2.1 Eiffel soporta...

●Herencia múltiple: permite que una
clase herede de varias superclases.
Además posibilita a los subtipos
adaptarse a sus propiedades
heredades renombrándolas o
estableciendo reglas de selección
para ellas.

10

2.1 Eiffel soporta...

●Tipos genéricos: Eiffel usa tipos
parametrizados (genéricos), como en
otros lenguajes como Ada, Java, C#,
que permiten definir un tipo sin
especificar todos los otros tipos que
usa. Los tipos no especificados son
sustituidos por parámetros en estos
puntos del código.

11

2.1 Eiffel soporta...

●Polimorfismo: capacidad que tienen
objetos de diferentes clases de responder
al mismo mensaje. Esto significa que
puede haber muchos mensajes con el
mismo nombre, en diferentes clases.
Cada clase responde al mensaje con su
código propio (método).

12

2.1 Eiffel soporta...

●Encapsulación : ocultamiento del estado, es decir,
de los datos miembro, de un objeto de manera que
sólo se puede cambiar mediante las operaciones
definidas para ese objeto.
●De esta forma, el usuario de la clase puede obviar la
implementación de los métodos y propiedades para
concentrarse sólo en cómo usarlos. Por otro lado se
evita que el usuario pueda cambiar su estado de
maneras imprevistas e incontroladas.

13

2.1 Eiffel soporta...

●Asignación fuerte de tipos
●En LPs con tipos, una expresión de valores está
bien formada cuando a su valor se le puede
asignar un tipo, ya sea en tiempo de compilación o
de ejecución.
●No se procede a la evaluación si no se ha podido
determinar por inferencia dicho tipo
●Podríamos hablar de tipo de la expresión
●Los LPs en que las expresiones han de ser
consistentes respecto a los tipos se dice que son
LPs con asignación fuerte de tipos

14

2.1 Eiffel soporta...

●Equivalencia de métodos y tipos: como
ya sabemos de otras asignaturas, en
algunos LPs, si S es subtipo de T, podemos
utilizar S donde se espere un parámetro de
tipo T, y si una función devuelve un tipo T,
podría devolver tipo S sin problema ninguno.
●Por extensión, donde corresponde una
clase cualquiera, nos podemos encontrar
con cualquier subclase suya.

15

2.2 Contribución de Eiffel

●Su contribución más importante a la ingeniería del
software es el Diseño por Contracto (DbC), en el
cual se tienen:

- Assertions(afirmaciones)
- Precondiciones
- Postcondiciones

Invariantes de clase

que son usadas para asegurar la corrección
del programa sin sacrificar la eficiencia.

16

-
2.2 Contribución de Eiffel

• Assertions(afirmaciones)
En Eiffel, las afirmaciones son
integradas en el lenguaje y son
extraídas automáticamente para
generar la documentación de la
clase.

17

2.2 Contribución de Eiffel

●Una afirmación es un predicado (por ejemplo, una
expresión booleana) situada en un programa para
indicar que la afirmación es verdad en ese lugar. Por
ejemplo, el siguiente código contiene dos
afirmaciones:
●x:= 5;
{x > 0}
x:= x + 1
{x > 1}
●Se usan para ayudar a la especificación de
programas y asegurar la corrección del código.

18

2.2 Contribución de Eiffel

●Algunos lenguajes de programación modernos incluyen la
sentencia de afirmación (assert(cond)) que es una condición
que se comprueba en tiempo de ejecución. Si la evaluación
de la condición falla, se produce un fallo de afirmación como
resultado, el cual puede causar que la ejecución se aborte o
puede causar el reconsiderar una vía alternativa para el
programa.
●El uso de afirmaciones ayuda al programador a diseñar,
desarrollar y comprobar la corrección del código. Además
permite hacer comprobaciones durante el proceso de pruebas,
durante la ejecución, y detectar los posibles fallos, permitiendo
al programador detectar bugs de sus programas.

19

2.2 Contribución de Eiffel

●Precondiciones:
●Es una afirmación (condición o predicado) que
debe ser siempre verdadero al principio de la
ejecución de alguna sección de código.
●Si la precondición falla, el efecto de la sección de
código puede estar indefinido y puede que se
produzcan errores en la ejecución.
●Ejemplo: para calcular el factorial de un número
la precondición es que el número sea mayor o
igual que 0.

20

2.2 Contribución de Eiffel

●Postcondiciones:
●Es una afirmación (condición o predicado) que
debe ser siempre cierto justo después de la
ejecución de un algún trozo de código.
●Ejemplo: Para una función que calcule el
factorial, la poscondición puede ser que el
resultado sea siempre mayor o igual que 1.

21

2.2 Contribución de Eiffel

●Invariante de representación.
●Es una serie de condiciones impuestas sobre los
objetos de una clase que determinan si un objeto
está o no bien formado.
●Los métodos de la clase deben preservar el
invariante de representación.
●Los invariantes de representación son establecidos
durante la construcción y continuamente se mantiene
tras las llamadas a los métodos públicos.

22

2.2 Contribución de Eiffel

●El diseño de Eiffel está basado en la teoría de la
programación orientada a objetos.
●El lenguaje tiene un soporte formal para tipos
abstractos de datos.
●Bajo el correcto diseño de texto software se debe ser
capaz de reproducir una documentación para el
diseño final del software a partir de la información de
la implementación que está formalizada para el “tipo
abstracto de dato”.

23

2.3 Implementaciones y entornos

• EiffelStudio es un entorno de desarrollo integrado

(código libre o licencias comerciales). Es un
entorno orientado a objetos que usa técnicas de
interfaz de usurario como el pick-and-drop.

• EiffelEnvision es un pluggin para Microsoft Visual
Studio, que permite a los usuarios editar ,compilar y
depurar programas en Eiffel al usar Microsoft Visual
Studio IDE.

24

2.3 Implementaciones y entornos

● Existen dos implementaciones de código libre:
- SmartEiffel (implementacion GNU, basada en una

versión anterior del lenguaje)

- Visual Eiffel.

● Originalmente, el lenguaje Sather estaba basado en

Eiffel, pero fue modificándose, y ahora incluye
varias características de la programación funcional.

● Parte de Apple Media Tool está basado en Eiffel.

25

2.4 Especificaciones y estándares

●El lenguaje Eiffel es un estándar
internacional de la ISO (International
Organization for Standardization).

●El estándar fue desarrollado por ECMA
International y su primera versión fue aprobada
por ECMA el 21 de Junio de 2005 como el
standard ECMA 367 (Eiffel: Analysis, Design
and Implementation Language)

26

2.4 Especificaciones y estándares

● La segunda edición fue adoptada por ECMA en

Junio de 2006 y en el mismo año por la ISO
(Noviembre de 2006).

● El desarrollo software de Eiffel y de sus bibliotecas,

dio lugar a implementar un estándar; Eiffel
Software's EiffelStudio 5.7, que implementa
algunos de los mejores mecanismos del lenguaje.

● El equipo de SmartEiffel se apartó de este estándar

para crear su porpia versión del lenguaje, el cual
parece está más cerca del estilo original de Eiffel.

27

2.4 Especificaciones y estándares

●Bibliografía de especificación del lenguaje Eiffel:

●Bertrand Meyer: Eiffel: The Language, Prentice Hall,
segunda edición, 1992 (primera edición: 1991)

●Bertrand Meyer: Standard Eiffel, 1997.

●Bertran
  • Links de descarga
http://lwp-l.com/pdf16045

Comentarios de: Eiffel (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad