• Nenhum resultado encontrado

Utilizando a Programação Visual no Modelo de Máquina Geométrica

N/A
N/A
Protected

Academic year: 2021

Share "Utilizando a Programação Visual no Modelo de Máquina Geométrica"

Copied!
12
0
0

Texto

(1)

Utilizando a Programac¸˜ao Visual no Modelo de M´aquina

Geom´etrica

Renata S. Reiser, Marcos B. Cardoso, Grac¸aliz P. Dimuro

Universidade Cat´olica de Pelotas, Escola de Inform´atica - NAPI,

Pelotas, Brazil, 402

e

Antˆonio C. R. Costa

Universidade Federal do Rio Grande do Sul, Instituto de Inform´atica - PPGC

Porto Alegre, Brazil, 15064

{mbcardo,reiser,rocha}@atlas.ucpel.tche.br

Abstract

This paper presents an experiment concerning the formal specification of visual languages, namely the specifi-cation of a visual language for the Geometric Machine model, denoted by GMVL. The language provides graphic representations for computational processes interpreted in the ordered structure of that model. The specification fol-lows the approach proposed in the GENGED project, developed in the T. U. Berlin. The visual language supports a visual alphabet and a visual grammar. A process constructor is represented by a graph transformation related to a rule application in the the visual grammar. In the same way, (possibly partial, recursive or infinite) processes are repre-sented by typed graphs in the visual alphabet, including concurrent and non-deterministic processes. The syntactical levels in the GMVL-syntax includes an abstract syntax, related to the logical level of the graphic structures, and a concrete syntax, concerned with the graphical layout.

Keywords: Visual Languages, Concurrence, Non-Determinism, Parallel Programming, Geometric Machine Mo-del

Resumo

Este trabalho apresenta uma experiˆencia na especificac¸˜ao formal de uma linguagem de programac¸˜ao visual, de-nominada Linguagem Visual para a M´aquina Geom´etrica, indicada por LVMG. A linguagem provˆe representac¸˜oes gr´aficas para os processos computacionais interpretados na estrutura ordenada deste modelo. A especificac¸˜ao segue a abordagem proposta no projeto GENGED, desenvolvido em T. U. Berlin. A linguagem visual suporta um alfabeto vi-sual e uma gram´atica vivi-sual. Um construtor de processo ´e representado por uma transformac¸˜ao de grafos ralacionada a uma regra de aplicac¸˜ao na gram´atica visual. De forma an´aloga, processos (possivelmente infinitos e recursivamente definidos) s˜ao representados por grafos tipados in alfabeto visual, incluindo interpretac¸˜ao para concorrˆencia s´ıncrona e n˜ao-determin´ıstica. Os n´ıveis sint´aticos na sintaxe LVMG incluem uma sintaxe abstrata, relacionada com o n´ıvel l´ogica das estruturas gr´aficas, e uma sintaxe concreta, referente ao layout gr´afico.

Palavras chaves: Linguagens Visuais, Concorrˆencia, N˜ao-determinismo, Programac¸˜ao Paralela, Modelo de M´aquina Geom´etrica

(2)

1

Introduc¸˜ao

Considerando-se as vantagens da programac¸˜ao visual na modelagem de sistemas concorrentes e distribu´ıdos, o objetivo deste trabalho foi a especificac¸˜ao formal da Linguagem Visual para a M´aquina Geom´etrica (LVMG). O trabalho segue a abordagem proposta no projeto GENGED [2] e inclui a especificac¸˜ao do alfabeto visual e da gram´atica visual para a linguagem LVMG com ˆenfase nas construc¸˜oes recursivas. Para tal, s˜ao consideradas dois tipos de sintaxe: a sintaxe abstrata, respons´avel pela estruturac¸˜ao l´ogica das express˜oes gr´afica (diagramas) da linguagem visual e a sintaxe concreta, orientando a definic¸˜ao do layout de cada express˜ao para manipulac¸˜ao do usu´ario. Neste sentido, os resultados apresentados constituem-se na primeira etapa para definic¸˜ao de um ambiente visual de programac¸˜ao para o modelo de M´aquina Geom´etrica (MG)[7, 8] capaz de prover interpretac¸˜ao para processos computacionais, envolvendo paralelismo e n˜ao-determinismo.

Embora a descric¸˜ao textual de express˜oes visuais ou diagramas seja sempre uma tarefa dif´ıcil devido sua estrutura gr´afica, seu poder de express˜ao constitui-se numa poderosa ferramenta para compreens˜ao e construc¸˜ao de sistemas complexos. Alguns dos importantes benef´ıcios do uso das representac¸˜oes visuais/espaciais em modelo computacionais que envolvam programac¸˜ao paralela, como o caso do modelo GM s˜ao: o n´umero de argumentos (aridade) envolvidos na definic¸˜ao dos processos alg´ebricos, as (poss´ıveis) definic¸˜oes recursivas dos construtores, a composic¸˜ao funcional, as computac¸˜oes paralelas e n˜ao-determin´ısticas relacionadas com a sincronizac¸˜ao de processos, e finalmente, a definic¸˜ao espacial dos processos e estados computacionais sobre um espac¸o geom´etrico. Entende-se que tais caracter´ısticas sejam relevantes para tornar a programac¸˜ao no modelo MG mais acess´ıvel aos usu´arios em geral, possibilitando sua aplicac¸˜ao na Computac¸˜ao Cient´ıfica, em especial na Matem´atica Intervalar [9, 10], justificando-se seu estudo e utilizac¸˜ao.

