ADA (Advance Data Analysis)

Tecnología. Soporte técnico. Lenguaje. Tipos: primitivos y estructurados. Secuencias. Subprogramas. Almacenamiento. Análisis de datos

  • Enviado por: Claudia
  • Idioma: castellano
  • País: España España
  • 7 páginas
publicidad
publicidad

ANALISIS DE DATOS AVANZADOS versión 1.0

ADA es un programa para el análisis avanzado de datos de variabilidad molecular, que incluye algoritmos tomados de la más reciente literatura científica.

ADA ofrece múltiples herramientas para realizar análisis comparativos de gran precisión en aplicaciones como: RFLP, RAPD (o AP-PCR), PFGE, RAMM, microsatélites, perfiles de proteínas, etc., dentro de los campos de la genética, microbiología, análisis forense, etc. ADA es un programa rápido, potente, y de muy fácil utilización. Su diseño se ha hecho teniendo muy presentes las necesidades del investigador.

Características de ADA:

  • Gestión de base de datos avanzada de las muestras analizadas, con lo que el análisis comparativo, con ayuda de la selección de características y la aplicación de filtros selectivos, se convierte en una tarea realmente sencilla.

  • Analizar muestras que han sido estudiadas con más de un marcador (p. ej. la misma muestra digerida con varios enzimas, o sometida a análisis de RAPDs con distintos primers). Esta característica es única en programas de análisis de datos moleculares.

  • Importar listas de datos de Lane Manager®.

  • Calcular matrices de distancia/similitud y árboles filogenéticos (UPGMA, neighbor-joining).

ADA dispone de un editor gráfico de árboles filogenéticos de uso extremadamente fácil e intuitivo con opciones para permutar ramas, cambiar la raiz, colapsar/expandir ramas, etc., mediante simples clicks de ratón.
ADA está avalado por años de experiencia de nuestro departamento de I+D.

Soporte técnico:

El Departamento de I+D de TDI está en deuda con muchos usuarios de nuestros programas por sus interesantes sugerencias, que han contribuido al desarrollo y a la mejora de unos productos más satisfactorios para todos. La interacción con los usuarios nos ayuda a mejorar las nuevas versiones, haciendo de ADA un producto vivo capaz de ajustarse cada vez más a sus necesidades. Además, ADA es 100% tecnología Española.

ADA

Originalmente diseñado para aplicaciones militares, Ada es un lenguaje de propósito general que puede ser usado para cualquier problema. Tiene una estructura de bloque y un mecanismos de tipo de datos igual que Pascal, aunque con extensiones para aplicaciones de tiempo real y distribuidas. Provee una forma más segura de encapsulación que Pascal y las ultimas versiones estándares incrementan el desarrollo de objetos y hay herencia de métodos.

UN POCO DE HISTORIA

En los 70's hubo interés del Departamento de Defensa de E.U.A. (DoD) para desarrollar un lenguaje sencillo para usar en sistemas de tiempo real incrustados. El Grupo de Trabajo de Lenguaje de Alto Orden (HOLWG) fue creado para diseñar este lenguaje. Este grupo reviso cerca de 500 lenguajes usados para desarrollar diversas aplicaciones militares. A través de una serie sucesiva de especificaciones recolectadas desde 1975 a 1978 se obtuvieron los requerimientos para tal lenguaje fueron definidos.
Se buscaron desarrolladores para este lenguaje y en pocos meses se obtuvieron 17 propuestas de las cuales 4 fuerón elegidas. De las 4 finalistas nombre-codigo "red", "green", "yellow" y "blue" el lenguaje "green" del francés Jean Ichbiah fue elegido en 1979. Aunque originalmente fue nombrado DoD-1 , el nombre fue cambiado a ADA en nombre de Ada Lovelace una pionera en computación y partidiaria de Charles Babbage.
Pascal fue el punto de partida para el diseño de ADA pero el lenguaje resultante es muy diferente en muchos aspectos. Ada es más extenso, más complejo, permite ejecución concurrente, control en tiempo real de la ejecución, manejo de excepciones y tipos de datos abstractos. El lenguaje fue estandarizado en 1983 tanto como estándar comercial de E.U.A., estándar militar de E.U.A. y estándar Internacional ANSI. La ultima revisión del lenguaje duro mas de 6 años desde 1988 hasta 1995 el proyecto llamado 9X donde la X fue cambiada por 5, hizo algunas correcciones al estándar de 1983 así como la implementación de mejores datos orientados a objetos, librerías jerárquicas y un mejor modelo de tareas para procesos. De esto sale la implementación de ADA 95 que es el mas eficiente compilador de ADA .

PEQUEÑA DESCRIPCION DEL LENGUAJE

