Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Cursos gratis / Curso de Ada - Aceptación de citas (accept)

Curso de Ada - Aceptación de citas (accept)

 ****- (11 opiniones)
GNU Free Documentation License Curso gratis de José Alfonso Malo Romero - 16 de Marzo de 2006
Temas Relacionados: Programación estructurada
54. Aceptación de citas (accept)
La forma de aceptar una cita y ejecutar las sentencias que se deseen es mediante la sentencia accept, dentro del cuerpo de la tarea que acepta la cita, cuya sintaxis es:

acceptación_cita ::= accept identificador [ ( expresión ) ] [ ( especificación_parámetro { ; especificación parámetro } ) ] [ do secuencia_de_sentencias end [ identificador ] ] ;

Por ejemplo:

accept Entrada (N: Integer) do -- ... Secuencia de sentencias. end Entrada;

Se deben repetir los parámetros formales declarados en el punto de entrada de la especificación de la tarea.

La diferencias fundamentales entre los puntos de entrada y los procedimientos son:

  • El código existente dentro en la sentencia accept es ejecutado por la tarea propietaria y no por la parte invocante, como en los procedimientos.

  • Además, hasta que la tarea no llegue a la ejecución de dicha sentencia accept, no puede ser invocado el punto de entrada. De igual manera, la parte invocante queda suspendida hasta que termine la ejecución de la sentencia accept. Este es el fundamento de la cita.

La forma más simple de sincronizar una tarea que dependa de la terminación de otro código es por ejemplo:

task Simple is entry Continuar; end Simple; task body Simple is begin -- ... accept Continuar; -- Se queda bloqueado hasta que se cite. -- ... end Simple;

Como otro ejemplo, si se quiere implementar una tarea que realice un control de escritura y lectura sobre un buffer de un único elemento:

task Buffer1 is entry Escribir (Elem: TElemeto); entry Leer (Elem: out TElemento); end Buffer1; task body Buffer1 is ElemLocal: TElemento; begin loop accept Escribir (Elem: TElemento) do ElemLocal:= Elem; -- Guarda el elemento. end Escribir; accept Leer (Elem: out TElemento) do Elem := ElemLocal; -- Devuelve el elemento. end Escribir; end loop; end Buffer1;

Se aceptan llamadas Buffer1.Escribir (...) y Buffer1.Leer (...) de forma consecutiva, sin posibilidad de escribir o leer dos o más veces seguidas. Varias tareas diferentes pueden invocar a los puntos de entrada y, por tanto, pueden quedar encoladas. Cada punto de entrada tiene una cola de tareas que esperan llamar a dicho punto de entrada. El atributo Escribir'Count contiene el número de tareas que se encuentran encoladas a la espera de que se ejecute el punto de entrada Escribir, pero sólo se puede utilizar dentro de la tarea que contiene el punto de entrada. Con la ejecución de la sentencia accept, se extraería la primera tarea de la cola (la primera que llegó).

Si hay definidos varios puntos de entrada simultáneamente, se puede aceptar uno de ellos, por ejemplo, como:

accept Aviso (3) (Elem: Telemento) do -- ... end Aviso;

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 - Aceptación de citas (accept)'
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 - Aceptación de citas (accept)'

En la edición anterior, se explicó las bases de Netfilter/IPTables. En esta segunda entrega, se... Más »
Es uno de los mejores cortafuegos disponibles, incluyendo soluciones comerciales, y desde luego, la mejor... Más »
Este documento pretende ser una guía rápida de configuración y puesta en funcionamiento de procedimientos... Más »
Es una lista de frases que contiene las más comunes y utilizadas. This is a... Más »
Este documento (el primero de tres) pretende presentar, a grandes rasgos, el funcionamiento de Netfilter... Más »
Gente Wiki
Agustín Manig Valenzuela
Por vocación profesor universitario en el área de tecnología para la educación, interesado en hacer realidad un proyecto alternativo humano...
Bolivar Villa
Soy ing. Quimico y actualmente curso una maestria en sistemas de manufactura. Trabajo en una empresa de ingenieria y mi...
Patricio Byerly
Ing. Biotecnólogo con maestría en biotecnología ambiental experiiencia en el ramo ambiental y manejo de recursos naturales.
Certificación de calidad medioambiental, Conservación medioambiental,...
Pablo Quearse
Soy un arquitecto español que reparto mi tiempo en la realizacion de algunas obras (muchas de ellas de decoracion de...
Laurent
Soy instructor de oratoria y locucion. Capacitando a jovenes promesas de la comunicacion asi como a empresarios y ejecutivos...
Psic. Jesús José Rincón
Psicólogo venezolano, especialista en marketing y publicidad, conferencista y facilitador de procesos de aprendizaje.
Emprendedores, Encuestas y estudios de opinión,...
Suscribirse
¿Estás seguro de que deseas eliminar este capítulo?