Eiffel est un langage de programmation orienté objet (POO) conçu par Bertrand Meyer, auteur de l'ouvrage Conception et Programmation orientées objet qui fait figure de référence pour la conception orientée objet.
Eiffel est un langage conçu autour d’une méthode de conception. Il est basé sur des concepts tels que la programmation par contrat, la réutilisation (notamment par héritage multiple), l’accès uniforme, la séparation requête déclaration, la séparation des arguments et des options.
Il intègre des fonctionnalités avancées et novatrices. Il supporte en effet l'héritage multiple avec un mécanisme de renommage, la généricité multicontrainte, l'exportation sélective, la conversion de type, les routines d'ordres supérieurs, les routines à exécution unique, un système de programmation parallèle unique, l'interfaçage avec d'autres langages, l'ancrage de type et la covariance.
Le langage fait l'objet des normes ECMA 367 et ISO/CEI 25436:2006.
Il existe plusieurs compilateurs pour le langage Eiffel.
SmartEiffel est développé par le LORIA, est libre et téléchargeable gratuitement. Depuis la version 2.2, cette distribution s'écarte volontairement du standard ECMA pour proposer sa propre version du langage.
SmartEiffel ne compile pas directement l'Eiffel en un programme exécutable, mais utilise l'intermédiaire du C ou du Java.
est un environnement de développement (éditeur, compilateur, débogueur...). EiffelStudio est disponible sous licence libre depuis la version 5.7. La dernière version, 19.05, remonte au .
En 2000, Microsoft publie les travaux préliminaires de chercheurs de l'université Monash (Melbourne) visant à créer un langage Eiffel#. Ainsi, on peut mélanger Eiffel avec les autres langages de la plate-forme .NET, grâce à des compilateurs Eiffel vers CIL. Eiffel ne fait toutefois pas partie des langages intégrés par Microsoft lui-même dans Visual Studio.