Ada esta echo para soportar la construcción de grandes programas. Un programa en Ada esta ordinariamente diseñado como una colección de grandes componentes de software llamados "Packages" cada uno representando un tipo de dato abstracto o un conjunto de objetos de datos compartidos entre subprogramas. Un programa en Ada consiste de un procedimiento singular que sirve como programa principal, el cual declara variables, y ejecuta sentencias, incluyendo llamadas a otros subprogramas. Un programa Ada puede envolver tareas que se ejecuten concurrentemente, si esto pasa entonces estas son inicializadas directamente por el programa principal y forman el nivel superior de la estructura del programa.
Ada provee un gran número de tipos de datos, incluyendo enteros, reales, enumeraciones, boléanos, arreglos, récords, cadena de caracteres y apuntadores. Abstracción y encapsulación de tipos de datos y operaciones definidas por el usuario son proveídas por la característica de "package". El control de secuencia dentro de un subprograma utiliza expresiones y estructuras de control similares a Pascal. La estructura de control de datos de Ada utiliza la organización de estructura de bloque estática como en Pascal y además el lenguaje prosee llamadas a referencias no estáticas. Desde que los programas pueden ejecutar tareas concurrentemente, estos pueden correr subprogramas independientemente uno del otro. Una área de almacenamiento de memoria para objetos de datos construidos es requerida. Esta área de almacenamiento debe ser distribuida entre las diferentes computadoras en que se ejecutan estas tareas.

TIPOS DE DATOS PRIMITIVOS

Variables y Constantes.

  • Cualquier objeto de datos puede ser definido como variable o como constante.

  • Cualquier declaración que empiece con la palabra constant es una constante y se deberá asignar un valor el cual no se podrá cambiar en la ejecución.

  • Si se omite la palabra constant la misma declaración define un tipo de dato variable, a la cual se le debe asignar un valor inicial y el cual se podrá cambiar en la ejecución.

Ejemplo:

MaxSize constant integer := 500;

CurrentSize integer := 0;


Tipos de Datos Numéricos

  • Enteros, punto-flotante, punto-fijo y los tipos de datos básicos.

  • Declaraciones son similares que en Pascal usando los atributos range (para enteros) y digits (para flotantes) los cuales especifican el rango de valores que podrá tomar el tipo de dato.


Ejemplo:

type DayOfYear is range 1..366; -- un valor entero de 1 a 366

MyBirhtday: DayOfYear := 219; -- MyBirthday inicializada a 219

type Result is digits 7 -- flotante de 7 digitos

Anwer: Result :=3.17; -- varible de 7 digitos.


Los tipos Integer y float estan predefinidos en el paquete estandar como:

type integer is range implementation defined;

type float is digits implementation defined;

Enumeraciones

  • Enumeraciones deben de definirse usando un estilo como Pascal de definición e implementación.

Ejem:

type class is (Fresh, Soph, Junior, Senior);

La representación en la ejecución usa el número de posición para cada valor de la literal, empezando con 0 para el primer valor listado, 1 para el segundo etc.

Tipos Caracter y Boleano

  • Estas son definidas en el paquete estandar para ser enumeraciones especificas.

Tipo de Dato Apuntador

  • Un tipo apuntador llamado access, junto con una función primitiva new, crean un nuevo objeto y regresa un apuntador a este , el cual debe ser asignado a una varible del tipo access.

  • Una variable no pude ser directamente declarada como access en vez de esto se hace lo sig;

type acces_typename is access typename;


y la variable deber ser declarada como un tipo de dato definido.

  • Todas las variables del tipo acces tienen el valor NULL por default.

  • Un bloque de almacenamiento puede ser solicitado para cualquier tipo de dato usando la sentencia:

for acces_typename use expresion;


donde expresion es el tamaño del bloque a pedir.


TIPO DE DATOS ESCTRUCTURADOS

Vectores y Arreglos

  • Un arreglo de objetos puede ser declarado con cualquier número de dimensiones, cualquier rango y cualquier tipo de componente.

Ejem:

Table: array (1..10, 1..20) of float;


crea una matriz de 10 X 20 de numeros reales;

  • Definición de tipos puede ser utilizada para crear clases de cualquier tipo de arreglo de objetos.

Ejem:

type Matrix is array (integer range <>,integer range <>) of float;


donde los < > indican un campo que se debe llenar.

Inicialización: cualquier arreglo deber de ser inicializado en su declaración.

Cadena de Caracteres

  • Las cadenas de caracteres son tratadas como un tipo de vector predefinido usando otros dos tipos predefinidos positive (enteros) y character (enumerando los caracteres definidos en el paquete estandar).

type string array (positive range <>) of character;

Ejem:

MyString : string(1..30);

Tipo de Dato Archivo

  • Archivos y operaciones de entrada-salida son definidos como tipos de datos abstractos, usando paquetes predefinidos.

  • El programador de Ada mira los archivos como tipo de datos que en su estructura interna estan ocultos por ser encapsulados con los paquetes estandares.

  • Existen diferentes tipos de archivos (texto,enteros,reales,etc..) cada paquete tiene su propio tipo de archivo ejemplo en TEXT_IO hay un tipo para archivos secuenciales o solo texto en FLOAT_IO hay un tipo de dato archivo para flotantes etc.


Tipo de Dato Definido Por El Usuario

  • Los tipos de datos record en Ada son similares que en Pascal.

  • En Ada a diferencia de Pascal un objeto record debe de ser definido primero usando una definición de tipo, para definir la estructura de record y despues dando la declaración de la variable usando el tipo de nombre.

