<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0122-3461</journal-id>
<journal-title><![CDATA[Ingeniería y Desarrollo]]></journal-title>
<abbrev-journal-title><![CDATA[Ing. Desarro.]]></abbrev-journal-title>
<issn>0122-3461</issn>
<publisher>
<publisher-name><![CDATA[Fundación Universidad del Norte]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0122-34612009000200002</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Alternativa de mecanismo de traducción de lenguajes mediante análisis de símbolos de sincronización: T_Gsig]]></article-title>
<article-title xml:lang="en"><![CDATA[Alternative language translation mechanism by means of synchronization-symbol analysis: T_Gsig]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Tavera]]></surname>
<given-names><![CDATA[Carlos A.]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Diaz]]></surname>
<given-names><![CDATA[Juan F.]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad de San Buenaventura  ]]></institution>
<addr-line><![CDATA[Cali ]]></addr-line>
<country>Colombia</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad del Valle  ]]></institution>
<addr-line><![CDATA[Cali ]]></addr-line>
<country>Colombia</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2009</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2009</year>
</pub-date>
<numero>26</numero>
<fpage>1</fpage>
<lpage>21</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S0122-34612009000200002&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S0122-34612009000200002&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S0122-34612009000200002&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[En este artículo se propone un mecanismo de traducción que transforma un programa visual especificado sintácticamente en forma textual, hacia un código de un lenguaje textual. Fundamentalmente, el mecanismo consiste en tomar la especificación de un constructor simple o compuesto, eliminar la información visual mediante análisis de símbolos de sincronización, y transformarlo en un programa equivalente en lenguaje textual. Inicialmente, en el artículo se presenta de manera formal el mecanismo de traducción, luego, se muestran las plantillas para su implementación, y al final, se presentan los resultados de la traducción a través de reglas.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[In this paper is proposed a mechanism of translation that transforms a visual language syntactically specified by textual form, into code of a textual language. Fundamentally, the mechanism consist in taking the simple or composite constructor specification, eliminate the visual information through analysis of synchronization symbols, and transform it into a equivalent program in textual language. Initially, the translation mechanism is present formally, later, the templates for its implementation are shown, and at the end, translation results are presented by rules.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Lenguajes visuales]]></kwd>
<kwd lng="es"><![CDATA[Traducción de lenguajes]]></kwd>
<kwd lng="en"><![CDATA[Visual languages]]></kwd>
<kwd lng="en"><![CDATA[language translation]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[  <font size="2" face="verdana">     <p><b>ART&Iacute;CULO CIENT&Iacute;FICO</b> / RESEARCH ARTICLE</p>     <p align="center"><font size="4"><b>Alternativa de mecanismo de traducci&oacute;n de   lenguajes mediante an&aacute;lisis de s&iacute;mbolos de sincronizaci&oacute;n: T_Gsig</b></font></p>     <p align="center"><font size="3"><b>Alternative language translation mechanism by   means of synchronization-symbol analysis: T_Gsig</b></font></p>     <p><b>Carlos A. Tavera<a href="#*">*</a> Juan F. Diaz<a href="#**">**</a></b></p>     <p><a name="*">*</a> PhD. Ciencias de la Computaci&oacute;n. Profesor Titular de la   Universidad de San Buenaventura, Cali (Colombia). <a href="mailto:catavera@usbcali.edu.co">catavera@usbcali.edu.co</a></p>     <p><b>Correspondencia: </b>Av. 10 de mayo, La Umbr&iacute;a, v&iacute;a a Pance. A.A. 7154 y   25162. Cali (Colombia).</p>     <p><a name="**">**</a> PhD. Inform&aacute;tica. Profesor Titular de la Universidad del   Valle, Cali (Colombia). <a href="mailto:jdiaz@univalle.edu.co">jdiaz@univalle.edu.co</a></p>     <p>Fecha de recepci&oacute;n: 2 de septiembre de 2008    <br>   Fecha de aceptaci&oacute;n: 24 de   marzo de 2009</p> <hr>     ]]></body>
<body><![CDATA[<p><b>Resumen</b></p>     <p>En este art&iacute;culo se propone un mecanismo de traducci&oacute;n que transforma un   programa visual especificado sint&aacute;cticamente en forma textual, hacia un c&oacute;digo   de un lenguaje textual. Fundamentalmente, el mecanismo consiste en tomar la   especificaci&oacute;n de un constructor simple o compuesto, eliminar la informaci&oacute;n   visual mediante an&aacute;lisis de s&iacute;mbolos de sincronizaci&oacute;n, y transformarlo en un   programa equivalente en lenguaje textual. Inicialmente, en el art&iacute;culo se   presenta de manera formal el mecanismo de traducci&oacute;n, luego, se muestran las   plantillas para su implementaci&oacute;n, y al final, se presentan los resultados de la   traducci&oacute;n a trav&eacute;s de reglas. </p>     <p><b>Palabras clave: </b>Lenguajes visuales, Traducci&oacute;n de lenguajes.</p> <hr>     <p><b>Abstract</b></p>     <p>In this paper is proposed a mechanism of translation that transforms a visual   language syntactically specified by textual form, into code of a textual   language. Fundamentally, the mechanism consist in taking the simple or composite   constructor specification, eliminate the visual information through analysis of   synchronization symbols, and transform it into a equivalent program in textual   language. Initially, the translation mechanism is present formally, later, the   templates for its implementation are shown, and at the end, translation results   are presented by rules. </p>     <p><b>Keywords: </b>Visual languages, language translation.</p> <hr>     <p><font size="3"><b>1. INTRODUCCI&Oacute;N</b></font></p>     <p>Hacia el a&ntilde;o de 1998 el grupo de investigaci&oacute;n AVISPA <b>(A</b>mbientes <b>VIS</b>uales de <b>P</b>rogramaci&oacute;n <b>A</b>plicativa) crea el lenguaje   CORDIAL, un lenguaje visual para un subconjunto del c&aacute;lculo PiCO &#91;1&#93;. Luego de   las pruebas de eficiencia que el grupo AVISPA le practic&oacute; a CORDIAL, se pudo   comprobar que aunque el producto de la compilaci&oacute;n calculaba los resultados con   &eacute;xito, la velocidad de ejecuci&oacute;n en la mayor&iacute;a de los casos no fue   aceptable.</p>     <p>M&aacute;s tarde, se logr&oacute; establecer que el problema estaba, particularmente, en el   c&oacute;digo generado que, en ciertos casos, conten&iacute;a c&oacute;digo duplicado, inactivo o   innecesario. Consecuente con lo anterior, el grupo AVISPA inicia el proyecto del   nuevo C&aacute;lculo GraPiCO &#91;2&#93;, un c&aacute;lculo visual para la totalidad del c&aacute;lculo PiCO,   con la utilizaci&oacute;n de un mecanismo de especificaci&oacute;n textual, llamado Gsig   (introducido m&aacute;s adelante), y un nuevo mecanismo de traducci&oacute;n denominado   T_Gsig, el tema central de &eacute;ste art&iacute;culo.</p>     <p>1.1 <b>Estado del arte y al aporte de la investigaci&oacute;n</b></p>     ]]></body>
<body><![CDATA[<p>El tratamiento formal de c&oacute;digo textual es un tema que ha persistido desde   los inicios de la Ciencia de la Computaci&oacute;n. Junto con internet y la necesidad   de almacenar y manipular la informaci&oacute;n contenida en ella, se origina lo que   ahora llamamos los lenguajes de marcaci&oacute;n<sup><a href="#1" name="s1">1</a></sup>&#91;3&#93;; dentro de los m&aacute;s famosos se encuentran el HTML (Hyper   Text Markup Language)&#91;4&#93; para la descripci&oacute;n de p&aacute;ginas web, el OWL (Web   Ontology Language)&#91;5&#93; para presentaci&oacute;n de ontolog&iacute;as y los esquemas XML para   marcado descriptivo (Extensible Markup laguage)&#91;6&#93;. Hasta el momento se han   empleado los lenguajes de marcaci&oacute;n para tratamiento (ver &#91;7&#93;) y transformaci&oacute;n   de c&oacute;digo textual, como el trabajo en &#91;8&#93;; desde el punto de vista gr&aacute;fico,   tambi&eacute;n se han usado para representar y traducir hojas de c&aacute;lculo, como el que   se present&oacute; en &#91;9&#93;, pero los programas visuales requieren un poder expresivo m&aacute;s   grande y una forma eficiente de traducci&oacute;n, pues los costos computacionales de   los lenguajes ic&oacute;nicos pueden ser grandes (un ejemplo se muestra en &#91;10&#93;) debido   a la complejidad y la extensi&oacute;n del c&oacute;digo textual requerido para modelar un   programa visual.</p>     <p>El aporte de este documento es proponer una manera de efectuar la traducci&oacute;n   de representaciones textuales de c&oacute;digo visual de forma general, simple, formal   e implementable.</p>     <p>1.2&nbsp;<b>Introducci&oacute;n a las Gsig (Gram&aacute;ticas de Sistemas de &Iacute;conos   Generalizados)</b></p>     <p>Dentro de los principales problemas que se deben enfrentar al trabajar con   lenguajes visuales se encuentra el establecimiento de una especificaci&oacute;n   gramatical, para as&iacute;, determinar un mecanismo de traducci&oacute;n a lenguaje objeto y   un mecanismo de almacenamiento de c&oacute;digo intermedio. En otras palabras,   requerimos guardar en alg&uacute;n lugar los programas visuales siguiendo unas reglas   sint&aacute;cticas, para posteriormente, mediante un mecanismo de traducci&oacute;n, obtener   un c&oacute;digo objeto. En &#91;11&#93; se presenta la forma de especificaci&oacute;n gramatical   denominada Gsig, la cual consiste en la representaci&oacute;n textual de la informaci&oacute;n   visual de un determinado Constructor Simple<sup><a href="#2" name="s2">2</a> </sup>o Compuesto<sup><a href="#3" name="s3">3</a></sup>. Ampliando la idea, una   Gsig almacena en una expresi&oacute;n textual, la informaci&oacute;n visual de cada   constructor simple <i>X </i>empleando los conceptos de iconos   generalizados<sup><a href="#4" name="s4">4</a></sup> presentados en &#91;12&#93; y su   respectiva etiqueta, organizados como se presenta en la <a href="#e1">ecuaci&oacute;n   1</a>. Donde <i>T </i>representa la funci&oacute;n sem&aacute;ntica que nos entrega la   especificaci&oacute;n del constructor visual X; internamente, esta especificaci&oacute;n est&aacute;   delimitada por los s&iacute;mbolos <i>Sd<sub>1</sub> </i>y <i>Sd<sub>2 </sub></i>y est&aacute;   identificada de manera &uacute;nica por el s&iacute;mbolo de encabezamiento S'.</p>     <p align="center"><a name="e1"><img src="img/revistas/inde/n26/n26a02-1.jpg"></a></p>     <p>De forma similar, para el caso de la especificaci&oacute;n de un constructor   compuesto, una Gsig almacena en una expresi&oacute;n textual, la especificaci&oacute;n de cada   uno de los constructores simples que lo componen y los correspondientes s&iacute;mbolos   de sincronizaci&oacute;n <i>Sc<sub>i</sub>, </i>como se muestra en la <a href="#e2">ecuaci&oacute;n 2</a>.</p>     <p align="center"><a name="e2"><img src="img/revistas/inde/n26/n26a02-2.jpg"></a></p>     <p>1.3 <b>Introducci&oacute;n al T_Gsig</b></p>     <p>Con lo anterior, se puede observar que, dado que para la fase de traducci&oacute;n   se requiere fundamentalmente la informaci&oacute;n contenida en la parte l&oacute;gica -como   est&aacute; construida la gr&aacute;fica al interior-, la traducci&oacute;n de un programa total o un   constructor simple en particular dentro de un programa, especificados a trav&eacute;s   de Gsig, consiste de la separaci&oacute;n de la parte l&oacute;gica y su posterior traducci&oacute;n   interna; de otro lado, la traducci&oacute;n de un constructor compuesto consiste de la   traducci&oacute;n de cada uno de los constructores que hacen parte del conjunto. En   &eacute;ste art&iacute;culo se presenta T_Gsig, un mecanismo de traducci&oacute;n de la   especificaci&oacute;n de un lenguaje visual utilizando Gsig en un lenguaje textual   mediante la t&eacute;cnica de "scanning" (an&aacute;lisis l&eacute;xico) y no a trav&eacute;s de "parsing"   (an&aacute;lisis sint&aacute;ctico) como es presentado en &#91;13&#93;, lo cual permite una   implementaci&oacute;n generalizable mediante el diseno orientado al objeto y m&aacute;s   eficiente.</p>     <p><font size="3"><b>2. DEFINICI&Oacute;N DEL MECANISMO DE TRADUCCI&Oacute;N</b></font></p>     ]]></body>
<body><![CDATA[<p>Acorde con la definici&oacute;n de las Gsig, la traducci&oacute;n (expresada mediante   T<sup><a href="#5" name="s5">5</a></sup>) de un programa generado con una Gsig,   hacia uno de constructores netamente textuales, se contempla en los casos   siguientes:</p>     <p>Caso 1: Traducci&oacute;n de un constructor simple que se ha expresado mediante una   Gsig:</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-3.jpg"></p>     <p>Caso 2: Traducci&oacute;n de un constructor compuesto especificado a trav&eacute;s de una   Gsig:</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-4.jpg"></p>     <p>Del Caso 1 se obtiene, que la traducci&oacute;n de un programa generado por una Gsig   (c&oacute;digo fuente), hacia su respectivo c&oacute;digo de lenguaje textual (c&oacute;digo objeto),   consiste de: a) La supresi&oacute;n de la parte f&iacute;sica del c&oacute;digo fuente, b) La   traducci&oacute;n de la parte l&oacute;gica del c&oacute;digo fuente, y c) La transformaci&oacute;n de los   s&iacute;mbolos de sincronizaci&oacute;n del c&oacute;digo fuente, en los correspondientes s&iacute;mbolos   de sincronizaci&oacute;n del c&oacute;digo objeto.</p>     <p>Lo anterior, es consecuente con la estructura de las gram&aacute;ticas de sistemas   de &iacute;conos generalizados - Gsig, dado que en la parte f&iacute;sica, es donde quedan   almacenados los datos visuales sobre la interconexi&oacute;n del respectivo constructor   con el resto, y la parte l&oacute;gica, contiene la definici&oacute;n de la configuraci&oacute;n al   interior del constructor.</p>     <p>Gracias a las anteriores observaciones sobre el mecanismo de traducci&oacute;n, se   define pr&aacute;cticamente la traducci&oacute;n de cada constructor simple generado por una   Gsig con la estructura presentada en la <a href="#e3">ecuaci&oacute;n 3</a> y mediante   un objeto con el diseno presentado en la <a href="#f1">figura 1</a> a) (Donde <b>Type </b>se refiere al tipo de datos elegido al momento de desarrollar, para   almacenar la especificaci&oacute;n mediante una Gsig).</p>     <p align="center"><a name="e3"><img src="img/revistas/inde/n26/n26a02-5.jpg"></a></p>     <p>Donde <i>Z </i>es la Parte l&oacute;gica de <i>X </i>&oacute; <i>z_Gsig, </i>y la   representaci&oacute;n Gsig de <i>X </i>es <i>x_Gsig.</i></p>     ]]></body>
<body><![CDATA[<p align="center"><a name="f1"><img src="img/revistas/inde/n26/n26a02-6.jpg"></a></p>     <p>Posterior al diseno del objeto del constructor simple <i>X, </i>se presenta   en las <a href="#f2">figuras 2</a> y <a href="#f3">3</a> una plantilla para la   implementaci&oacute;n de la traducci&oacute;n de los constructores simples especificados por   una Gsig.</p>     <p align="center"><a name="f2"><img src="img/revistas/inde/n26/n26a02-7.jpg"></a></p>     <p align="center"><a name="f3"><img src="img/revistas/inde/n26/n26a02-8.jpg"></a></p>     <p>Ya que el mecanismo de traducci&oacute;n presentado supone un c&oacute;digo fuente sin   errores sint&aacute;cticos, esto permite una traducci&oacute;n mucho m&aacute;s eficiente, puesto que   la b&uacute;squeda de los sintagmas<sup><a href="#6" name="s6">6</a></sup> se efect&uacute;a   mediante la extracci&oacute;n de segmentos de c&oacute;digo delimitado por s&iacute;mbolos de   sincronizaci&oacute;n.</p>     <p>De la plantilla presentada en las <a href="#f2">figuras 2</a> y <a href="#f3">3</a>, se puede observar que la traducci&oacute;n de un constructor simple <i>X, </i>inicia con la creaci&oacute;n del objeto <i>x </i>(instancia de la clase <i>X </i>), la cual activa el m&eacute;todo constructor, y &eacute;ste a su vez, emplea la funci&oacute;n <i>separador </i>(particular al componente <i>Z </i>) para la extracci&oacute;n de la   parte l&oacute;gica de la especificaci&oacute;n de <i>X </i>(guardada en <i>x_Gsig </i>) la   cual est&aacute; delimitada por los s&iacute;mbolos de sincronizaci&oacute;n <i>: </i>y   Sd<sub>2</sub>, y su posterior almacenamiento en <i>z_Gsig.</i></p>     <p>Luego, con la activaci&oacute;n del m&eacute;todo traductor del objeto x, con la   informaci&oacute;n contenida en <i>z_Gsig </i>se crea otro objeto <i>z </i>(instancia   de la clase correspondiente a la parte l&oacute;gica de <i>X </i>), y por ende, se   activa el constructor de <i>z </i>y su respectivo m&eacute;todo <i>traductor. </i>De   esta manera, sucesivamente se navega el &aacute;rbol sint&aacute;ctico de forma virtual, por   medio de la jerarqu&iacute;a de clases. Al final, cuando las diferentes partes l&oacute;gicas   ya est&aacute;n traducidas, se procede a su disposici&oacute;n con la funci&oacute;n <i>ordenaci&oacute;n, </i>con el fin de obtener un c&oacute;digo que se ajuste a las reglas sint&aacute;cticas del   lenguaje textual objeto. La implementaci&oacute;n de las funciones <i>separador </i>y <i>ordenaci&oacute;n, </i>y el m&eacute;todo <i>traductor </i>depende del lenguaje que se est&aacute;   utilizando para realizar la implementaci&oacute;n.</p>     <p>De otro lado, por el Caso 2, se tiene que la traducci&oacute;n de un constructor   compuesto especificado textualmente utilizando una Gsig, consiste de: a)   Traducci&oacute;n de cada constructor <i>X<sub>i</sub> </i>que compone el conjunto, b)   Transformaci&oacute;n de los s&iacute;mbolos de delimitaci&oacute;n <i>Sd<sub>1</sub> </i>y   Sd<sub>2</sub>, c) Transformaci&oacute;n de cada s&iacute;mbolo de sincronizaci&oacute;n <i>Sc<sub>i</sub> </i>, y d) Organizaci&oacute;n de todas las anteriores   traducciones.</p>     <p>Dadas las anteriores observaciones sobre el mecanismo de traducci&oacute;n, se   define -para su implementaci&oacute;n- la traducci&oacute;n de cada constructor compuesto   generado por una Gsig con la estructura presentada en la <a href="#e4">ecuaci&oacute;n   4</a> y mediante un objeto con el dise&ntilde;o presentado en la <a href="#f1">figura   1</a> b).</p>     <p align="center"><a name="e4"><img src="img/revistas/inde/n26/n26a02-9.jpg"></a></p>     ]]></body>
<body><![CDATA[<p>Despu&eacute;s del dise&ntilde;o del objeto del constructor compuesto <i>LX, </i>se muestra   en las <a href="#f4">figuras 4</a> y <a href="#f5">5</a> una plantilla para la   implementaci&oacute;n de la traducci&oacute;n de los constructores compuestos especificados   por una Gsig. </p>     <p align="center"><a name="f4"><img src="img/revistas/inde/n26/n26a02-10.jpg"></a></p>     <p align="center"><a name="f5"><img src="img/revistas/inde/n26/n26a02-11.jpg"></a></p>     <p>De igual forma que con la plantilla de las <a href="#f2">figuras 2</a> y <a href="#f3">3</a>, con la plantilla presentada en las <a href="#f4">figuras 4</a> y <a href="#f5">5</a> podemos notar que la traducci&oacute;n de un constructor   compuesto <i>LX </i>inicia con la creaci&oacute;n del objeto <i>lx </i>(instancia de la   clase <i>LX </i>), la cual activa el m&eacute;todo constructor, y &eacute;ste a su vez, emplea   la funci&oacute;n <i>separador, </i>para la extracci&oacute;n del segmento de c&oacute;digo de cada   componente X., los cuales est&aacute;n delimitados por sendos s&iacute;mbolos de   sincronizaci&oacute;n <i>Sc<sub>i</sub>_<sub>1</sub> </i>y <i>Sc. </i>(cuando <i>i </i>&ne;<i> 1, n) </i>, <i>Sd<sub>1</sub> </i>y <i>Sc<sub>1</sub> </i>(cuando <i>i   = 1) </i>, o <i>Sc<sub>n</sub>_<sub>1</sub> </i>y <i>Sd<sub>2</sub> </i>(cuando <i>i = </i>n), y su posterior almacenamiento en <i>x<sub>i</sub>_Gsig </i>respectivamente. Luego, con la activaci&oacute;n de cada m&eacute;todo <i>traductor, </i>con la informaci&oacute;n contenida en cada <i>X</i><i>i</i><i>_Gsig </i>se crea el   objeto xi (instancia de la clase correspondiente al componente X<sub>i</sub>), y   por ende, se activa el constructor de cada Xi. Finalmente, cuando los diferentes   componentes ya est&aacute;n traducidos, se procede a su arreglo con la funci&oacute;n   ordenaci&oacute;n, con el fin de obtener un c&oacute;digo que se ajuste a las normas   sint&aacute;cticas del lenguaje objeto.</p>     <p>En la pr&oacute;xima secci&oacute;n, se demostrar&aacute; la <i>validez </i>de la funci&oacute;n de   traducci&oacute;n <i>T </i>la definici&oacute;n de traducci&oacute;n mediante reglas. Esta lista de   reglas, es empleada para transformar un programa GraPiCO especificado utilizando   las Gsig, hacia el C&aacute;lculo PiCO.</p>     <p><font size="3"><b>3. DEMOSTRACI&Oacute;N DE LA VALIDEZ DE LA FUNCI&Oacute;N DE TRADUCCI&Oacute;N T   EN CONJUNCI&Oacute;N CON GraPiCO.</b></font></p>     <p>En esta secci&oacute;n se muestra una lista representativa de las reglas de   traducci&oacute;n empleadas para transformar programas GraPiCO_Textual en PiCO en   conjunci&oacute;n con la funci&oacute;n de traducci&oacute;n <i>T </i>&#91;&#91; &#93;&#93; para construir una   demostraci&oacute;n matem&aacute;tica de la <i>validez </i>del proceso de traducci&oacute;n. La   especificaci&oacute;n gramatical y una explicaci&oacute;n del C&aacute;lculo GraPiCO, as&iacute; como la   nueva gram&aacute;tica LL(1) del C&aacute;lculo PiCO, se encuentran discutidos como un ejemplo   de la utilizaci&oacute;n de las Gsig en &#91;11&#93;).</p>     <p>3.1 <b>Planteamiento recursivo de la funci&oacute;n </b>T.</p>     <p>La funci&oacute;n <i>T </i>para Epf&#93; (ver <a href="#f6">figura 6</a> donde se   presenta gr&aacute;ficamente el t&eacute;rmino Expansi&oacute;n<sup><a href="#7" name="s7">7</a></sup>)   mostrada en la f&oacute;rmula 5, se calcula sobre la 4-upla en 6.</p>     <p align="center"><a name="f6"><img src="img/revistas/inde/n26/n26a02-12.jpg"></a></p>     ]]></body>
<body><![CDATA[<p align="center"><a name="e5"><img src="img/revistas/inde/n26/n26a02-13.jpg"></a></p>     <p>La Parte L&oacute;gica del constructor <i>X </i>consiste en &epsilon;&#91;&#91;Z&#93;&#93;, que de ahora en   adelante llamaremos Y.</p>     <p align="center"><a name="e6"><img src="img/revistas/inde/n26/n26a02-14.jpg"></a></p>     <p>Donde la parte l&oacute;gica de <i>X </i>corresponde a <a href="#e7">7</a>.</p>     <p align="center"><a name="e7"><img src="img/revistas/inde/n26/n26a02-15.jpg"></a></p>     <p>De igual forma, la funci&oacute;n <i>T </i>para &epsilon;&#91;&#91;X&#93;&#93; presentada en la f&oacute;rmula 8 se   calcula sobre la 4-upla presentada en 9.</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-16.jpg"></p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-17.jpg"></p>     <p>Luego el planteamiento recursivo de la funci&oacute;n <i>T </i>se expresa mediante   el diagrama conmutativo de la <a href="#f7">figura 7</a>:</p>     <p align="center"><a name="f7"><img src="img/revistas/inde/n26/n26a02-18.jpg"></a></p>     ]]></body>
<body><![CDATA[<p align="center"><img src="img/revistas/inde/n26/n26a02-19.jpg"></p>     <p>Dado lo anterior, verificar la <i>validez </i>de <i>T </i>equivale a   demostrar el predicado en <a href="#e10">10</a>.</p>     <p align="center"><a name="e10"><img src="img/revistas/inde/n26/n26a02-20.jpg"></a></p>     <p>Entonces requerimos alg&uacute;n tipo de inducci&oacute;n sobre el conjunto definido en <a href="#e11">11</a>. </p>     <p align="center"><a name="e11"><img src="img/revistas/inde/n26/n26a02-21.jpg"></a></p>     <p>3.2 <b>Relaci&oacute;n binaria </b>&gt; en <b><i>L(GraPiCO_textuat)</i></b></p>     <p>Sea la relaci&oacute;n binaria <b><i>&gt; </i></b>en <b><i>L{GraPiCO), &gt;<img src="img/revistas/inde/n26/n26a02-22.jpg">L{GraPicd) X L(GraPiCO), </i></b>definida en 13 (primero se presenta la definici&oacute;n del conjunto cerradura   de la funci&oacute;n de expansi&oacute;n en 12).</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-23.jpg"></p>     <p>Posteriormente, verificamos la transitividad de la relaci&oacute;n &gt; en 14.</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-24.jpg"></p>     ]]></body>
<body><![CDATA[<p>3.3 <b>Lista de reglas de traducci&oacute;n de GraPiCO_Textual en c&aacute;lculo   PiCO.</b></p>     <p>Para mostrar la traducci&oacute;n de un programa GraPiCO_Textual<sup><a href="#8" name="s8">8</a></sup> hacia PiCO, se emplea una lista de equivalencias, donde cada   campo izquierdo est&aacute; compuesto de un constructor de GraPiCO_Textual, y, el campo   derecho se refiere a la correspondiente expresi&oacute;n gramatical equivalente al   constructor GraPiCO Textual en t&eacute;rminos del c&aacute;lculo PiCO. A continuaci&oacute;n un   subconjunto representativo de estas reglas (mostrado en perspectiva en la figura   9 y contextualizado m&aacute;s adelante en la secci&oacute;n 3.4):</p>     <p>1. Traducci&oacute;n de un programa:</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-25.jpg"></p>     <p>&#9632; Traducci&oacute;n de los s&iacute;mbolos de sincronizaci&oacute;n:</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-26.jpg"></p>     <p>2. Traducci&oacute;n de casos de la parte l&oacute;gica de un programa (lista de procesos   concurrentes): a) Parte l&oacute;gica de un programa compuesta de varios procesos, b)   Parte l&oacute;gica de un programa compuesta por un &uacute;nico proceso.</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-27.jpg"></p>     <p>3. Traducci&oacute;n de un proceso:</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-28.jpg"></p>     ]]></body>
<body><![CDATA[<p>&#9632;&nbsp;Traducci&oacute;n de la condici&oacute;n replicaci&oacute;n:</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-29.jpg"></p>     <p>4. Traducci&oacute;n de la parte l&oacute;gica de un proceso:</p>     <p>Caso particular cuando la parte l&oacute;gica de un proceso corresponde a un   &aacute;mbito:</p>     <p>&#9632;&nbsp;Definici&oacute;n de &aacute;mbito:</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-30.jpg"></p>     <p>&bull; raducci&oacute;n de los s&iacute;mbolos de sincronizaci&oacute;n: </p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-31.jpg"></p>     <p>Siendo <i>G<sub>v</sub> </i>el Grupo de variables y <i>G<sub>n</sub> </i>el   grupo de nombres.</p>     <p>&bull; Traducci&oacute;n de lista de identificadores (variables, par&aacute;metros o   nombres):</p>     ]]></body>
<body><![CDATA[<p align="center"><img src="img/revistas/inde/n26/n26a02-32.jpg"></p>     <p>- Traducci&oacute;n de un identificador (variable, par&aacute;metro, nombre o literal de   recepci&oacute;n o delegaci&oacute;n):</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-33.jpg"></p>     <p>3.4 <b>El preorden </b><b><i>(L(GraPiCO), &gt;)</i></b></p>     <p>Dibujando la relaci&oacute;n &gt; obtenemos el grafo de la <a href="#f9">figura   9</a>. El cual, en efecto, constituye el Grafo Ac&iacute;clico Dirigido (desde ahora   GDA) para la gram&aacute;tica del c&aacute;lculo GraPiCO. Con relaci&oacute;n a la secci&oacute;n anterior,   el conjunto de reglas de traducci&oacute;n presentadas corresponden a la cadena de   constructores resaltada en el GDA y sobre la cual se efect&uacute;a la demostraci&oacute;n. Se   tom&oacute; este grupo bien ordenado porque conserva las propiedades matem&aacute;ticas   pertinentes y permite la extensi&oacute;n de la demostraci&oacute;n al resto de los   constructores con generalizaci&oacute;n.</p>     <p><b><i>Consideraciones al preorden</i></b></p>     <p>1. Podemos observar, por las reglas de traducci&oacute;n presentadas en la secci&oacute;n   3.3 y por el GDA mostrado en la <a href="#f9">figura 9</a>, las siguientes   deducciones:</p>     <p>&#9632; Para todos los constructores simples tenemos:</p>     <p>&bull; La especificaci&oacute;n gramatical del constructor simple <i>X </i>es de la   forma: <img src="img/revistas/inde/n26/n26a02-34.jpg"></p>     <p align="center"><a name="f9"><img src="img/revistas/inde/n26/n26a02-35.jpg"></a></p>     ]]></body>
<body><![CDATA[<p><i>&bull;</i>&nbsp;<i>X </i>est&aacute; compuesto por el constructor Y, <i>Y </i>menor que <i>X </i>seg&uacute;n la relaci&oacute;n &gt;</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-36.jpg"></p>     <p>Para todos los constructores compuestos tenemos:</p>     <p>&bull;La especificaci&oacute;n gramatical del constructor compuesto <i>LX </i>es   de la forma: <img src="img/revistas/inde/n26/n26a02-37.jpg"></p>     <p>&bull; El constructor compuesto <i>LX </i>est&aacute; conformado por los constructores <img src="img/revistas/inde/n26/n26a02-38.jpg"> ; todo <i>X<sub>i</sub> </i>menor que <i>LX </i>seg&uacute;n la relaci&oacute;n &gt;</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-39.jpg"></p>     <p>2. A trav&eacute;s del GDA podemos encontrar un &aacute;rbol sint&aacute;ctico (AS en adelante)   para cada programa GraPiCO <i>P.. </i>Lo anterior, es expresado simb&oacute;licamente   en 23.</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-40.jpg"></p>     <p>3. Puesto que todo programa GraPiCO Pi es finito, su respectivo ASi ser&aacute;   finito tambi&eacute;n.</p>     <p>4. Por 1,2 y 3 podemos observar que en un programa GraPiCO no existen   sucesiones de constructores infinitas de la forma<img src="img/revistas/inde/n26/n26a02-41.jpg">tales que</p>     ]]></body>
<body><![CDATA[<p align="center"><img src="img/revistas/inde/n26/n26a02-42.jpg"></p>     <p>5. Y, ya que por la ecuaci&oacute;n 14 la relaci&oacute;n &gt; sobre es <b><i>L(GraPiCO) </i></b>es transitiva y por 4 no existen sucesiones infinitas estrictamente   decrecientes, tenemos el preorden bien fundado (desde ahora <i>pbf) </i><b><i>(L(GraPiCO), &gt;)</i></b><i>, </i>y podemos emplear el principio de   inducci&oacute;n noetheriana en 10 a trav&eacute;s de la f&oacute;rmula 24.</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-43.jpg"></p>     <p>Empleando la <a href="#e11">ecuaci&oacute;n 11</a> en 24 obtenemos en 25 una   expresi&oacute;n m&aacute;s concreta para aplicar la inducci&oacute;n noetheriana.</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-44.jpg"></p>     <p>En la figura 9 podemos observar que <i>Identificador </i>es el &uacute;nico elemento   minimal (de hecho es el m&iacute;nimo) en el GDA de GraPiCO. <img src="img/revistas/inde/n26/n26a02-45.jpg"></p>     <p>Con todo lo anterior, podemos aplicar el principio de inducci&oacute;n noetheriana   de la siguiente forma:</p>     <p><b>&#9632;</b>&nbsp;<b>Base: </b>De mostramos para todos los elementos minimales (en   este caso solo <i>identificador) </i>que su traducci&oacute;n es un constructor   PiCO.</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-46.jpg"></p>     <p><b>&#9632;</b>&nbsp;<b>Hip&oacute;tesis: </b>Dado un <i>X </i>no minimal (para el caso debe ser   diferente de <i>identificador, </i>el &uacute;nico minimal) suponemos que la traducci&oacute;n   de todos los constructores de los que est&eacute; compuesto <i>X </i>son constructores   PiCO.</p>     ]]></body>
<body><![CDATA[<p align="center"><img src="img/revistas/inde/n26/n26a02-47.jpg"></p>     <p><b>&#9632;</b>&nbsp;<b>Inducci&oacute;n: </b>Bajo la <b>Hip&oacute;tesis, </b>demostramos que la   traducci&oacute;n de la especificaci&oacute;n de todo constructor GraPiCO es un c&oacute;digo   PiCO.</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-48.jpg"></p>     <p>Tenemos que los constructores GraPiCO_Textual son de la siguiente forma:</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-49.jpg"></p>     <p>De la <b>Hip&oacute;tesis, </b>la respectiva traducci&oacute;n de la especificaci&oacute;n de <i>X </i>es de la pr&oacute;xima manera:</p>     <p align="center"><img src="img/revistas/inde/n26/n26a02-50.jpg"></p>     <p>Resumiendo las reglas de traducci&oacute;n (presentando &uacute;nicamente los resultados de   la funci&oacute;n <i>ordenaci&oacute;n, </i>mediante la utilizaci&oacute;n de las funciones   presentadas y la <b>Hip&oacute;tesis) </b>obtenemos la siguiente lista de   constructores.</p>     <p>1. Programa: <i>ProgramaPiCO.</i></p>     <p>2. Lista de procesos:<img src="img/revistas/inde/n26/n26a02-51.jpg"></p>     ]]></body>
<body><![CDATA[<p>3. Proceso: <i>Condici&oacute;nReplicaci&oacute;nPiCO ParteL&oacute;gicaProcesoPiCO</i></p>     <p>4. Tipos de procesos:</p>     <p>&#9632;&nbsp;Definici&oacute;n de &aacute;mbito: <b><i>local </i></b><i>ListaIdentificadoresPiCO <b>in </b>ProgramaPiCO</i></p>     <p>&bull; Lista de identificadores:<img src="img/revistas/inde/n26/n26a02-52.jpg"></p>     <p>Podemos observar que todos los resultados, en efecto, son constructores PiCO   y cumplen su estructura sint&aacute;ctica, terminando con esto la demostraci&oacute;n.</p>     <p><font size="3"><b>4. TRADUCTOR DE GraPiCO_Textual HACIA C&Aacute;LCULO   PiCO</b></font></p>     <p>Aplicando el mecanismo introducido se realiz&oacute; un proyecto&#91;14&#93; en lenguaje   Java que tiene como objetivo dise&ntilde;ar e implementar un mecanismo de traducci&oacute;n   que tome la especificaci&oacute;n textual de un programa, construido a trav&eacute;s del   c&aacute;lculo visual GraPiCO, para obtener una representaci&oacute;n en c&aacute;lculo textual PiCO   e implementar una etapa de an&aacute;lisis sem&aacute;ntico.</p>     <p>4.1 <b>Arquitectura del programa traductor</b></p>     <p>Teniendo en cuenta que adem&aacute;s de la traducci&oacute;n realizada sobre el c&oacute;digo   GraPiCO_Textual, se est&aacute; realizando un an&aacute;lisis sem&aacute;ntico al c&oacute;digo PiCO   resultante, se modela el traductor como un proceso de dos etapas principales que   constituyen el n&uacute;cleo del desarrollo, el traductor y el analizador   sem&aacute;ntico.</p>     <p>4.1.1. <b><i>Etapa de traducci&oacute;n: </i></b>Dado un programa en   GraPiCO_Textual, se identifica su composici&oacute;n, y cada una de sus partes   (constructores) ser&aacute; tratada de manera independiente por medio de un objeto, en   otras palabras, se dise&ntilde;&oacute; un objeto por cada constructor de GraPiCO_Textual.   Cada objeto fue implementado como una clase, las cuales tienen dos m&eacute;todos   principales:</p>     ]]></body>
<body><![CDATA[<p>&#9632;&nbsp;<b>Constructor: </b>Tiene el mismo nombre del constructor GraPiCO. Recibe   la expresi&oacute;n en GraPiCO Textual y separa sus componentes, omitiendo las   caracter&iacute;sticas visuales.</p>     <p><b>&#9632; T</b>raductor: Lleva a cabo la traducci&oacute;n al C&aacute;lculo PiCO de una regla   de traducci&oacute;n determinada, utilizando los componentes identificados en el   constructor. (ver diagrama de la <a href="#f10">figura 10</a>).</p>     <p align="center"><a name="f10"><img src="img/revistas/inde/n26/n26a02-53.jpg"></a></p>     <p>4.1.2. <b><i>Etapa de an&aacute;lisis sem&aacute;ntico: </i></b>El c&oacute;digo PiCO generado es   analizado con el fin de determinar en que momento &eacute;ste carece de sentido en su   estructura, generando mensajes de error o advertencias sem&aacute;nticas. Las acciones   sem&aacute;nticas a analizar, se obtienen cuando se traducen elementos de la estructura   PiCO. La clase SemanticAnalizer provee m&eacute;todos que son usados a lo largo del   proceso de traducci&oacute;n del c&oacute;digo GraPiCO Textual. Los mensajes que se van   generando en el proceso, se almacenan en una tabla en memoria. El analizador   sem&aacute;ntico se basa en el llenado y an&aacute;lisis de tablas Hash.</p>     <p><font size="3"><b>5. CONCLUSIONES</b></font></p>     <p>La T_Gsig es eficiente y es una nueva forma de traducci&oacute;n m&aacute;s &aacute;gil porque   utiliza el mecanismo de "scarrning" y no de "parsing" para la traducci&oacute;n, como   es usual. De otro lado, dado que la presentaci&oacute;n pr&aacute;ctica de T_Gsig se realiz&oacute; a   trav&eacute;s de plantillas de clases, se pudo observar que es aplicable y general.</p>     <p>Desde el punto de vista aplicativo, con el empleo de la T_Gsig se consigue   que la navegaci&oacute;n virtual del &aacute;rbol sint&aacute;ctico mediante la jerarqu&iacute;a de clases,   permite la implementaci&oacute;n de las fases posteriores del proceso de compilaci&oacute;n   por medio de la adici&oacute;n de m&eacute;todos; adem&aacute;s, la utilidad de las T_Gsig fue   presentada mediante un caso de estudio real, el C&aacute;lculo Visual GraPiCO. Y desde   el punto de vista te&oacute;rico, gracias a la presentaci&oacute;n y demostraci&oacute;n de las   propiedades de la T_Gsig con m&eacute;todos formales, podemos concluir que es una forma   de traducci&oacute;n s&oacute;lida y v&aacute;lida. De la misma forma, ya que las T_Gsig extraen la   informaci&oacute;n visual conservando la textual y tambi&eacute;n la estructura inicial del   programa, encontramos que si existe una Correspondencia Uno a Uno entre las   caracter&iacute;sticas de los constructores visuales y textuales del lenguaje tratado,   el mecanismo de traducci&oacute;n preserva la sem&aacute;ntica.</p> <hr>     <p><sup><a href="#s1" name="1">1</a> </sup>Lenguajes de marcaci&oacute;n: es una forma de   codificar un documento que, junto con el texto, incorpora etiquetas o marcas que   contienen informaci&oacute;n adicional de la estructura del texto o su presentaci&oacute;n.   World Wide Web Consortion.</p>     <p><sup><a href="#s2" name="2">2</a> </sup>Conjunto de Constructores Simples.</p>     <p><sup><a href="#s3" name="3">3</a> </sup>&Iacute;cono en particular sin tomar en la   cuenta su entorno.</p>     ]]></body>
<body><![CDATA[<p><sup><a href="#s4" name="4">4</a> </sup>"representaciones duales de objetos   consistentes de una parte l&oacute;gica (el significado, o lo que es lo mismo, la   definici&oacute;n de su estructura interna) y una parte f&iacute;sica (informaci&oacute;n que   relaciona los constructores desde el punto de vista netamente visual:   localizaci&oacute;n y los dibujos)". Convergencia de definiciones en &#91;12&#93; y &#91;10&#93;.</p>     <p><sup><a href="#s5" name="5">5</a> </sup>En adelante, emplearemos <b>T&#91;&#91;Y&#93;&#93; </b>como la funci&oacute;n sem&aacute;ntica que recibe una expresi&oacute;n Y (generada por una   G_sig) y entrega su traducci&oacute;n en c&oacute;digo de un lenguaje textual</p>     <p><sup><a href="#s6" name="6">6</a> </sup>Combinaci&oacute;n ordenada de significantes   que interact&uacute;an formando un todo con sentido, dentro de un conjunto de reglas y   convenciones sint&aacute;cticas.</p>     <p><sup><a href="#s7" name="7">7</a> </sup>Se llamar&aacute; Expansi&oacute;n a la acci&oacute;n   resultante de activar un icono para visualizar su contenido</p>     <p><sup><a href="#s8" name="8">8</a> </sup>Especificaci&oacute;n textual de un programa   visual GraPiCO siguiendo las Gsig.</p> <hr>     <p><font size="3"><b>Referencias</b></font></p>     <!-- ref --><p>&#91;1&#93; G. &Aacute;lvarez, J.F D&iacute;az, L. Quesada, F. Valencia, G. Tamura, C. Rueda and G.   Assayag, "Integrating Constraints and concurrent objects in Musical   applications: A calculus and its visual languaje", <i>Constraints Journal&#094; </i>vol. 6, no. 1, pp.21-52, 2001.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000169&pid=S0122-3461200900020000200001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;2&#93; C.A. Tavera y J.F. D&iacute;az, "Nuevo C&aacute;lculo Visual GraPiCO: Presentaci&oacute;n de   sus caracter&iacute;sticas fundamentales", Presentado en el 2&deg; Congreso Colombiano de   Computaci&oacute;n - II CCC, Bogot&aacute;, Abril 2007.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000170&pid=S0122-3461200900020000200002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;3&#93; A. Fern&aacute;ndez, A. Navarro, B. Fern&aacute;ndez y J.L. Sierra, "Lenguajes de   Programaci&oacute;n, lenguajes de marcado y modelos hipermedia: Una visi&oacute;n interesada   de la evoluci&oacute;n de los lenguajes inform&aacute;ticos", en <i>Nuevos G&eacute;neros   Discursivos: Los Textos Electr&oacute;nicos, </i>C. L&oacute;pez-Alonso y A. S&eacute;r&eacute;, Eds.   Madrid: Biblioteca Nueva, 2003, pp. 95-113.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000171&pid=S0122-3461200900020000200003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;4&#93; D. Raggett, "Getting started with HTML", <i>World Wide Web Consortion, </i>May 24 2005. Available: <a href="http://w3.org/MarkUp/Guide" target="_blank">http://w3.org/MarkUp/Guide</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000172&pid=S0122-3461200900020000200004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;5&#93; Word Wide Web Consortium,"OWL Web Ontology Language Guide 10 Febrary   2004" in <i>W3C Recommendation, </i>M.K. Smith, C. Welty and D. McGuinness Eds.   Available: <a href="http://www.w3.org/TR/owl-guide" target="_blank">http://www.w3.org/TR/owl-guide</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000173&pid=S0122-3461200900020000200005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;6&#93; Word Wide Web Consortium, "extensible Markup Language (XML) 1.0", 4th ed.   29 September 2006 in <i>W3C Recommendation, </i>T. Bray, J. Paoli, C.M.   Sper-berg-McQueen E. Maler y F. Yergeau Eds., Available: <a href="http://www.w3.org/TR/2006/REC-xml-20060816" target="_blank">http://www.w3.org/TR/2006/REC-xml-20060816</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000174&pid=S0122-3461200900020000200006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;7&#93; H. Boley, "The Rule Markup Languaje: RDF-XML Data Model, XML schema   Hierarchy, and XSL Transformations", presented at International Conference on   Applications of Prolog - INAP, Tokyo, October 2001.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000175&pid=S0122-3461200900020000200007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;8&#93; D.Z. Hirtle, "TRANSLATOR: a TRANSlator from LAnguage TO Rules", presented   at Canadian Symposium on Text Analysis -CaSTA, Fredericton, October 2006.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000176&pid=S0122-3461200900020000200008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;9&#93; M. Erwig and S. Kollmansberger, "Visual Specifications of Correct   Spreadsheets", presented at <i>IEEE Symp. on Visual Languages and Human-Centric   Computing,</i> Dallas, TX, USA, September 2005. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000177&pid=S0122-3461200900020000200009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;10&#93; G. Costagliola and G. Polese "Extended positional grammars", Technical   Report, Dipatimento di Matematica ed Informatica. University of Salerno,   Salerno, Italy, 2001.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000178&pid=S0122-3461200900020000200010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;11&#93; C.A. Tavera y J.F. D&iacute;az, "Alternativa de especificaci&oacute;n sint&aacute;ctica de   lenguajes visuales: Gram&aacute;tica de sistemas de iconos generalizados-Gsig",   Presentado en el XII Congreso Argentino en Ciencias de la Computaci&oacute;n - CACiC,   San Luis, Octubre 2006.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000179&pid=S0122-3461200900020000200011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;12&#93; S.K. Chang, <i>Principles of Visual Programming Systems. </i>Upper   Saddle River, NJ (USA): Prentice Hall, 1990.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000180&pid=S0122-3461200900020000200012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;13&#93; A. W. Appel, <i>Modern Compiler Implementation in Java, </i>2<sup>nd</sup> ed. New York: Cambridge University Press, 2007.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000181&pid=S0122-3461200900020000200013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;14&#93; J. Noguera y A. Berm&uacute;dez, "Dise&ntilde;o e implementaci&oacute;n de la traducci&oacute;n   desde la especificaci&oacute;n textual del C&aacute;lculo Visual GraPiCO hacia una   representaci&oacute;n sem&aacute;nticamente v&aacute;lida en C&aacute;lculo PiCO", Proyecto de grado,   Escuela de Ingenier&iacute;a de Sistemas y Computaci&oacute;n, Universidad del Valle,   Septiembre 2005.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000182&pid=S0122-3461200900020000200014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Álvarez]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Díaz]]></surname>
<given-names><![CDATA[J.F]]></given-names>
</name>
<name>
<surname><![CDATA[Quesada]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Valencia]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Tamura]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Rueda]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Assayag]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Integrating Constraints and concurrent objects in Musical applications: A calculus and its visual languaje]]></article-title>
<source><![CDATA[Constraints Journal]]></source>
<year>2001</year>
<volume>6</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>21-52</page-range></nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tavera]]></surname>
<given-names><![CDATA[C.A.]]></given-names>
</name>
<name>
<surname><![CDATA[Díaz]]></surname>
<given-names><![CDATA[J.F.]]></given-names>
</name>
</person-group>
<source><![CDATA[Nuevo Cálculo Visual GraPiCO: Presentación de sus características fundamentales]]></source>
<year></year>
<conf-name><![CDATA[2 Congreso Colombiano de Computación - II CCC]]></conf-name>
<conf-date>Abril 2007</conf-date>
<conf-loc>Bogotá </conf-loc>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fernández]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Navarro]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Fernández]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Sierra]]></surname>
<given-names><![CDATA[J.L]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Lenguajes de Programación, lenguajes de marcado y modelos hipermedia: Una visión interesada de la evolución de los lenguajes informáticos]]></article-title>
<person-group person-group-type="editor">
<name>
<surname><![CDATA[López-Alonso]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Séré]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[]]></source>
<year>2003</year>
<page-range>95-113</page-range><publisher-loc><![CDATA[Madrid ]]></publisher-loc>
<publisher-name><![CDATA[Biblioteca Nueva]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Raggett]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<source><![CDATA[Getting started with HTML]]></source>
<year></year>
<conf-name><![CDATA[ World Wide Web Consortion]]></conf-name>
<conf-date>May 24 2005</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="">
<collab>Word Wide Web Consortium</collab>
<article-title xml:lang="en"><![CDATA[OWL Web Ontology Language Guide 10 Febrary 2004]]></article-title>
<person-group person-group-type="author">
<name>
<surname><![CDATA[Smith]]></surname>
<given-names><![CDATA[M.K]]></given-names>
</name>
<name>
<surname><![CDATA[Welty]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[McGuinness]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<source><![CDATA[W3C Recommendation]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="">
<collab>Word Wide Web Consortium</collab>
<article-title xml:lang="en"><![CDATA[extensible Markup Language (XML) 1.0]]></article-title>
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bray]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[Paoli]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Sper-berg-McQueen]]></surname>
<given-names><![CDATA[C.M]]></given-names>
</name>
<name>
<surname><![CDATA[Maler]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
<name>
<surname><![CDATA[Yergeau]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
</person-group>
<source><![CDATA[W3C Recommendation]]></source>
<year>29 S</year>
<month>ep</month>
<day>te</day>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Boley]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<source><![CDATA[The Rule Markup Languaje: RDF-XML Data Model, XML schema Hierarchy, and XSL Transformations]]></source>
<year></year>
<conf-name><![CDATA[ International Conference on Applications of Prolog - INAP]]></conf-name>
<conf-date>October 2001</conf-date>
<conf-loc>Tokyo </conf-loc>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hirtle]]></surname>
<given-names><![CDATA[D.Z]]></given-names>
</name>
</person-group>
<source><![CDATA[TRANSLATOR: a TRANSlator from LAnguage TO Rules]]></source>
<year></year>
<conf-name><![CDATA[ Canadian Symposium on Text Analysis -CaSTA]]></conf-name>
<conf-date>October 2006</conf-date>
<conf-loc>Fredericton </conf-loc>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Erwig]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Kollmansberger]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<source><![CDATA[Visual Specifications of Correct Spreadsheets]]></source>
<year></year>
<conf-name><![CDATA[ IEEE Symp. on Visual Languages and Human-Centric Computing]]></conf-name>
<conf-date>September 2005</conf-date>
<conf-loc>Dallas TX</conf-loc>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Costagliola]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Polese]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<source><![CDATA[Extended positional grammars]]></source>
<year>2001</year>
<publisher-loc><![CDATA[Salerno ]]></publisher-loc>
<publisher-name><![CDATA[University of Salerno]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tavera]]></surname>
<given-names><![CDATA[C.A.]]></given-names>
</name>
<name>
<surname><![CDATA[Díaz]]></surname>
<given-names><![CDATA[J.F.]]></given-names>
</name>
</person-group>
<source><![CDATA[Alternativa de especificación sintáctica de lenguajes visuales: Gramática de sistemas de iconos generalizados-Gsig]]></source>
<year></year>
<conf-name><![CDATA[XII Congreso Argentino en Ciencias de la Computación - CACiC]]></conf-name>
<conf-date>Octubre 2006</conf-date>
<conf-loc>San Luis </conf-loc>
</nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chang]]></surname>
<given-names><![CDATA[S.K.]]></given-names>
</name>
</person-group>
<source><![CDATA[Principles of Visual Programming Systems]]></source>
<year>1990</year>
<publisher-loc><![CDATA[Upper Saddle River^eNJ NJ]]></publisher-loc>
<publisher-name><![CDATA[Prentice Hall]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Appel]]></surname>
<given-names><![CDATA[A. W.]]></given-names>
</name>
</person-group>
<source><![CDATA[Modern Compiler Implementation in Java]]></source>
<year>2007</year>
<edition>2nd</edition>
<publisher-loc><![CDATA[New York ]]></publisher-loc>
<publisher-name><![CDATA[Cambridge University Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Noguera]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Bermúdez]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Diseño e implementación de la traducción desde la especificación textual del Cálculo Visual GraPiCO hacia una representación semánticamente válida en Cálculo PiCO]]></source>
<year>Sept</year>
<month>ie</month>
<day>mb</day>
<publisher-name><![CDATA[Escuela de Ingeniería de Sistemas y Computación, Universidad del Valle]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