Em analogia a construc¸˜ao da estrutura ordenada do modelo MG fundamentada na Teoria dos Dom´ınios [1], o desenvolvimento da correspondente linguagem visual utiliza conceitos e fundamentos da ´Algebra dos Processos [6] e da Teoria dos Grafos [11]. Os processos (incluindo os elementares) s˜ao representados por grafos consistindo de nodos e arestas, aos quais s˜ao associados atributos e conex˜oes e os construtores de processos (produto seq¨uencial e paralelo, soma determin´ıstica e n˜ao-determin´ıstica) s˜ao representados por transformac¸˜oes de grafos.

Como fundamentac¸˜ao, apresenta-se na pr´oxima sec¸˜ao um resumo do modelo MG, onde s˜ao descritos os tipos de processos computacionais modelados e as principais caracter´ısticas do dom´ınio indutivo onde est˜ao representados. Na subsec¸˜ao 2.2, apresenta-se uma breve descric¸˜ao da linguagem textual induzida pelas representac¸˜oes obtidas na estrutura ordenada do modelo MG. A seguir, na subsec¸˜ao 2.3 mostra-se como ´e definida uma LV, de acordo com o sugerido na literatura [5]. A especificac¸˜ao da LVMG est´a dividido em duas etapas apresentadas nas sec¸˜oes 3 e 4, respectivamente. A especificac¸˜ao do alfabeto envolve a especificac¸˜ao de s´ımbolos e a especificac¸˜ao de conex˜oes. Na Especificac¸˜ao da Gram´atica s˜ao constru´ıdas as regras que definem a gram´atica visual. Estas duas etapas formalizam a Especificac¸˜ao do Editor Gr´afico da linguagem LVMG, respons´avel pelo layout do ambiente visual para programac¸˜ao no modelo MG, veja Figura 5. Neste trabalho, est˜ao inseridos exemplos incluindo a representac¸˜ao de construtores recursivas relacionados com a estrutura temporal e espacial do modelo MG.

2

Fundamentac¸˜ao

2.1

O Modelo de M´aquina Geom´etrica

