sábado, 8 de octubre de 2011

Multiparadigma



Que es lenguaje de programacion multiparadigma

Es el cual soporta mas de un paradigma de programacion. Segun lo describe Bjarne Stroustrup, permiten crear "programas usando mas de un estilo de programacion.

Lenguaje Ada multiparadigma

Ada es un lenguaje de programacion orientado a objetos y fuertemente tipado de forma estatica que fue diseñado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa delos Estados Unidos. Es un lenguaje multiproposito, orientado a objetos y concurrente, pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++.


Comparacion con Pascal:
Estructura de un programa

Ada:                                                                  Pascal:   
                                                                       
procedure Mi_Programa is                             program Mi_Programa;                            
                                                                        const
Max_Empleados : constant  := 50;                   Max_Empleados = 50;
                                            
type T_Empleados is                                       type
     range 1 . . Max_Empleados;                        T_Empleados=1... Max_Empleados;

Num_Empleados :                                            Var
      T_Empleados  := 10;                                  Num_Empleados : T_Empleados;

procedure Un_Proc is                                      procedure Un_Proc;
begin                                                                begin

. . . ; -- instrucciones                                         . . . ; (* instrucciones *)
                                                                         end;
end Un_Proc; 
                                                                         begin
begin
   . . . ; -- instrucciones                                      . . . ; ( instrucciones )
end Mi_Programa;                                           end.

Ada en multiparadigma es:

Concurrente: Ada soporta la programacion de procesos concurrentes mediante las tareas ("tasks").

Las tareas constan de especificacion y cuerpo:
  • La especificacion de una tarea delara sus puntos de entrada (si los hay)
  • El cuerpo define una actividad que se ejecuta independientemente, tiene declaraciones e instrucciones.
Las tareas van en la parte de declaraciones de un modulo.
  • Se arrancan nada mas ser visibles
  • El modulo que las declara no termina si no han terminado todas sus tareas.
Ejemplo:

procedure Control_del_Automovil is

task Medida_Velocidad;

task Control_ABS;

task Control_Inyeccion;

task  body Medida_Velocidad is
 begin
   loop
      Acciones de Medida_de_Velocidad;
      Esperar al proximo periodo (20 ms);
 end loop;
 end Medida_Velocidad;

task body Control_ABS is   is
begin
    loop
 Acciones de Medida_de_Velocidad;
 Esperar al proximo periodo (40 ms);
 end loop;
end Control_ABS;

task body Control_Inyeccion is
 begin
 loop
 Acciones de Control de Inyeccion;
 Esperar al proximo periodo (80 ms);
 end loop;
 end Control_Inyeccion;

begin
 null; -- el programa principal es otra tarea
 end Control_del_Automovil;
Generico: es un tipo de programación que está mucho más centrada en los algoritmos que en los datos. La idea de esta forma de programar pretende generalizar las funciones utilizadas para que puedan usarse en más de una ocasión.
Ejemplo:
Algoritmo Generico
generic
type item is private;
procedure canjear (x,y: in out item);

procedure canjear (x,y : in out item) is
aux:item;
begin
aux:=x;
x:=y;
y:=aux;
end;

Distribuido: es un paradigma de programación enfocado en desarrollar sistemas distribuidos, abiertos, escalables, transparentes y tolerantes a fallos. Este paradigma es el resultado natural del uso de las computadoras y las redes.

Imprescindible:

Orientado a objetos: 
Encapsulado de objetos: mediante paquetes.
Clases de objetos: tipos de datos abstractos y etiquetados, declarados en un paquete, o en un paquete generico.
Operacion de un objetos: subprogramas definidos en el paquete donde se declara el objeto o la clase de objeto.            
link recomendados 

3 comentarios: