Está en la página 1de 13

REXX

REXX
REXX Desarrollador(es) Mike Cowlishaw e IBM Informacin general Paradigma Apareci en Diseado por multiparadigma 1979 Mike Cowlishaw

ltima versin estable ANSI X3.274 (1996) Implementaciones Dialectos Influido por IBM NetREXX [1] , Open Object Rexx [2] , Regina [3] , otras

Object REXX, Open Object REXX, NetREXX PL/I, EXEC 2, BASIC

REXX (REstructured eXtended eXecutor) es un lenguaje de programacin desarrollado en IBM por Mike Cowlishaw del que existen numerosas implementaciones disponibles con cdigo abierto. Es un lenguaje de programacin estructurado de alto nivel diseado para ser al mismo tiempo fcil de entender y fcil de leer. Hay intrpretes para REXX tanto comerciales como de cdigo abierto para un amplio rango de plataformas y hay compiladores para los mainframes de IBM. El nombre tambin se aplica a la familia de lenguajes relacionados con el lenguaje de programacin REXX: el propio REXX (llamado en ese contexto REXX clsico o tradicional), Object REXX y NetREXX.

Caractersticas
REXX tiene, entre otras, las siguientes caractersticas: tiene la cadena de caracteres como base no hay declaraciones no hay palabras reservadas (excepto en un contexto local) precisin numrica arbitraria aritmtica decimal un gran conjunto de funciones (especialmente para procesado de cadenas y palabras) gestin automtica de la memoria arrays asociativos acceso directo a las rdenes y facilidades del sistema manejo de errores sencillo herramientas de trazado y depuracin dentro del intrprete acceso a la entrada y salida simplificado

REXX tiene solamente 23 instrucciones de significado bastante evidente para los angloparlantes (call, parse y select son unos ejemplos) con unos requerimientos mnimos de puntuacin y formateo. Es esencialmente un lenguaje de formato libre con solamente un tipo de dato primitivo: la cadena de caracteres. Esta filosofa implica que todos los datos son visibles y que la depuracin y el trazado se simplifican. La sintaxis de REXX parece similar a la de PL/I, pero tiene menos notaciones; esto hace que el cdigo sea ms difcil de analizar por el intrprete o el compilador pero ms fcil de usar para el programador.

REXX

Historia
REXX fue diseado e implementado por vez primera como un proyecto personal de Mike Cowlishaw de IBM entre el 20 de marzo de 1979 y mediados de 1982, originalmente como un lenguaje de programacin de 'scripting' para reemplazar los lenguajes EXEC y EXEC 2. Fue diseado para ser un lenguaje de scripting o macros para cualquier sistema y como tal, se considera a REXX precursor de lenguajes como Tcl y Python. Adems, Cowlishaw se centr en que estuviese orientado a las personas en lugar de orientado a los ordenadores e intent que el lenguaje se mantuviese pequeo y manejable por ello ("Keep the language small" -"Mantn el lenguaje pequeo"- se lea en la pared sobre su escritorio). La primera versin pblica apareci en mayo de 1979 distribuida a travs de VNET, la red interna de IBM y los primeros usuarios aparte del propio Cowlishaw fueron Ray Mansell (de Hursley en el Reino Unido) y Les Koehler (de Raleigh en Carolina del Norte) que contribuyeron al lenguaje. A finales de 1979 al menos haba unos 70 ordenadores con una implementacin del lenguaje. Algunas versiones fueron distribuidas entre compradores seleccionados de IBM como el SLAC (Stanford Linear Accelerator Center) donde la capacidad de REXX de trabajar con aritmtica decimal de precisin arbitraria fue bien recibida. Al ser descrito por primera vez en pblico en la conferencia SHARE 56 en Houston, Texas, en 1981, la reaccin de los clientes de IBM, liderada por Ted Johnston de SLAC (parcialmente motivada por la aritmtica de REXX), condujo a que se convirtiese en producto oficial de IBM en 1982 y se incluyese en 1983 como parte del sistema VM/CMS. A lo largo de los aos, IBM incluy REXX en forma de intrprete o compilador en casi todos sus sistemas operativos desde los mainframes a los ordenadores personales (VM/CMS, VM/GCS, MVS TSO/E, AS/400, OS/2, VSE/ESA, AIX, CICS/ESA y PC-DOS) y ha hecho versiones disponibles para Novell Netware, Windows, Java y Linux. La primera versin fuera de IBM fue escrita por Charles Daney en 1984/5. Otras versiones han sido tambin desarrolladas para Atari, Amiga, Unix (mltiples variantes), Solaris, DEC, Windows, Windows CE, PocketPC, MS-DOS, Palm OS, QNX, OS/2, Linux, BeOS, EPOC32, AtheOS, OpenVMS, OpenEdition, Macintosh y Mac OS X. La versin de REXX para Amiga, llamada ARexx debida a Bill Hawes se incluy con AmigaOS 2 y fue popular tanto para scripting como para control de aplicaciones. Muchas aplicaciones Amiga tienen "puertos ARexx" en ellas lo que permite controlar la aplicacin a travs de un "script" definido por el usuario. Numerosas versiones gratuitas de REXX estn disponibles. En 1992 aparecieron las dos versiones de cdigo abierto ms ampliamente utilizadas: REXX/imc del britnico Ian Collier para UNIX y Regina del noruego Anders Christensen (posteriormente adoptada por el australiano Mark Hessling) para Windows y Linux. BREXX del griego Vasilis Vlachoudis es bien conocido para DOS, WinCE y PocketPC. Microsoft decidi incluir Regina en todos sus Windows Resource Kits como lenguaje de scripting y continu esta prctica hasta Windows 2000 mientras introduca sus propias aproximaciones al scripting a travs de WSH (Windows Scripting Host) y VBA (Visual Basic for Applications). En 1990, Cathy Dager de SLAC organiz el primer simposio REXX independiente que conducira cuatro aos despus a la formacin de la RexxLA (REXX Language Association). Los simposios se llevan a cabo anualmente. La RexxLA promovi la aparicin de un estndar ANSI para REXX as como de un borrador para un estndar de Object REXX. En 1996, ANSI se public el estndar para REXX: ANSI X3.2741996 Information Technology Programming Language REXX. Desde mediados de la dcada de 1990, existen dos variantes nuevas de REXX: NetREXX que compila a bytecodes Java o es interpretado directamente.

