Agregados a 2MIL
Se hicieron las siguientes extensiones al formalismo 2MIL de acuerdo a las necesidades del presente trabajo.
![]() | Tipo general: constructor gtype. Al estilo de los punteros a void de C/C++. Permiten declarar procedimientos con parámetros que varían su tipo dependiendo del uso que se les de. |
![]() | Tipo lista: contructor list of. Permite representar listas de longitud variable, son implementables, por ejemplo, como listas enlazadas y pueden ser accedidas por índice numérico como si fueran arreglos. |
![]() | Eventos anunciados por un módulo: bloque announcesevent {conjunto de eventos}. Permite indicar el conjunto de eventos que son invocados por los procedimientos de un módulo. |
![]() | Notación: nombre_proc (parametros): retorno ® [(r)] evento1 <parametros> [|| [(r)] evento2 <parametros> || ...]. Permite indicar cuál de los procesos del módulo anuncia un evento (éste debe figurar en el bloque announcesevent). La (r) indica que se anuncia por medio de announce_r lo que implica que el procedimiento anunciante se bloqueará en espera de un retorno (ver Descripción Módulo ADM_EVENTOS). Un evento puede ser constante o estar formado por variables que toman valores de un tipo dado. Por ejemplo: exceso_pl (anunciado por AUDITOR) es un evento constante, en cambio, los eventos de la forma traductor_para_f (anunciados por PAQUETES), donde f es un Id_fuente, son ejemplos de la segunda clase de eventos. |
![]() | Módulos parametrizados: un conjunto de módulos de idéntica estructura son nombrados con un prefijo común y diferenciados por un parámetro natural.De la misma forma es posible parametrizar los procedimientos y tipos exportados por tales módulos.Ejemplo: TRADUCTOR-i. |