No modelo de M´aquina Geom´etrica, a mem´oria e os processos computacionais possivelmente infinitos, s˜ao rotuldados por posic¸˜oes de um espac¸o geom´etrico e modelam estruturas matriciais multi-dimensionais. Neste modelo ´e poss´ıvel representar, al´em da construc¸˜ao temporal, a construc¸˜ao espacial respons´avel pela modelagem da concorrˆencia s´ıncrona e do conflito de acesso `a mem´oria.

A estrutura ordenada do modelo MG ´e definida por espac¸os coerentes, dom´ınios alg´ebricos introduzidos por Gi-rard [4] na busca de fundamentac¸˜ao para a l´ogica linear. Em especial, a interpretac¸˜ao dos processos ´e definida pelo Espac¸o Coerente dos Processos Computacionais (D∞), cuja construc¸˜ao indutiva ´e constru´ıda em n´ıveis e obtida a

partir do conjunto de processos elementares, pela aplicac¸˜ao sucessiva de operadores representando os construtores de processos.

Seguindo a metodologia proposta por Scott [12], cada n´ıvel da construc¸˜ao est´a identificado por um subespac¸o, representando processos cujas execuc¸˜oes est˜ao limitadas apenas na construc¸˜ao temporal. Isto se justifica porque cada subespac¸o reconstr´oi todos os objetos do n´ıvel anterior, preservando suas propriedades e relac¸˜oes, al´em de construir os

(3)

novos objetos. Compat´ıvel com a abordagem alg´ebrica, o relacionamento entre os n´ıveis ´e expresso por func¸˜oes linea-res denominadas imers˜oes e projec¸˜oes, interpretanto os construtolinea-res de processos e seus destrutolinea-res, linea-respectivamente. Pelo procedimento de completac¸˜ao, assegura-se a existˆencia do menor ponto fixo para equac¸˜oes recursivas definidas pela composic¸˜ao infinita destes morfismos.

De forma an´aloga, no Espac¸o Coerente de Estados Computacionais (S) obt´em-se interpretac¸˜ao para estados computacionais n˜ao-determin´ısticos, representados por conjuntos de trac¸os lineares de func¸˜oes lineares definidas do Espac¸o Coerentes de Posic¸˜oes (I) para o Espac¸o Coerente de Valores (V).

Em [7], interpretac¸˜oes constru´ıdas por prefixac¸˜ao (ou sufixac¸˜ao) comprovam que este modelo ´e compat´ıvel com a diversidade dos construtores. Al´em disso, uma generalizac¸˜ao do modelo ´e obtida com a introduc¸˜ao da M´aquina Geom´etrica Distribu´ıda (MGD), baseada na an´alise da construc¸˜ao dos ordinais transfinitos como seq¨uˆencias generali-zadas de n´umeros naturais.

A vers˜ao intervalar do modelo MG ´e apresentada em [9] e denominada M´aquina Geom´etrica Intervalar (MGI). Os estados, processos e testes computacionais s˜ao definidos tomando valores no conjunto dos n´umeros reais extendidos e rotulados por posic¸˜oes do espac¸o euclidiano tridimensional. O conjunto dos intervalos de reais define os conjuntos de dados de entrada e de sa´ıda do modelo MGI. Para representac¸˜ao dos estados computacionais considera-se a construc¸˜ao dos reais comput´aveis utilizando o Espac¸o Coerente Bi-estruturado de Intervalos Racionais apresentada em [3]. Uma linguagem de programac¸˜ao textual ´e introduzida em [10] para prover semˆantica a algoritmos que executam operac¸˜oes aritm´eticas intervalares.

2.2

A Linguagem Textual para o Modelo MG

Com base nas interpretac¸˜oes obtidas sobre o espac¸o coerente D∞, obtem-se uma linguagem de programac¸˜ao textual,

indicada por L(D∞), para implementac¸˜ao de algoritmos paralelos e n˜ao-determin´ısticos no modelo MG.

Seja K o conjunto dos s´ımbolos constantes dado pela uni˜ao K = IPS IT, onde IP e IT denotam o conjunto dos

s´ımbolos representando processos elementares e os testes booleanos interpretados em D∞, respectivamente. Al´em

disso, seja FOp = {Id, k , |, · , + } o conjunto dos s´ımbolos representando os construtores de processos em D∞,

onde

(i) Id ∈ IP ´e o processo identidade.

(ii) k, |, · : IP× IP → IP s˜ao s´ımbolos bin´arios representando o produto paralelo, a soma n˜ao-determin´ıstica e o

produto seq¨uencial;

(iii) + : IP × IP × IT → IP ´e um s´ımbolo de aridade 3 representando a soma determin´ıstica, onde ∀b ∈ IT,

+b: IP × IP → IP.

O conjunto das express˜oes da linguagem L(D∞) induzida pelas interpretac¸˜oes em D∞´e definido por:

(i) Vari´aveis e os s´ımbolos constantes descritos acima s˜ao express˜oes da linguagem L(D∞).

(ii) se ∗ ∈ {k , | , · , +b} e t0, t1, . . . , tn, tn+1, . . . b ∈ L(D∞) ent˜ao ∗0i=n+1(ti) = tn+1∗ tn ∗ . . . ∗ t0 e

∗n+1

i=0(ti) = t0∗ . . . ∗ tn∗ tn+1s˜ao express˜oes da linguagem L(D∞) (finitas na construc¸˜ao temporal de D∞);

(iii) se ∗ ∈ {k , | , · , +b} e t0, t1, . . . , tn, tn+1, . . . ∈ L(D∞) ent˜ao ∗∞n=0tn = t0∗ t1∗ . . . ∗ tn+1∗ . . . ´e uma

express˜ao na linguagem L(D∞) (infinita na construc¸˜ao temporal de D∞).

Diz-se que cada express˜ao da linguagem L(D∞) ´e a representac¸˜ao de um processo em D∞, ou ainda, o processo ´e

a interpretac¸˜ao de sua correspondente express˜ao textual na linguagem L(D∞). O mesmo pode ser considerado quando

diagramas s˜ao consideramos como as express˜oes gr´aficas para LVMG.

Numa abordagem uni-dimensional, na Figura 1(a) mostra-se a representac¸˜ao de um processo elementar dk∈ I P

que executa a ac¸˜ao identificada por d rotulada por k. Na Figura 1(b) tem-se a representac¸˜ao gr´afica do processo identidade, indicado pela express˜ao Skip ∈ IP, no qual o estado de entrada coincide com o estado de sa´ıda. A

abordagem n˜ao-determin´ıstica do modelo forc¸a a optar-se por um tratamento n˜ao-tradicional dos testes computacio-nais. Para cada texte booleano t ∈ IT (graficamente representado na Figura 1(c)) capaz de textar um estado

deter-min´ıstico s, consideram-se duas formas distintas de textes para um estado n˜ao-deterdeter-min´ıstico s: uma forma existential (t∃(s) ≡ ∃s ∈ s . t(s)) e uma forma universal (t∀(s) ≡ ∀s ∈ s . t(s)), respectivamente representados na Figura

(4)

Figura 1:Processo elementar, processo identidade e testes computacionais

1(d)(e). Ambas as formas coincidem com a forma simples de texte t quando s ´e representado um conjunto unit´ario -identificando um estado determin´ıstico em S.

Considerando-se os processos elementares dke ele teste b, apresenta-se as representac¸˜oes gr´aficas para os

proces-sos resultantes da aplicac¸˜ao dos construtores do conjunto IOpdo modelo MG. Primeiramente, na Figura 2(a), tem-se

o produto seq¨uencial dk· el. Ent˜ao este produto seq¨uencial primeiro executa d colocando o resultado na posic¸˜ao k e

ap´os o seu t´ermino, inicia a execuc¸˜ao do processo e relativo `a posic¸˜ao l. Na Figura 2(b), a direita do processo seq¨uen-cial, est´a representado a soma determin´ıstica dk+

bel, representando uma escolha: executa-se o processo elementar

