Eiffel (lenguaje de programación)

Eiffel
Información general
Paradigma orientado a objetos
Apareció en 1985
Diseñado por Bertrand Meyer
Tipo de dato fuerte, estático
Implementaciones tecomp, SmartEiffel, Visual Eiffel
Influido por Ada, Simula, Z
Ha influido a D, Java, C#, Sather, Ruby
[ editar datos en Wikidata]

Eiffel es un lenguaje de programación orientado a objetos que sigue el estándar ISO diseñado por Bertrand Meyer (defensor de los lenguajes orientados a objetos y autor de la construcción de Software Orientado a Objetos) y Software Eiffel. El diseño del lenguaje esta estrechamente relacionado con el método de programación Eiffel. Ambos se basan en una serie de principios incluyendo: el diseño por contrato, la separación de comandos y consultas, el principio de acceso uniforme, el principio de elección única, el principio abierto-cerrado y la separación operación-operando.

Muchos conceptos inicialmente introducidos por Eiffel aparecen más tarde en Java, C# y otros lenguajes. Nuevas ideas de diseño de lenguaje, particularmente a través del proceso de estandarización ECMA/ ISO, se continúan incorporando al lenguaje Eiffel.

Características

Las características claves del lenguaje Eiffel incluyen:

  • Una estructura de programa orientado a objetos en el que una clase sirve como la unidad básica de la descomposición.
  • Diseño por contrato estrechamente integrado con otras construcciones del lenguaje.
  • Gestión de memoria automática, por lo general implementado por un recolector de basura.
  • Herencia, incluyendo la herencia múltiple, el cambio de nombre, la redefinición, "select", herencia no conforme, y otros mecanismos destinados a hacer que la herencia sea segura.
  • Programación genérica con y sin restricciones.
  • Gestión de un sistema de tipo uniforme donde la semántica del valor y la referencia en el que todos los tipos, incluidos los tipos básicos como entero, son de clase base.
  • Tipado estático
  • Seguridad ausencia de tipos, o protección estática contra las llamadas a referencias a null, a través del mecanismo de tipos de adjuntos.
  • Agentes, o objetos que agrupan a los cálculos, estrechamente relacionados con la clausura y el cálculo lambda
  • Rutinas de ejecución única, o rutinas que se ejecutan solo una vez, para objetos compartidos y la inicialización descentralizada.
  • Sintaxis de palabras clave siguiendo la tradición ALGOL / Pascal pero libre de separadores, en la medida en puntos y comas son opcionales, con la sintaxis disponible para definir operadores para las rutinas.
  • No es sensible a mayúsculas y minúsculas.
Other Languages