REXX Object REXX que es una versin orientada a objetos compatible con REXX. REXX cumpli su vigesimoquinto aniversario el 20 de marzo de 2004, lo que se celebr en el decimoquinto Simposio Internacional de REXX organizado por la RexxLA (REXX Language Association) en Bblingen, Alemania, en mayo de 2004. En el mismo decimoquinto Simposio Internacional de REXX, el 4 de mayo de 2004, IBM anuncia que retira Object REXX como producto y la intencin de abrir el cdigo fuente de Object REXX. Ante este anuncio, la RexxLA se ofrece a gestionar el futuro de Object REXX y nombra un comit para encargarse de la transicin. El 12 de octubre de ese mismo ao anuncia que transferir el cdigo a RexxLA para que se convierta en un proyecto de cdigo abierto bajo la licencia Common Public License y el 29 de noviembre de ese mismo ao se ha terminado de transferir todo el cdigo excepto el cdigo especfico de la versin para OS/2, el IBM Resource Workshop (que permita crear dilogos para Windows), Object REXX Workbench (IDE) y el paquete de funciones RxFTP. En febrero de 2005 aparece la primera versin pblica de ooRexx (Open Object REXX) gestionada por David Ashley y Rick McGuire.

Variables
En REXX las variables no tienen tipo e inicialmente se les asigna como valor su nombre en maysculas. De este modo, el tipo de una variable puede cambiar con el uso dentro del programa. Como ilustra el siguiente cdigo: say hola hola = "25" say hola || "0" say hola + 1 hola = "say 5 + 3" say hola interpret hola drop hola say hola /* /* /* /* /* /* /* /* /* HOLA <= La variable no tena valor asignado */ Se le asigna la cadena "25" */ 250 <= La variable es tratada como cadena */ 26 <= La variable es tratada como nmero */ Se le asigna la cadena "say 5 + 3" */ say 5 + 3 */ 8 <= La variable es interpretada */ Se le desasigna el valor */ HOLA */

REXX ofrece solamente un tipo de variable primitivo (la cadena) y un tipo de variable compuesta (que en REXX suele nombrarse precisamente de ese modo).