dkse o teste b ´e verdadeiro, sen˜ao executa-se o processo elementar el. A soma n˜ao-determin´ıstica | dk, ek| executada

entre os processos elementares mutuamente exclusivos (ou conflitantes) na posic¸˜ao k de mem´oria, est´a representada na Figura 2(c). E por fim, na Figura 2(d) apresenta-se o produto paralelo k dk, el k entre os processos elementares

concorrentes, com k 6= l, representando a execuc¸˜ao simultˆanea dos correspondentes processos.

Figura 2:Construtores de processos aplicados a processos elementares

No caso geral, dois processos s˜ao mutuamente exclusivos sempre que existir no m´ınimo uma mesma posic¸˜ao de mem´oria afetada por ambos. Neste sentido, a arbitrariedade da escolha constitui-se na principal caracter´ıstica da soma n˜ao-determin´ıstica de processos.

A construc¸˜ao indutiva e ordenada do modelo MG garante a representac¸˜ao de processos parciais e facilitam a interpretac¸˜ao semˆantica associada `a transic¸˜ao de estados que define um processo computacional. A Figura 3 mos-tra alguns processos parciais, finitos na construc¸˜ao temporal, representados no modelo MG e relacionados com os construtores do conjunto IOpcuja express˜ao textual ´e dada por dk· Skip, dk+bSkip, k dk, Skip k e | dk, Skip |,

respectivamente.

Figura 3:Objetos parciais representados no modelo MG

Al´em destes, o modelo MG admite representac¸˜ao para processos infinitos no sentido temporal e espacial, expressos recursivamente na linguagem L(D∞) pelas express˜oes ·∞k=0dk , k∞k=0dk (Veja Figuras 4(a)(b)).

(5)

2.3

Linguagens Visuais

As linguagens visuais s˜ao usadas em muitas ´areas de aplicac¸˜ao, incluindo aprendizagem de conhecimento, aplicac¸˜oes de t´ecnicas de programac¸˜ao para n˜ao-programadores, adaptac¸˜ao de programas padronizados e o desenvolvimento de interfaces gr´aficas para usu´arios. Al´em destes, as linguagens visuais s˜ao utilizadas para desenvolvimento de programas computacionais, especialmente aqueles destinados `a an´alise e desenvolvimento de sistemas. Exemplos bem conheci-dos para especificac¸˜ao e modelagem de uma linguagem visual (LV) podem ser encontraconheci-dos em [5]. A definic¸˜ao de uma LV consiste na construc¸˜ao de um alfabeto visual (AV) e uma gram´atica visual (GV), produzindo a especificac¸˜ao da linguagem visual. Dada uma especificac¸˜ao, uma linguagem visual ´e um conjunto de todos os diagramas (express˜oes da linguagem) que podem ser derivados da aplicac¸˜ao das regras gramaticais a um diagrama inicial. De acordo com o conte´udo de uma especificac¸˜ao de LV se constr´oi o editor de alfabeto e o editor de gram´atica. A partir da definic¸˜ao da LV usando estes editores, uma especificac¸˜ao ´e gerada por um editor gr´afico, respons´avel pela construc¸˜ao de diagramas sint´aticos dirigidos (regras gramaticais). Veja a Figura 5.

Figura 5:Especificac¸˜ao do ambiente para da LV para processos no modelo MG

S˜ao considerados dois tipos de sintaxe para construc¸˜ao do alfabeto e da gram´atica de uma LV. A sintaxe abstrata, respons´avel pela estrutura l´ogica das express˜oes da linguagem e representadas por diagramas especiais definidos por grafos dirigidos. A sintaxe concreta, orientando a definic¸˜ao do layout de cada diagrama, para manipulac¸˜ao do usu´ario. Nesta abordagem, o alfabeto visual ´e representado por um grafo, e a gram´atica visual ´e representada por uma gram´atica de grafos. Um alfabeto visual estabelece um conjunto de s´ımbolos e conex˜oes utilizados na especificac¸˜ao de uma linguagem visual, ou seja, define o vocabul´ario de uma LV. A construc¸˜ao de cada s´ımbolo do alfabeto consiste na construc¸˜ao de um grafo onde os nodos e arestas est˜ao relacionados por atributos e conex˜oes. Uma gram´atica visual ´e representada por uma gram´atica de grafos que consistem de um diagrama inicial e um conjunto finito de regras que geram outros diagramas da linguagem visual que no caso, representam os processos modelados pelo modelo MG.

2.4

Teoria dos Grafos

Um grafo ´e dado por dois conjuntos disjuntos, que determinam os objetos do grafo: o conjunto de nodos do grafo, indicados neste trabalho por retˆangulos e o conjunto de arcos (arestas) dirigidos geralmente visualizados como flechas. Todo grafo ´e constru´ıdo sobre um grafo de tipos, considerando-se operac¸˜oes sobre estes tipos, de acordo com uma especificac¸˜ao alg´ebrica. Os objetos de um grafo podem possuir atributos que s˜ao utilizados para armazenar dados (propriedades como nome e posic¸˜ao) relacionados com estes objetos(processos).

