Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Cursos gratis / Curso de Ada - Tareas dinamicas: creación dinamica de tareas (tipos t

Curso de Ada - Tareas dinamicas: creación dinamica de tareas (tipos t

 ****- (10 opiniones)
GNU Free Documentation License Curso gratis de José Alfonso Malo Romero - 16 de Marzo de 2006
Temas Relacionados: Programación estructurada
57. Tareas dinamicas: creación dinamica de tareas (tipos t
Además de poder declarar tareas como un simple objeto, se pueden declarar un tipo como tipo tarea. Con ello se consigue poder utilizar otros objetos que utilicen dicho tipo tarea como por ejemplo, un vector de tareas o un puntero a tarea (con lo que se consigue crear tareas dinámicamente).

La sintaxis de los tipos tarea es la siguiente:

declaración_tipo_tarea ::= task type identificador [ ( discriminante { ; discriminante } ) ] [ is { punto_entrada_tarea | cláusula_representación } [ private { punto_entrada_tarea | cláusula_representación } ] end [ identificador ] ] ; discriminante ::= identificador { , identificador } : [ access ] subtipo [ := expresión ]

Con ello, se define un nuevo tipo. Esta definición necesita una terminación, es decir, faltaría declarar el cuerpo de la tarea, que se realiza de igual manera que si se hubiera declarado la tarea simplemente.

Los tipos tarea son privados limitados. Es decir, un objeto declarado de tipo tarea no es una variable, se comporta como una constante. Por tanto, no se permite la asignación, igualdad y desigualdad para los tipos tarea.

Según la sintaxis descrita, se puede definir una tarea como un tipo, por ejemplo, de esta manera:

declare task type TTareaA; task type TTareaB; task type TTareasMúltiples; type TVectorTareas is array (1..10) of TTareasMúltiples; A: TTareaA; B: TTareaB; V: TVectorTareas; task body TTareaA is -- ... end; task body TTareaA is -- ... end; task body TTareasMúltiples is -- ... end; begin -- A partir de aquí se ejecutan las 12 tareas concurrentemente. -- ... end;

En el momento en el que dé comienzo la ejecución del bloque, justo después de begin, dará comienzo la ejecución simultánea de las tareas definidas en las distintas variables del tipo task. En este caso TTareaA, TTareaB y 10 TTareasMúltiples. Pero esta situación es estática, no se pueden lanzar tareas en un determinado instante; para ello, se pueden emplear punteros como, por ejemplo:

procedure Ejemplo_tareas_dinámicas is task type TTarea; type PTTarea is access TTarea; T1: PTTarea; T2: PTTarea := new TTarea; -- Se crea la tarea T2.all. begin T1 := new TTarea; -- Se crea la tarea T1.all. T1 := null; -- Se pierde la referencia, pero se sigue ejecutando. -- ... end Ejemplo_tareas_dinámicas;

Las tareas creadas con new siguen unas reglas de activación y dependencia ligeramente diferentes. Estas tareas inician su activación inmediatamente después de la evaluación del asignador de la sentencia new. Además, estas tareas no dependen de la unidad donde se crearon, sino que dependen del bloque, cuerpo de subprograma o cuerpo de tarea que contenga la declaración del tipo access en sí. Para referenciar a tareas dinámicas se emplea el nombre de la variable puntero seguido de .all, por ejemplo, T1.all.

También se pueden crear varios ejemplares de un mismo tipo dependiendo de un parámetro denominado discriminante. Por ejemplo:

task type TManejadorTeclado (ID: TIDentifTeclado := IDPorDefecto) is entry Leer (C: out Character); entry Escribir (C: in Character); end TManejadorTeclado; type PTManejadorTeclado is access TManejadorTeclado; Terminal: PTManejadorTeclado := new TManejadorTeclado (104);

Manual de referencia de Ada


Tabla de contenidos
  1. 1 - Introducción
  2. 2 - Historia
  3. 3 - Manual de referencia
  4. 4 - Instalación
  5. 5 - Hola Mundo
  6. 6 - Elementos del lenguaje
  7. 7 - Tipos
  8. 8 - Enteros
  9. 9 - Enumeraciones
  10. 10 - Coma flotante
  11. 11 - Coma fija
  12. 12 - Arrays
  13. 13 - Strings
  14. 14 - Registros
  15. 15 - Registros discriminados
  16. 16 - Registros variantes
  17. 17 - Punteros a objetos
  18. 18 - Punteros a subprogramas
  19. 19 - Tipos derivados
  20. 20 - Tipos etiquetados (orientación a objetos)
  21. 21 - Subtipos
  22. 22 - Objetos (variables y constantes)
  23. 23 - Atributos
  24. 24 - Expresiones
  25. 25 - Operadores
  26. 26 - Sentencias y estructuras de control
  27. 27 - Subprogramas
  28. 28 - Sobrecarga
  29. 29 - Entrada/salida
  30. 30 - Pragmas
  31. 31 - Interfaz con otros lenguajes
  32. 32 - Diseño y programación de sistemas grandes
  33. 33 - Paquetes
  34. 34 - Clausula use
  35. 35 - Clausula with
  36. 36 - Paquete Standard
  1. 37 - Declaraciones
  2. 38 - Ámbito
  3. 39 - Visibilidad
  4. 40 - Renombrado
  5. 41 - La biblioteca Ada (unidades y subunidades)
  6. 42 - Unidades de biblioteca
  7. 43 - Unidades hijas
  8. 44 - Subunidades
  9. 45 - Compilación separada y dependiente
  10. 46 - Tipos abstractos de datos
  11. 47 - Tipos limitados
  12. 48 - Unidades genéricas
  13. 49 - Excepciones
  14. 50 - Paquete Ada.Exceptions
  15. 51 - Concurrencia
  16. 52 - Tareas
  17. 53 - Sincronización de tareas mediante puntos de entrada o citas (entry)
  18. 54 - Aceptación de citas (accept)
  19. 55 - Selección de citas (select)
  20. 56 - Llamadas a punto de entrada complejas
  21. 57 - Tareas dinamicas: creación dinamica de tareas (tipos t
  22. 58 - Dependencia de tareas
  23. 59 - Ejemplos de tareas
  24. 60 - Programación distribuida con GLADE
  25. 61 - Novedades de Ada 2005
  26. 62 - Unidades predefinidas
  27. 63 - Paquete Ada.Strings.Fixed
  28. 64 - Paquete Ada.Strings.Unbounded
  29. 65 - Paquete Ada.Text_IO
  30. 66 - Paquete Ada.Text_IO.Editing
  31. 67 - Paquete Ada.Float_Text_IO
  32. 68 - Paquete Ada.Sequential_IO
  33. 69 - Paquete Ada.Command_Line
  34. 70 - Paquete Interfaces
  35. 71 - Recursos en la Web
Autor y licencia de 'Curso de Ada - Tareas dinamicas: creación dinamica de tareas (tipos t'
José Alfonso Malo Romero Extraído de: http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Ada_/_Introducci%C3%B3n GNU Free Documentation License
El contenido está disponible bajo los términos de GNU Free Documentation License
Licencia GNU Free Documentation License: http://www.gnu.org/copyleft/fdl.html
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Curso de Ada - Tareas dinamicas: creación dinamica de tareas (tipos t'

No se han encontrado cursos relacionados con ' Curso de Ada - Tareas dinamicas: creación dinamica de tareas (tipos t'
Gente Wiki
Jeannette Escobar
Soy abogado y traductora. Profesora de ingles legal para abogados y mediadora de la corte suprema de la florida usa...
Vicente
Mi nombre es vicente paciencia gutiérrez y soy biólogo especialista en dietética y nutrición humana, con cursos de ansiedad y...
Farmacología
Jorge Orlando Guevara Balladares
Soy jorge orlando guevara balladares, mayor de edad, casado, economista y master en metodologia, soy docente e investigador universitario y...
Innovación, Análisis estadístico,...
Vicente Dopico Paz
Coordinador de formación y servicios de forgatrans, formación galega de transportes. *consejero de seguridad en adr y rid. *técnico en...
Patricia
Soy Profesora de Economía en Tunuyán, Mendoza, Argentina. Me interesa compartir y rescatar conocimientos para poder mejorar mis prácticas docentes
Jorge Herrera Rivero
Profesional en informatica con mas de 30 años de experiencia, en especial campo de desarrollo de sistemas.
Suscribirse
¿Estás seguro de que deseas eliminar este capítulo?