Variables simples
Los smbolos para las variables simples en REXX tienen como caracteres permitidos los tpicos en casi todos los lenguajes de programacin, pero nunca pueden tener un punto despus del primer carcter dado que eso las convierte en una variable compuesta. Como cadenas REXX ofrece la operacin de concatenacin, la instruccin PARSE y un gran nmero de funciones para trabajar con cadenas por lo que muchas tareas con ellas resultan especialmente sencillas en este lenguaje. Las cadenas estn delimitadas por apstrofos o comillas y al contrario que en otros lenguajes de programacin interpretados, no existen las secuencias de escape ni la interpolacin de variables; normalmente se utiliza la concatenacin para conseguir los mismos efectos. cadena = 'Una cadena delimitada por apstrofos' cadena = "Una cadena delimitada por comillas" say "Hola.\a" /* Hola.\a <= No hay secuencias de escape */ say "$cadena" /* $cadena <= No hay interpolacin de variables */ /* La siguiente cadena est delimitada por apstrofos */

REXX cadena = '"La vida es sueo", por Caldern de la Barca' /* La siguiente cadena est delimitada por comillas. Para escribir comillas dentro de la cadena, basta escribirlas por duplicado */ cadena = """La vida es sueo"", por Caldern de la Barca" La concatenacin de cadenas puede hacerse implcitamente al poner de forma contigua dos variables o explcitamente con el operador de concatenacin (||): uno dos say say say = 'Una' = 'cadena' uno dos /* Una cadena */ uno||dos /* Unacadena */ uno || ' 'dos /* Una cadena */

Cuando una cadena literal va seguida de "b" o "x" es tratada como una cadena binaria o hexadecimal: /* El carcter para el tabulador horizontal: */ tab = '09'x /* en hexadecimal */ tab = '1001'b /* en binario */ campo_uno = 'Primero' campo_dos = 'Segundo' say campo_uno || tab || campo_dos Como nmeros Las cadenas son tratadas como nmeros dependiendo del contexto y cuando son nmeros, pueden escribirse sin los delimitadores: pi = 3.141592 seis = "6" say pi || seis /* 3.1415926 */ say pi + 6 /* 9.141592 */ numero_avogadro = 6.022e23 REXX ofrece la instruccin NUMERIC para establecer la precisin de los clculos numricos (con NUMERIC DIGITS), la forma de la salida de las cadenas como nmeros (con NUMERIC FORM) y los dgitos significativos descartados a la hora de realizar las comparaciones (con NUMERIC FUZZ). Adems las funciones digits(), form() y fuzz() permiten consultar la precisin, la forma y los dgitos significativos descartados en las comparaciones. REXX ofrece una serie de funciones y operadores bsicos para trabajar con nmeros, pero carece de las funciones matemticas bsicas (raz cuadrada, funciones trigonomtricas...). Como valores lgicos Si una cadena vale uno o cero, entonces puede utilizarse como un valor lgico: existe = "1" if existe & existe = 1 then say 'Esta cadena siempre se imprimir' else say 'Esta cadena nunca se imprimir' Puede asignarse el valor lgico de una expresin:

REXX
AmayorqueB = A > B if AmayorqueB then say 'A es mayor que B' else say 'A NO es mayor que B' /* se asignar 1 a AmayorqueB si A > B, en caso contrario 0 */

Como estructuras de datos Debido a la facilidades que ofrece REXX para trabajar con cadenas, resulta relativamente sencillo crear con una cadena una estructura de datos concreta (un nmero complejo, una matriz, los datos de un libro...): /* Por convencin, el programador puede tratar la cadena como la unidad imaginaria */ unidad_imaginaria = "0 1" /* Por convencin, el programador puede tratar la cadena como la matriz identidad de orden tres */ matriz = "1,0,0;0,1,0;0,0,1" /* O, con otra convencin distinta: */ matriz = "3,3,1,0,0,0,1,0,0,0,1" /* Por convencin, el programador puede tratar la cadena como los datos de un libro */ delimitador = '00'x titulo = 'The Rexx Language'||, ': A Practical Approach to Programming'||, ' (Second Edition)' autor = 'Michael Cowlishaw' isbn = '0137806515' libro = titulo || delimitador || autor ||, delimitador || isbn

Variables compuestas
En REXX cualquier variable que incluya un punto tras el primer carcter de su nombre es una variable compuesta (compound variable en ingls). Los caracteres entre el primero y el primer punto (ambos estn incluidos) son considerados el nombre de la variable y recibe el nombre de tronco (stem en ingls). Los caracteres posteriores al punto son la cola (tail en ingls). As, por ejemplo, si tenemos el smbolo cv.libro.i, cv. es el tronco de la variable compuesta y libro.i es la cola de la variable compuesta. En REXX clsico, las variables compuestas no pueden pasarse como parmetros por referencia a una funcin, una funcin no puede devolverlas como resultado y no se incluye un modo de recorrerlas, copiarlas, ni ordenarlas. var = 'Hola' /* Variable sencilla */ var. = 'Hello' /* Variable compuesta INDEPENDIENTE */ indice = 1 var.indice = 'Uno' var.2 = 'Dos' say var /* Hola <= La variable sencilla */ say var.1 /* Uno <= La variable compuesta */ say var.3 /* Hello <= La variable compuesta */ say uno.3 /* UNO.3 <= No inicializado */

REXX drop var. say var.1 say var

/* VAR.1 <= No inicializado */ /* Hola <= La variable sencilla */

Como arrays asociativos Las variables compuestas en REXX funcionan esencialmente como arrays asociativos multidimensionales (a los arrays asociativos tambin se les llama, dependiendo del contexto, tablas de dispersin, hashes o diccionarios). El siguiente ejemplo muestra el uso de una variable compuesta como array asociativo para manejar una pequea agenda de telfonos: say 'Agenda de telfonos' telefonos. = 'No se encuentra el nmero' nombre = 'Francisco Gmez de Quevedo y Santibez Villegas' telefonos.nombre = '1234567890' nombre = 'Miguel de Cervantes y Saavedra' telefonos.nombre = '0987654321' say 'Introduzca un nombre:' parse pull nombre say telefonos.nombre Si el usuario introduce un nombre conocido tal y como est escrito, se imprimir el nmero correspondiente. Si el nombre no es conocido ("Paco", por ejemplo) imprimir el valor por defecto de la variable compuesta (es decir, "No se encuentra el nmero"). Como arrays Las variables compuestas en REXX se usan con frecuencia como arrays con la peculiar convencin de que se considera que el primer elemento tiene como ndice 1 (al contrario que en otros lenguajes, en los que el primer elemento del array tiene como ndice el 0) y el elemento con ndice 0 se reserva para indicar el nmero de elementos del array: array.0 = 3 array.1 = 'Uno' array.2 = 'Dos' array.3 = 'Tres' do i = 1 to array.0 say array.i end i Como arrays multidimensionales Siguiendo convenciones similares, pueden construirse arrays de ms de una dimensin como en el siguiente cdigo: matriz.1.1 matriz.1.2 matriz.2.1 matriz.2.2 = = = = 1 0 0 1

REXX Como estructuras de datos Las variables compuestas en REXX pueden usarse para crear estructuras de datos ms complejas (arrays de arrays asociativos, rboles binarios...): /* Un nmero complejo */ unidad_imaginaria.re = 0 unidad_imaginaria.im = 1 /* Los datos de un libro */ libro.!titulo = 'The Rexx Language'||, ': A Practical Approach to Programming'||, ' (Second Edition)' libro.!autor = 'Michael Cowlishaw' libro.!ISBN = '0137806515'

Operadores
Operadores de concatenacin
Los operadores de concatenacin de cadenas en REXX son: (espacio) que concatena dejando un espacio entre las cadenas || que concatena sin dejar espacio entre las cadenas (yuxtaposicin) que concatena sin dejar espacio entre las cadenas Ejemplos de uso de estos operadores pueden encontrarse en la seccin dedicada al uso de variables simples en REXX como cadenas.

Operadores aritmticos
Los operadores aritmticos binarios en REXX son los siguientes:
+ * / suma resta producto cociente say 1 + 1 /* 2 */ say 1 - 1 /* 0 */ say 2 * 2 /* 4 */ say 5 / 2 /* 2.5 */ siempre cociente real entre reales

% cociente entero say 5 % 2 /* 2 */ // resto say 5 // 2 /* 1 */ diferente del mdulo; puede dar un nmero negativo al contrario que en lenguajes como Perl, el exponente siempre es un nmero entero

** potencia entera say 3 ** 2 /* 9 */

Los operadores aritmticos unarios en REXX son: - igual que "0 - nmero" + igual que "0 + nmero"

REXX

Operadores lgicos
Los operadores lgicos en REXX son: & y boleano | o boleano && o exclusivo \, no

Estructuras de control
REXX tiene solamente tres instrucciones bsicas para construir todas las estructuras de control propias de la programacin estructurada: DO/END, IF/THEN/ELSE y SELECT/WHEN/OTHERWISE/END. La instruccin DO/END sirve para agrupar el cdigo en bloques y para hacer bucles. Las otras dos instrucciones permiten hacer selecciones condicionales de cdigo.

Bloques
DO cadena = 'Hola' say cadena END

Bucles
Bucles simples veces = 5 DO veces say 'Esto se imprime' veces 'veces' END DO FOREVER say 'Esto se imprime eternamente' END Bucles controlados DO i = 1 say i END i /* Imprime indefinidamente: 1, 2, 3... */ limite = 100 DO i = 1 TO limite say i END i /* Imprime los 100 primeros nmeros naturales */ veces = 100 DO i = 1 FOR veces say i END i /* Imprime los 100 primeros nmeros naturales */

REXX DO i = 10 TO 0 BY -1 say i END i /* Imprime 10, 9, 8... */ Bucles condicionales numero = 1 limite = 3 veces = limite - numero DO WHILE numero < limite numero = numero + 1 say 'Esto se imprime' veces 'veces' END numero = 1 limite = 3 DO UNTIL numero > limite numero = numero + 1 say 'Esto se imprime' limite 'veces' END

Condicionales
IF numero = 1 THEN say 'El nmero es igual a 1' IF numero = 1 THEN say 'El nmero es igual a 1' ELSE say 'El nmero es distinto de 1' IF numero = 1 THEN say 'El nmero es igual a 1' ELSE IF numero = 2 THEN say 'El nmero es igual a 2' ELSE say 'El nmero es distinto de 1 y 2' SELECT WHEN numero = 1 THEN say 'El nmero es igual a 1' WHEN numero = 2 THEN say 'El nmero es igual a 2' OTHERWISE say 'El nmero es distinto de 1 y 2' END

REXX

10

Tratamiento de errores y excepciones


En REXX es posible interceptar los errores y otras excepciones utilizando las instrucciones SIGNAL o CALL. El estndar ANSI establece que hay siete condiciones (ERROR, FAILURE, HALT, NOVALUE, NOTREADY, LOSTDIGITS y SYNTAX) y no permite definir nuevas excepciones ni generarlas (lo que s es posible en Object REXX y NetREXX). Este ejemplo funcionar hasta que sea interrumpido por el usuario o termine el milln de iteraciones del bucle: signal on halt do i = 1 to 1000000 say 'El cuadrado de' i 'es' i**2 end exit halt: say 'El programa ha sido detenido por el usuario' La siguiente tabla muestra las condiciones, da una somera idea de cundo aparecen, establece con qu instrucciones pueden atraparse y el nivel del lenguaje en el que fueron introducidas.
ERROR FAILURE HALT NOVALUE NOTREADY cdigo de retorno (RC) positivo de una orden del sistema RC negativo de una orden del sistema programa detenido referenciada una variable sin valor asignado error de entrada o salida SIGNAL y CALL 3.5 SIGNAL y CALL 3.5 SIGNAL y CALL 3.5 SIGNAL 3.5

SIGNAL y CALL 4.0 SIGNAL 5.0 3.5

LOSTDIGITS prdida dgitos significativos SYNTAX

error de sintaxis o algn error no incluido en los anteriores SIGNAL

Cuando una condicin es manejada por SIGNAL ON, las variables especiales SIGL y RC pueden ser analizadas para entender la situacin. RC contiene el cdigo de error de REXX y SIGL el nmero de lnea donde ocurre el error.

El acrnimo REXX
Significado
En la primera especificacin del lenguaje en 1979, Cowlishaw lo llam simplemente "REX" porque le gust cmo sonaba y justific ese nombre como proveniente de "Reformed EXecutor". La letra "X" adicional se aadi en 1982 para evitar problemas con marcas registradas cuando un estudio de IBM descubri que haba un producto comercial llamado Rex-80. Normalmente se considera que REXX es un acrnimo y por lo general Cowlishaw y los documentos de IBM dicen que viene de "REstructured eXtended eXecutor", aunque tambin puede encontrarse como "Restructured EXtended eXecutor". Debido al hecho de que el nombre original era igual a la palabra latina para "rey", existen muchas referencias a ello en el mundo que rodea al lenguaje: logos en forma de corona (Regina, Open Object REXX...), el nombre del intrprete Regina ("reina" en latn)...

REXX

11

Tipografa
En texto plano, Cowlishaw parece preferir Rexx, mientras que en los documentos de IBM y en la mayor parte de la web se usa REXX. El estndar ANSI utiliza la forma preferida por el comit de estandarizacin, que tiene letras maysculas pequeas para las tres letras finales: REXX.

Pronunciacin
Se pronuncia como "rex", sin hacer nfasis en la "x" final.

Bibliografa
The Rexx Language: A Practical Approach to Programming (Prentice Hall, 1990), por Michael Cowlishaw, ISBN 0-13-780651-5 Programming in REXX (McGraw-Hill, 1990), por Charles Daney, ISBN 0-07-015305-1 REXX with OS/2, TSO, & CMS Features (M V S Training, 1999), por Gabriel Gargiulo, ISBN 1-892559-03-X Down to Earth Rexx (Perfect Niche Software, 2000), por William Schindler, ISBN 0-9677590-0-5 Rexx Programmer's Reference (Wiley/Wrox, 2005), por Howard Fosdick, ISBN 0-7645-7996-7

Enlaces externos
Pgina del lenguaje REXX [4] en IBM REXX Language Association [5] (Asociacin del lenguaje REXX) Foro en Ingls sobre Rexx [6] (MVS)

Intrpretes
REXX clsico Regina [3]: intrprete de cdigo abierto (LGPL) para Linux, BSD, Windows, etc. REXX/imc [7]: intrprete de cdigo abierto (licencia no estndar) para sistemas Unix y Linux. BREXX [8]: intrprete de cdigo abierto (GPL) para DOS, Linux, Windows CE, etc. Reginald [9]: intrprete gratuito para Windows. roo! [10]: intrprete gratuito (Kilowatt Software) para Windows con extensiones orientadas a objetos. r4 [11]: intrprete gratuito (Kilowatt Software) para Windows. REXX para Palm OS [12]: intrprete shareware (Jaxo Inc.) para Palm OS. Personal REXX [13]: intrprete comercial (Quercus Systems) para Windows, OS/2 y DOS. S/REXX [14]: intrprete comercial (Benaroya) para UNIX y Windows. uni-REXX [15]: intrprete commercial (The Workstation Group Ltd.) para UNIX.

REXX Object REXX Pgina de Open Object REXX [2] NetREXX Pgina en IBM de NetREXX [1]

12

Grupos de noticias
comp.lang.rexx [16]

Tutores
El lenguaje REXX [17] Rexx for everyone [18]: una introduccin por David Mertz para IBM developerWorks. Vladimir Zabrodsky's Album of Algorithms and Techniques for Standard Rexx [19] Vladimir Zabrodsky's An Introduction to the Rexx Programming Language [20] PLEAC-REXX [21]: Programming Language Examples Alike Cookbook para REXX Rexx Frequently Asked Questions (FAQ) [22]: preguntas frecuentes de REXX

jaky

Referencias
[1] http:/ / www2. hursley. ibm. com/ netrexx [2] http:/ / www. oorexx. org [3] http:/ / regina-rexx. sourceforge. net [4] http:/ / www. ibm. com/ rexx/ [5] http:/ / www. rexxla. org [6] http:/ / www. mvsforums. com/ helpboards/ login. php?redirect=viewforum. php& f=7& start=0 [7] http:/ / users. comlab. ox. ac. uk/ ian. collier/ Rexx/ rexximc. html [8] http:/ / ftp. gwdg. de/ pub/ languages/ rexx/ brexx/ html/ rx. html [9] http:/ / www. borg. com/ ~jglatt/ rexx/ rexxuser. htm [10] http:/ / www. kilowattsoftware. com/ rooPage. htm [11] http:/ / www. kilowattsoftware. com/ r4Page. htm [12] http:/ / www. jaxo. com/ rexx [13] http:/ / www. quercus-sys. com [14] http:/ / www. sedit. com/ rexxgrph. html [15] http:/ / www. wrkgrp. com/ unirexx/ index. html [16] http:/ / groups. google. es/ group/ comp. lang. rexx [17] http:/ / www. disc. ua. es/ ~gil/ rexx. html [18] http:/ / www-106. ibm. com/ developerworks/ library/ l-rexx. html [19] http:/ / www. geocities. com/ SiliconValley/ Garage/ 3323/ aat/ index. html [20] http:/ / www. geocities. com/ SiliconValley/ Garage/ 3323/ introrexx. html [21] http:/ / pleac. sourceforge. net/ pleac_rexx/ index. html [22] http:/ / www. mindspring. com/ ~dave_martin/ RexxFAQ. html

Fuentes y contribuyentes del artculo

13

Fuentes y contribuyentes del artculo


REXX Fuente: http://es.wikipedia.org/w/index.php?oldid=64580828 Contribuyentes: Acevedo, Canyq, Dodo, GermanX, JRGL, Locovich, Spc, Tirithel, Toad32767, Yago AB, 23 ediciones annimas

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/

También podría gustarte