Ejem:

type Birthday is

record

Month: string (1..3) := "jun";

Day: integer range 1..31 := 17;

Year: integer range 1950..2050 := 1960;

end record


cada variable del tipo Birthday esta inicializada a "jun" 17 1960.

CONTROL DE SECUENCIA

La ejecución de Ada esta orientada a sentencias como FORTRAN y Pascal.

Expresiones

  • Expresiones en Ada permiten primitivas y funciones definidas para ser combinadas en secuencias de manera usual.

  • Notación infija es usada para la aritmética binaria, relacional y operaciones boleanas.

  • Notación prefija es usada para operaciones unarias. (+,-, y NOT), los parentesis deben de utilizarse para agrupar operaciones y la precedencia es la misma que en Pascal.

Sentencias

  • Las estructuras de secuencias de control de sentencias son las usuales sentencias condicionales (if y case) y las sentencias de iteración (loop).

  • Todas las sentencias de control terminan con las sentencia end seguida con la palabra de dicha sentencia ejem: end if, end loop.


Asignacion: La asignación es similar que en Pascal. La asignación completa de un grupo de valores a una variable record puede ser posible.

Ejem:

MyDay := ("SEP",12,1975);

MyDay := (Year => 1975, Month =>"SEP", Day => 12);

SENTENCIAS CONDICIONALES

Sentencia If

  • La sentencia if tiene la siguiente forma:

if boolena expresion then

- secuencias de sentencias

elsif boolean expresion then

- secuencia de sentencias

elsif boolean expresion then

- secuencia de sentencias

...

else

- secuencia de sentencias

end if

Sentencia CASE

  • La forma general de case es:

case expresion is

when choice | ...| choice => secuencia de sentencias;

when choice | ...| choice => secuencia de sentencias;

...

when others => secuencia de sentencias;

end case;


Cada choice indica o uno o varios rangos posibles de valores para la expresion al principio de la sentencia.

Ejem:

case GradeLevel is

when Fresh => sentencias;

when Soph | Junior => secuencias;

when Senior => secuencias;

end case;

SENTENCIAS DE ITERACION

Sentencia Loop

  • La sentencia básica de iteración tiene la siguiente forma.

loop

- secuencia de sentencias

end loop

  • La forma de terminar una sentencia de iteración loop se hace explicitamente con las sentencias exit, goto o return.

  • Setencias controladas pueden ser creadas con las sentencias while y for.

while boolean expresion

...


con for hay dos formas.

for variable name in discrete_range;

for variable name in reverse discrete_range;

SUBPROGRAMAS Y MANEJO DE ALMACENAMIENTO

Procedimientos , funciones y tareas son los tres tipos de subprogramas que Ada maneja.

Funciones y Procedimientos

  • Un procedimiento o función tiene la forma de una especificación:

procedure procname(formal-parameters) is ...

function functioname(formal-parameters) return result_type is


seguida por un cuerpo como sigue :

- secuencia de declaraciones

begin

-secuencia de sentencias

exception

- manejadores de excepciones

end

  • Los subprogramas pueden ser recursivos. La salida normal de un procedimiento o tarea es con la ejecución de return;

  • En el enunciado formal-parameters deben de ir los tipos de datos con su nombre y su forma de transmisión para ser usado.

Excepciones: Al final de cada unidad de programa debe de especificarse un manejador de excepciones. Existen varias excepciones predefinidas en los paquetes estandares, todas las demas son declaradas usando la siguiente sentencia:

exceptionname: exception

  • Un manejador de excepciones empieza con el nombre de la excepción que este maneja, seguida con una secuencia de sentencias que toman la acción apropiada para manejar dicha excepción.

exception

when exception_name | ... | exception_name

=> secuencia de sentenecias

...

when others => secuencia de sentencias


donde cada secuencia de sentencias debera manejar una o mas excepciones nombradas.

Tareas: Una tarea es un subprograma que puede ejecutarse concurrentemente con otras tareas.

  • La definición de una tarea tiene una forma general, tiene una especificación que permite a otras tareas comunicarse entre si y un cuerpo de implementación. Usando un tipo de tarea, multiples tareas pueden ser creadas con una definición singular.

task taskname is

-declaraciones de entrada

end

task body taskname is

-secuencia de declaraciones

begin

-secuencia de setencias

exception

-manejador de excepciones

end;

ABSTRACION Y ENCAPSULAMIENTO

Paquetes

  • La definición de un paquete tiene dos partes una especificación y un cuerpo.La especificación contiene la información necesaria para la correcta utilización del paquete; el cuerpo proveee la encapsulación de variables y subprogramas que son llamados desde afuera.

  • La parte visible de un paquete (todo lo que procede a la palabra private) define que es lo que el usuario final de el paquete puede usar en un programa.

package packagename is

-declaración de variables

private

-definición completa de datos privados

end;

packages body packagename is

-definiciones de objetos y subprogramas definidos arriba

begin

-sentencias para inicializar el paquete cuando es por primera vez instanciado

exception

- manejador de excepciones

end;