A informação necessária ao Controlador de Diálogo consiste na definição dos Guiões de Interacção, na descrição das instâncias existentes e nos canais de comunicação com os outros componentes de MIU. Temos então:
CD :: DEFS: GISym -> GIdef INSTS: InstId -> InstDescr OUTSM: CHAN INSM: CHAN INLX: CHAN OUTLX: CHAN; GIdef = DECISION | SYNTH | VALSYNTH | FFSYNTH | RELSYNTH | SISTSYNTH | SETSYNTH | TUPSYNTH; FFSYNTH :: DREF: TypeId; InstDescr :: FATHER: NIL | InstId VARS: VarId -> Value EVSEQ: Conditions CMDLINE: NIL | CmdLineDescr;
O seu funcionamento consiste basicamente em:
Figure 24: Composição do Controlador de Diálogo
Na fig. 24 são apresentados os ficheiros que compõem o Controlador de Diálogo. Note-se que as setas representam uma relação de inclusão textual, pelo que podem existir (e existem de facto) referências cruzadas entre os ficheiros.
O ficheiro cd.n contém o corpo principal do Controlador. Em cdcom.n estão as funções de comunicação e este por sua vez inclui msgs.n onde são definidos os protocolos de comunicação; petrinet.n é o animador de Petri Nets e mkpn.n um gerador das mesmas a partir de descrições de EVSEQ utilizando as seguintes definições:
si.n é o interpretador de instruções e cdff.n a cdtup.n são os módulos de tratamento dos modelos.PNDescr = NIL | SeqDescr | RepDescr | ConcSDescr | ConcADescr | OpcDescr | EvId; SeqDescr :: P: PNDescr /* Sequenciacao */ S: PNDescr; RepDescr :: DREF: PNDescr; /* Repeticao */ ConcSDescr :: A: PNDescr /* Conc. Sincrona */ B: PNDescr; ConcADescr :: A: PNDescr /* Conc. Assincrona */ B: PNDescr; OpcDescr :: A: PNDescr /* Alternativa */ B: PNDescr;
Finalmente, em share são feitas definições globais aos três componentes do MIU. Tanto este ficheiro como msgs.n são partilhados pelos três componentes do sistema.