Portada Favoritos
Lista Articulos: [0-C] [C-I] [I-P] [P-Z] | Todas las categorías | Página aleatoria | Lo que enlaza aquí

Lenguaje de programación Eiffel

Eiffel fue ideado en 1985 por Bertrand Meyer. Es un lenguaje de programación orientado a objetos centrado en la construcion de software robusto. Su sintaxis es parecida a la de Pascal.Una característica que lo distingue del resto de los lenguajes es que permite el diseño por contrato desde la base, con precondiciónes, postcondiciones, invariantes y variantes de bucle, invariantes de clase y asertos.

Eiffel es un lenguaje fuertemente tipado, pero relajado por herencia. Implementa administración automática de memoria, generalmente mediante algoritmos de recolección de basura. Las claves de este lenguaje estan recogidas en el libro de Meyer, Construccion de Software Orientado a Objetos. Un libro que recoge las claves del lenguaje.

Tabla de contenidos

Ejemplos de código

Hola Mundo

class HOLA_MUNDO
create
 make
feature
 make is
 do
 IO.PUTSTRING("%nHola mundo%N")
 end
end -- HOLA_MUNDO

Una clase más compleja

Esta clase pertenece a la libreria estándar de SmartEiffel e implementa el reloj del sistema.

expanded class CLOCK
--
-- Time and date facilities: year, month, day, hour and seconds.
--
feature
 value: INTEGER is
 -- Get the CPU clock periods if available (-1 if not).
 do
 Result := basic_clock
 end
 periods_per_second: INTEGER is
 -- The number of clock periods per seconds.
 require
 value >= 0
 do
 Result := basic_clock_per_sec
 end
feature {NONE}
 basic_clock: INTEGER is
 external "SmartEiffel"
 end
 basic_clock_per_sec: INTEGER is
 external "SmartEiffel"
 end
end -- CLOCK
class
 GENERICA[G->COMPARABLE]--Clase (G (->)va a ser necesariamente comparable)
inherit 
 ARRAY[G]--Clase generica es un tipo de array
end
feature 
 n_datos:INTEGER -- lleva el número de datos
 ingresar(dato:G;pos:INTEGER) is -- guarda los datos en el vector generico
 do
 n_datos:=n_datos+1
 resize(1,pos) -- modifica el tamaño del vector según el numero de datos
 put(clone(dato),pos) -- guarda el dato
 end
----------------------------------------------------------------------------------------------------
 seleccion is 
 local
 i,j:INTEGER
 aux:G 
 do
 from i:=1 -- bucle que lleva todos los datos
 until i=n_datos -- de uno a uno
 loop
 from j:=i+1 -- bucle que lleva todos los datos siguientes
 until j=n_datos+1 -- del dato del bucle anterior
 loop
 if item(i) > item(j) then -- verifica si el dato 'i' es mayor a algunos de los
 aux:=item(i) -- datos siguientes, lo guarda al dato 'i' 
 put(item(j),i) -- si cumple, lo guarda en una variable local 
 put(aux,j) -- y los cambia de posición 
 end 
 j:=j+1 
 end
 i:=i+1
 end
 end
---------------------------------------------------------------------------------------------------
end -- class GENERICA[G]

Enlaces externos



Lenguajes de programación
Ada | Algol | Awk | Basic| C | C++ | C# | Cobol | Delphi | Eiffel | Forth | Fortran | Java | Lisp | Logo | Modula-2 | Oberon | Ocaml | Pascal | PHP | Perl | Prolog | Python | Ruby | Smalltalk | Otros lenguajes...




This site support the Wikimedia Foundation. This Article originally from Wikipedia. All text is available under the terms of the GNU Free Documentation License Page HistoryOriginal ArticleWikipedia