Neste texto, um atributo ser´a um nodo do grafo denotado por um retˆangulo arredondado, da mesma forma que um arco de atributo ´e denotado por uma flecha que conecta o nodo atributo com seu tipo (conjunto). Em particular, quando os grafos est˜ao instanciados, o arco de atributo conecta o atributo com seu valor corrente. Um relacionamento entre dois grafos constitui-se numa transformac¸˜ao (morfismo) de grafos compat´ıvel com os tipos e a estrutura previamente definidos, mapeando os nodos e arcos do primeiro grafo em nodos e arcos do segundo grafo, respectivamente. Neste caso, pode-se definir uma transformac¸˜ao de grafos por um par de morfismos (possivelmente parciais): o morfismo definido sobre os nodos e o outro, definido sobre os arcos dirigidos. As transformac¸˜oes de grafos definem as regras para a manipulac¸˜ao de grafos, que mostram os aspectos dinˆamicos na construc¸˜ao dos processos representados no modelo MG. As definic¸˜oes fundamentadas na Teoria dos Grafos apresentadas ao longo deste relat´orio foram baseadas nas referˆencias [11].

(6)

3

Especificac¸˜ao do Alfabeto para a LVMG

A seguir, s˜ao apresentados os grafos associados aos testes, processos elementares e identidade no alfabeto visual (AV).

3.1

Processo Identidade

O grafo que representa o processo identidade na LV para o modelo MG possui um nodo (objeto-processo) represen-tado por uma seta na sintaxe concreta, e um nodo atributo-ac¸˜ao respons´avel por sua identificac¸˜ao nominal, conforme mostra a Figura 6. O atributo-ac¸˜ao ´e identificado pela palavra Skip que pertence a um conjunto Σ de palavras e sua representac¸˜ao ´e um retˆangulo com as extremidades arredondadas com dois arcos (conex˜oes): o primeiro com origem no nodo-atributo e que se liga ao conjunto Σ e o outro com origem no nodo-atributo e com destino no objeto-processo. Na sintaxe concreta, a func¸˜ao de inclus˜ao ´e indicada por um arco tracejado e nomeado incl ac¸˜ao, onde o nome do atributo ´e mapeado para a sua localizac¸˜ao no diagrama de representac¸˜ao do processo identidade e pr´oximo a ele fica uma especificac¸˜ao quanto ao tamanho e ao nome da fonte utilizada.

3.2

Processo Elementar

Onde processo elementar constitue-se s´ımbolos do AV definido como um grafo. Para a representac¸˜ao gr´afica de um processo elementar no AV considera-se primeiramente a sintaxe abstrata.

Nesta construc¸˜ao, os atributos de um processo elementar s˜ao caracterizados pela posic¸˜ao e ac¸˜ao e constituem-se em objetos-atributo do objeto-processo e comp˜oem o grafo que repreconstituem-senta um processo elementar. O atributo-posic¸˜ao ´e determinado pelo r´otulo que pertence a um conjunto de r´otulos e sua representac¸˜ao ´e um retˆangulo com as extremidades arredondadas. De forma an´aloga, o atributo-ac¸˜ao ´e identificado por uma palavra que pertence a Σ e sua representac¸˜ao ´e tamb´em um retˆangulo com as extremidades arredondadas. Cada objeto-atributo tˆem dois arcos (n-ac¸˜ao, n-pos):

1. o primeiro com origem no nodo-atributo se liga ao conjunto que define seu nome;

2. o outro com origem no nodo-atributo e com destino no objeto-processo elementar.

Na Sintaxe Concreta o diagrama de representac¸˜ao do processo elementar ´e identificado por um retˆangulo com duas conex˜oes laterais e dividido em partes. Nas duas divis˜oes centrais colocam-se as correspondentes posic¸˜oes e ac¸˜oes. Esta tarefa ´e formalizada pelas func¸˜oes de inclus˜ao, indicadas por arcos tracejados e nomeadas incl pos e incl ac¸˜ao. As func¸˜oes de inclus˜ao mapeiam os nomes dos atributos a sua localizac¸˜ao no diagrama de representac¸˜ao do processo elementar. Pr´oximo a elas fica uma declarac¸˜ao do tamanho e do nome da fonte utilizada, conforme mostra a Figura 7.

Figura 6: Representac¸˜ao do Processo Identidade

(7)

3.3

Testes Computacionais

Da mesma forma s˜ao constru´ıdas as especificac¸˜oes dos grafos que identificam os testes computacionais. Nas Figuras 8 e 9tem-se a especificac¸˜ao para os testes universal e existencial, respectivamente.

Figura 8: Teste Computacional Universal Figura 9: Teste Computacional Existencial

3.4

Processo Seq ¨uencial

O objeto-processo seq¨uencial resulta da aplicac¸˜ao do construtor produto seq¨uencial. A Figura 10 mostra o grafo do tipo processo seq¨uencial.

Figura 10:Representac¸˜ao de processo seq¨uencial Figura 11:Representac¸˜ao de processo recursivo seq¨uencial

Pela sintaxe abstrata, o diagrama de representac¸˜ao do produto seq¨uencial ´e definido sempre que se puder explicitar os dois objetos e os conectores que o constroem. Tanto o primeiro (identificado por um objeto-processo acrescido do conector “para”) quanto o segundo fator (identificado por um objeto-processo acrescido do conector “de”) s˜ao subgra-fos gerados pela LV representando processos parciais ou elementos do alfabeto visual. Na sintaxe concreta o produto seq¨uencial ´e representado por dois nodos onde eles se concatenam formando um novo processo. O diagrama ´e com-posto tamb´em pelas func¸˜oes de inclus˜ao, de dois argumentos, identificados neste caso pelas express˜oes incluir nome e comb desl. A especificac¸˜ao completa de um processo seq¨uencial instanciado `a processos elementares, est´a explicitada na Figura 12.

3.5

Processo Recursivo Seq ¨uencial

A especificac¸˜ao no AV de um processo recursivo sequencial ´e constru´ıda de forma an´aloga e est´a apresentada na Figura 11.

(8)

Figura 12:Processo seq¨uencial instanciado a processos elementares

3.6

Processo Seq ¨uencial Parcial

O grafo que modela um produto seq¨uencial parcial ´e representado por dois sub-grafos onde um deles ´e sempre o Processo Identidade Skip. Neste casos, reduz-se a representac¸˜ao, sendo o processo seq¨uencial parcial representado por um grafo que possui um subgrafo representando um objeto-processo (subgrafo gerados pela LV representando processos ou elementos do alfabeto visual) e uma conex˜ao (sub-entendida como o Processo Identidade). Pela sintaxe abstrata, o diagrama de representac¸˜ao do processo seq¨uencial parcial ´e definido sempre que se puder explicitar um dos objetos e o conector. Neste caso, quando o

1. objeto-processo ´e acrescido do conector “para” tem-se a representac¸˜ao do processo seq¨uencial parcial `a direita; e

2. objeto-processo ´e acrescido do conector “de” tem-se a representac¸˜ao do processo seq¨uencial parcial `a esquerda. Na sintaxe concreta as transformac¸˜oes s˜ao definidas por func¸˜oes un´arias: as func¸˜oes deslocamento (desl dir e desl esq) e as func¸˜oes de inclus˜ao (inclui ndir e inclui nesq). Os diagramas apresentados nas Figuras 13 e 14 representam processos seq¨uenciais parciais `a direita e `a esquerda, respectivamente.

Figura 13: Processo seq¨uencial parcial `a direita Figura 14: Processo seq¨uencial parcial `a esquerda

Os processos seq¨uenciais parciais podem ser definidos como processos seq¨uenciais sempre que um dos fatores ´e o Processo Identidade.

3.7

Processo Produto Paralelo

O grafo do tipo produto paralelo identifica processos concorrentes e est´a representado na Figura 15. Pela sintaxe abstrata, o diagrama de representac¸˜ao de um processo concorrente ´e definido sempre que se puder explicitar os dois objetos-processo, as correspondentes posic¸˜oes de mem´oria afetadas pelas suas execuc¸˜oes e os conectores que o cons-troem. Tanto o primeiro objeto (identificado por um objeto-processo acrescido do conector “fator inf”) quanto o segundo (identificado por um objeto-processo acrescido do conector “fator sup”) s˜ao subgrafos gerados pela LV.

(9)

Figura 15:Representac¸˜ao de processo produto paralelo

Figura 16: Representac¸˜ao de processo recursivo produto pa-ralelo

Na sintaxe concreta, o diagrama para processos concorrentes consiste num grafo formado por dois subgrafos. O grafo do tipo processo concorrente possue um objeto-atributo, representados por uma janela, indicando o conjunto de posic¸˜oes de mem´oria afetadas quando da execuc¸˜ao de cada processo representado no diagrama. Veja na Figura 15, a janela Υ(k p, q k). Cada subgrafo representa um objeto-processo, localizado graficamente entre barras grifadas, verticais e paralelas. A especificac¸˜ao do diagrama ´e completada pela composic¸˜ao das func¸˜oes de dois argumentos que retornam um argumento: inserepp e incluipp nome. O grafo que representa o produto paralelo s´o pode ser constru´ıdo quando Υ(p) e Υ(q) s˜ao conjuntos s˜ao disjuntos (caracterizando processos s˜ao concorrentes). Na Figura 17, est´a representado um processo concorrente instanciado a processos elementares com os objetos-atributo e as conex˜oes desta instˆancia, pode se observar tamb´em a concorrˆencia pelo dke elonde Γ(dk)=k, Γ(el)=l e k6=l.

Logo a seguir apresenta-se outros exemplos de instˆancias aplicadas a processos concorrentes. No caso da Figura 17, sup˜oe-se que os conjuntos Υ(du· ep) = {u, p} e Υ(dt· el) = {t, l} s˜ao disjuntos.

Figura 17:Processo paralelo instanciado a processos seq¨uenciais

3.8

Processos Recursivo Produto Paralelo

A especificac¸˜ao de um processo recursivo produto paralelo ´e obtido da mesma forma e est´a representada na Figura 16. Neste caso, considera-se que o conjunto de posic¸˜oes de mem´oria ´e constru´ıdo pelo conjunto dos naturais extendidos.

3.9

Processos Produto Paralelo Parcial

O grafo que modela um produto paralelo parcial ´e representado por dois sub-grafos onde um deles ´e sempre o Processo Identidade representado pela express˜ao Skip. Neste caso, reduz-se a representac¸˜ao, sendo o processo concorrente

(10)

parcial representado por um diagrama que possui dois subgrafos: um destes subgrafos representa um objeto-processo (subgrafo gerados pela LV representando processos obtidos por aplicac¸˜ao de construtores ou elementos do alfabeto visual); outro representa o Processo Identidade. Estes subgrafos tamb´em est˜ao graficamente limitados por barras grifadas, verticais e paralelas. Pela sintaxe abstrata, o diagrama de representac¸˜ao do processo concorrente parcial ´e definido sempre que se puder explicitar um dos objetos e o conector que o constroem. Neste caso, tem-se

1. o objeto-processo acrescido do conector “fator sup” representa do processo concorrente parcial superior;

2. o objeto-processo acrescido do conector “fator inf” representa do processo concorrente parcial inferior.

Na sintaxe concreta as transformac¸˜oes s˜ao definidas por func¸˜oes un´arias, no caso func¸˜oes inspp sup e inspp inf e as func¸˜oes nomepp sup e nomepp inf. Considera-se que Γ(Skip) = , ou seja, o Processo Identidade ´e sempre concor-rente com os demais processos computacionais. Os diagramas apresentados nas Figuras 18 e 19 que representam processos concorrentes parciais superior e inferior, respectivamente.

Figura 18:Processo concorrente Parcial Superior Figura 19:Processo concorrente parcial inferior

4

Especificac¸˜ao da Gram´atica da LVMG

Nesta sec¸˜ao apresenta-se as especificac¸˜oes da gram´atica que define as regras de construc¸˜ao dos processos na LVMG.

4.1

Especificac¸˜ao da Regra de Construc¸˜ao do Produto Seq ¨uencial

A regra de construc¸˜ao do produto seq¨uencial ´e dividida em duas etapas, identificadas como a preparac¸˜ao e a realizac¸˜ao. Cada etapa ´e modelada por uma transformac¸˜ao entre subgrafos definidos no vocabul´ario da LVMG.

Na preparac¸˜ao tem-se a construc¸˜ao dos grafos que modelam os dois produto seq¨uencial parciais, um `a direita e outro `a esquerda, sendo cada um deles representado por dois sub-grafos onde um deles ´e sempre o Processo Identidade. Esta etapa define uma restric¸˜ao (condic¸˜ao previamente satisfeita) para aplicac¸˜ao do produto seq¨uencial. Na etapa de realizac¸˜ao ocorre a execuc¸˜ao propriamente dita da regra, apresentando o como resultado o novo grafo representando o produto seq¨uencial. Esta segunda etapa s´o ocorre entre dois objetos-processo resultantes da etapa de preparac¸˜ao, e torna expl´ıcita a fase de conclus˜ao desta regra gramatical, conforme mostra a construc¸˜ao gr´afica apresentada na Figura 20. As func¸˜oes de dois argumentos que retornam um argumento e est˜ao envolvidas na especificac¸˜ao desta etapa s˜ao: inclui nome e comb desl.

4.2

Especificac¸˜ao da Regra de Construc¸˜ao de Processos Recursivos

A regra de construc¸˜ao de processos recursivos cujas especificac¸˜oes foram apresentadas nas Subsec¸˜oes 3.8 e 3.5 ´e constru´ıda tamb´em em duas etapas, preparac¸˜ao e realizac¸˜ao. As Figuras 21 e 22 ilustram a construc¸˜ao da etapa de realizac¸˜ao da regra de construc¸˜ao dos respectivos processos.

(11)

Figura 20:Regra gramatical para a construc¸˜ao de um processo seq¨uencial

Figura 21:Processo concorrente parcial superior Figura 22:Processo concorrente parcial inferior

4.3

Especificac¸˜ao da Regra de Construc¸˜ao do Produto Paralelo

A seguir, apresenta-se a transformac¸˜ao de grafos que formaliza a regra gramatical para o construtor produto paralelo, tamb´em definida em duas etapas. Na preparac¸˜ao, a sintaxe abstrata para os processos concorrentes s˜ao representados por subgrafos identificados pelos arcos de conex˜ao: fator sup e fato inf.

Na sintaxe concreta o produto paralelo ´e representado por diagramas restringidos por barras verticais paralelas en-tre os quais est˜ao dois objetos-processo sobrepostos. Estas sobreposic¸˜oes, na sintaxe concreta, s˜ao identificados pelas func¸˜oes: nomepp sup, nomepp inf (identificando o processo) e inspp sup, inspp inf (inserindo o processo). Na Figura 23, mostram-se os objetos e as conex˜oes envolvidos na transformac¸˜ao dos grafos desta subetapa e apresentam-se os correspondentes morfismos envolvidos na gram´atica. Na sintaxe concreta a transformac¸˜ao ´e definida pela composic¸˜ao das func¸˜oes que nomeiam (nomepp sup e nomepp inf) com a func¸˜ao incluipp resultando na func¸˜ao incluipp nomeia). Assim tamb´em ´e definida a func¸˜ao combpp insp. O diagrama de representac¸˜ao para a regra geral do processo paralelo est´a representado logo a seguir, na Figura 23 apresentando ambas as etapas que tornam expl´ıcita a composic¸˜ao que gera a regra de construc¸˜ao de processos concorrentes..

(12)

Conclus˜ao

O modelo GM ´e uma m´aquina abstrata, com mem´oria infinita e tempo de acesso constante , desenvolvida com o objetivo de prover uma an´alise semˆantica para computac¸˜oes (parciais) de algoritmos (recursivos) da cient´ıfica en-volvendo concorrˆencia e n˜ao-determinismo, com ˆenfase especial em aplicac¸˜oes enen-volvendo Matem´atica Intervalar, Processos Estoc´asticos e Autˆomatos Celulares. A linguagem de programac¸˜ao induzida pela estrutura ordenada do mo-delo MG mostra que objetos (conjuntos coerentes) do espac¸o coerente D∞interpretando processos representados por

express˜oes textual na linguagem L(D∞) podem ser facilmente transcritos por diagramas na correspondente

lingua-gem visual. Da mesma forma, func¸˜oes lineares definidas sobre o espac¸o coerente D∞interpretando construtores de

processos em L(D∞) podem ser facilmente transcritos por transformac¸˜oes de grafos em LVMG. Neste sentido, pela

Programac¸˜ao Visual, ´e poss´ıvel usufruir de todas as potencialidades do modelo computacional MG. Sua construc¸˜ao indutiva modelando a estrutura temporal e sua especificac¸˜ao espacial respons´avel pela sincronizac¸˜ao de posic¸˜oes de mem´oria justificam a especificac¸˜ao apresentada neste trabalho.

Agradecimento

Este trabalho foi parcialmente financiado pelas agˆencias brasileiras CTINFO/CNPq e FAPERGS.

Referˆencias

[1] Abramsky S. and Jung, A. Domain Theory. On Handbook of Logic in Computer Science. Clarendon Press. (1994).

[2] Bardohl, R. and Ermel C. Visual Specification and Parsing of a Statechart Variant using GENGED. On

Sympo-sium on Visual Languages and Formal Methods. Italy. (September, 2001), pp. 5-7.

[3] Dimuro, G. P. , Costa A. C. R. and Claudio D. M. A Coherence Space of Rational Intervals for a Construction of IR. Reliable Computing. Vol 6, No. 2, (2000), pp. 139-178.

[4] Girard, J. -Y. Linear logic. Theoretical Computer Science, Vol 1, (1987), pp. 187-212.

[5] Marriott, K. and Meyer, B. Visual Language Theory. Springer. (1998).

[6] Milner, R. Communication and Concurrency. Prentice Hall: Engl. Cliffs. (1990).

[7] Reiser, R. H. S., Costa A. C. R. and Dimuro, G. P. First steps in the construction of the Geometric Machine. On

Tendˆencias em Matem´atica Aplicada e Computacional Vol 1, No. 3, (2002), pp. 183-192.

[8] Reiser, R. H. S. The Geometric Machine - a model for concurrence and non-determinism based on coherence

spaces. Porto Alegre: CPGCC/UFRGS, (2002), 240 p.

[9] Reiser, R. H. S. , Costa, A. C. R. and Dimuro, G. P. A programming language for the Inteval Geometric Machine Model. On Eletronic Notes in Theoretical Computer Science. vol 84, (2003), 12p.

[10] Reiser, R. H. S., Costa A. C. R. and Dimuro, G. P. The Interval Geometric Machine. On Tendˆencias em

Ma-tem´atica Aplicada e Computacional Vol 1, No. 3, (2003), 10 p.

[11] Rozenberg, G. Graph Grammars and Computing by Graph Transformations. Vol 1, (1997).

[12] Scott, D. Some definitional suggestions for automata theory. On Journal of Computer and System Sciences. Vol 1, (1967), pp.187-212.

Referências

Documentos relacionados

(2014) através da World Values Survey. A preocupação com o meio ambiente, bem como a pouca importância dada ao “ter” são características dos que tendem a

Mendes Filho (2016) avaliando desempenho e características da carcaça em função de estratégias de terminação de bovinos em pastagens na época da seca, com dietas

GCC – Meu(s) Irmão(s), vocês já assinou (assinaram) seus Votos de Fidelidade, que serão depositados nos arquivos do Supremo Conselho da Ordem DeMolay para o Brasil.. Agora, você(s)

tidos para o Coefi ciente de Efi cácia Protéica para o leite de búfala, vaca e caseína como padrão, verifi caram que a caseína e o leite de vaca, não apresentaram diferença

As sequências didáticas foram divididas em duas partes – Projeto de Bilhetes e Projeto de Cartas respeitando e seguindo um contexto real de produção, possibilitando

Incidirei, em particular, sobre a noção de cuidado, estruturando o texto em duas partes: a primeira será uma breve explicitação da noção de cuidado em Martin Heidegger (o cuidado

Controlador de alto nível (por ex.: PLC) Cabo da válvula Tubo de alimentação do ar de 4 mm Pr essão do fluido Regulador de pressão de precisão Regulador de pressão de

* Selo do Espírito – Cada um dos 72 espíritos possui seu próprio selo, que será disposto no triângulo para a conjuração.. * Disco de Salomão - Usado em casos