Rexx ( ejecutor extendido reestructurado ) es un lenguaje de programación de alto nivel desarrollado en IBM por Mike Cowlishaw . [ 6 ] [ 7 ] Existen intérpretes de Rexx , tanto propietarios como de código abierto, para una amplia gama de plataformas informáticas , y compiladores para ordenadores centrales de IBM . [ 8 ] Rexx se utiliza para scripting , macros de aplicaciones y desarrollo de aplicaciones . Como lenguaje de scripting de propósito general, Rexx se considera un precursor de Tcl y Python .
Rexx es compatible con diversos entornos. Es el lenguaje de scripting principal en algunos sistemas operativos , como OS/2 , MVS , VM y AmigaOS , y se utiliza para macros en algunos programas, como SPF/PC , KEDIT , THE y ZOC . Con un motor instalado, Rexx puede utilizarse para scripting y macros en programas que utilizan un motor de scripting ActiveX de Windows Scripting Host (como VBScript o JScript ). Rexx se incluye en VM/SP Release 3 y versiones posteriores, TSO/E Versión 2 y versiones posteriores, OS/2 (1.3 y versiones posteriores, donde se denomina oficialmente Procedures Language/2 ), AmigaOS Versión 2 y versiones posteriores , PC DOS ( 7.0 o 2000 ), ArcaOS [ 9 ] y Windows NT 4.0 (Resource Kit: Regina). A finales de la década de 1980, Rexx se convirtió en el lenguaje de scripting común para IBM Systems Application Architecture , donde pasó a llamarse "SAA Procedure Language REXX".
Un script se asocia con un intérprete Rexx en tiempo de ejecución de varias maneras según el contexto. En la computación de mainframe, un script o comando Rexx a veces se denomina EXEC, ya que ese es el nombre del tipo de archivo utilizado para scripts CMS EXEC [ 10 ] y EXEC 2 [11] similares y para scripts Rexx en VM / SP R3 a z / VM . La primera línea de un script especifica el uso de un intérprete Rexx en un comentario, ya sea identificando el código como lenguaje Rexx o mediante la ruta del archivo a través de . En MVS, los scripts Rexx pueden [ a ] ser reconocidos por el calificador de bajo nivel "EXEC" o si la primera línea obtenida de SYSPROC es un comentario que contiene "REXX", entonces se trata como Rexx (en lugar de CLIST), y un script obtenido de SYSEXEC debe ser Rexx. En OS/2, los scripts Rexx comparten la extensión de nombre de archivo ".cmd" con otros lenguajes de scripting, y la primera línea del script especifica el intérprete a utilizar. En Linux , los scripts Rexx generalmente comienzan con una línea shebang . Las macros Rexx para aplicaciones compatibles con Rexx utilizan extensiones determinadas por la aplicación.EXTPROC
Nombre
Originalmente, el lenguaje se llamaba REX , abreviatura de Reformed Executor , pero se añadió una "X" extra para evitar confusiones con otros productos. El nombre originalmente estaba todo en mayúsculas. Ambas ediciones del primer libro de Mike Cowlishaw sobre el lenguaje usan mayúsculas, REXX , aunque la imagen de la portada usa mayúsculas y minúsculas. Su libro sobre NetRexx usa mayúsculas y minúsculas, pero todo en mayúsculas en la imagen de la portada con mayúsculas grandes y pequeñas, N ET R EXX . Una expansión que coincide con la abreviatura, REstructured eXtended eXecutor , se usó para el producto del sistema en 1984. [ 12 ]
Muestra
a = "hola mundo" /* instrucción de asignación */hacer i = 1 a 2 /* instrucción de palabra clave "HACER" */decir "ronda #" i ":" a /* instrucción de palabra clave "DECIR" */fin /* instrucción de palabra clave "FIN" */"echo Hola Mundo" /* comando para el sistema operativo */"echo" un /* comando al sistema operativo */decir "RC:" rc /* código de retorno numérico del comando */Historia
antes de 1990
En su tiempo libre, Mike Cowlishaw desarrolló el lenguaje y un intérprete para el mismo en lenguaje ensamblador entre el 20 de marzo de 1979 y mediados de 1982 con la intención de reemplazar los lenguajes EXEC y EXEC 2. [ 6 ] Mike también pretendía que Rexx fuera una versión simplificada y más fácil de aprender de PL/I , pero algunos afirman que Rexx tiene diferencias problemáticas con respecto a PL/I.
Rexx se describió por primera vez en público en la conferencia SHARE 56 en Houston, Texas, en 1981, [ 13 ] donde la reacción de los clientes, defendida por Ted Johnston de SLAC , llevó a que se lanzara como un producto de IBM en 1982.
A lo largo de los años, IBM incluyó Rexx en casi todos sus sistemas operativos ( VM/CMS , MVS TSO/E , IBM OS/400 , VSE/ESA , MUSIC/SP , AIX , PC DOS y OS/2 ), y ha puesto a disposición versiones para Novell NetWare , Windows , Java y Linux .
La primera versión no IBM fue escrita para PC DOS por Charles Daney en 1984/5 [ 7 ] y comercializada por Mansfield Software Group (fundada por Kevin J. Kearney en 1986). [ 6 ] El primer compilador Rexx apareció en 1987, escrito para CMS por Lundin y Woodruff. [ 14 ] También se han desarrollado otras versiones para AmigaOS , Unix , Solaris , DEC , Windows, Windows CE , Pocket PC , Palm OS , QNX , OS/2 , Linux , BeOS , EPOC32 / Symbian , AtheOS , OpenVMS , [ 15 ] : 309 y Mac OS X. [ 16 ]
ARexx , un intérprete de Rexx para Amiga , se incluyó a partir de AmigaOS 2 y fue popular para la creación de scripts y el control de aplicaciones. Muchas aplicaciones de Amiga cuentan con un "puerto ARexx" que permite controlarlas mediante un script de Rexx. Cabe destacar que un script de Rexx puede alternar entre puertos para controlar varias aplicaciones.
Desde 1990
En 1990, Cathie Dager, de SLAC, organizó el primer simposio independiente sobre el idioma Rexx, lo que dio lugar a la formación de la Asociación del Idioma Rexx. Los simposios se celebran anualmente.
En 1992, aparecieron los dos puertos de código abierto más utilizados : REXX/imc de Ian Collier para Unix y Regina de Anders Christensen [ 5 ] (posteriormente adoptado por Mark Hessling) para Windows y Unix. BRexx fue desarrollado por Vasilis N Vlachoudis, un científico nuclear del CERN . Se ejecuta en una variedad de sistemas operativos, incluidos Unix, Linux, BSD, macOS y Windows. Su pequeño tamaño permite que se ejecute en un teléfono móvil Android . BRexx/370 es una versión que se ejecuta en mainframes de IBM. [ 15 ] : 359–383 [ 17 ]
OS/2 cuenta con un sistema de desarrollo visual de Watcom, VX-REXX . Otro dialecto era VisPro REXX de Hockware.
Portable Rexx de Kilowatt y Personal Rexx de Quercus son dos intérpretes de Rexx diseñados para DOS y que también se pueden ejecutar en Windows mediante la línea de comandos. Desde mediados de la década de 1990, han aparecido dos variantes más recientes de Rexx:
- NetRexx : compila a código de bytes de Java a través del código fuente de Java; no tiene palabras clave reservadas y utiliza el modelo de objetos de Java, por lo que generalmente no es compatible con versiones anteriores de Rexx 'clásico'.
- Object REXX : una versión de Rexx orientada a objetos y generalmente compatible con versiones anteriores.
En 1996, el Instituto Nacional Estadounidense de Estándares (ANSI) publicó un estándar para Rexx: ANSI X3.274–1996 "Tecnología de la Información – Lenguaje de Programación REXX". [ b ] Desde 1985 se han publicado más de dos docenas de libros sobre Rexx.
El 12 de octubre de 2004, IBM anunció su plan de publicar el código fuente de su implementación de Object REXX bajo la Licencia Pública Común . Las versiones recientes de Object REXX incluyen un motor de scripting ActiveX Windows Scripting Host (WSH) que implementa esta versión del lenguaje Rexx.
El 22 de febrero de 2005 se anunció la primera versión pública de Open Object Rexx (ooRexx). Este producto incluye un motor de scripting WSH que permite programar el sistema operativo Windows y aplicaciones con Rexx, de la misma manera que Visual Basic y JScript se implementan en la instalación predeterminada de WSH, así como los motores de scripting de terceros Perl , Tcl y Python .
En enero de 2018, el índice TIOBE incluyó a Rexx en la posición 30. [ 19 ] Desde 2018, ha estado fuera de los 50 primeros puestos o, con mayor frecuencia, fuera de los 100 primeros.
En 2019, el 30.º Simposio de la Asociación del Lenguaje Rexx conmemoró el 40.º aniversario de Rexx. El simposio se celebró en Hursley, Inglaterra, donde Rexx fue diseñado e implementado por primera vez. [ 20 ]
Kits de herramientas
- RexxUtil , un paquete de funciones de archivos y directorios, E/S por ventanas y funciones para acceder a servicios del sistema como WAIT y POST , está disponible para la mayoría de los entornos Rexx. [ 21 ] [ 22 ] [ 23 ]
- Rexx/Tk , un conjunto de herramientas para gráficos que se utiliza en programas Rexx de la misma manera que Tcl/Tk , está ampliamente disponible.
- RexxEd , un entorno de desarrollo integrado (IDE) para Rexx , fue desarrollado para Windows . [ 15 ] : 390
- Se han desarrollado RxSock para la comunicación en red, así como otros complementos e implementaciones de Regina Rexx, y la mayoría de los kits de recursos para varias versiones de Windows incluyen un intérprete de Rexx para la línea de comandos de Windows, que también funciona en DOS .
Véase también
Notas
- ↑ El comando TSO EXEC con un nombre de conjunto de datos no calificado, y sin la opción CLIST ni EXEC, examina el calificador de bajo nivel para "EXEC".
- ↑ Si bien las normas ANSI INCITS 274-1996/AMD1-2000 (R2001) y ANSI INCITS 274-1996 (R2007) son de pago, se puede descargar un borrador gratuito. [ 18 ]
Referencias
- ↑ Producto de máquina virtual/sistema - Producto de sistema - Referencia del intérprete - Versión 3 (PDF) (Primera ed.). IBM . Septiembre de 1983. SC24-5239-0 . Consultado el 6 de noviembre de 2024 .
- ↑ Extensiones TSO Versión 2 - Referencia del lenguaje de procedimientos MVS/REXX (PDF) (Quinta ed.). IBM . Agosto de 1991. SC28-1883-4 . Recuperado el 6 de noviembre de 2024 .
- ↑ "Lenguaje de procedimientos" . Arquitectura de aplicaciones de sistemas: una visión general (PDF) (Primera ed.). IBM . Mayo de 1987. pág. 40. GC26-4341-0 . Consultado el 6 de noviembre de 2024 .
- ↑ Procedures Language/2 - REXX Reference - Version 2.00 (PDF) . OS/2 2.00 - Technical Library (First ed.). IBM . Diciembre de 1991. S10G-6268-00 . Consultado el 6 de noviembre de 2024 .
- 1 2 Mark Hessling (25 de octubre de 2012). "Intérprete de Regina Rexx" . Proyecto SourceForge regina-rexx . Recuperado el 10 de febrero de 2014 .
- 1 2 3 M. F. Cowlishaw . "IBM REXX Brief History" . IBM . Consultado el 15 de agosto de 2006 .
- 1 2 Melinda Varian. "Simposio REXX, mayo de 1995" .
- ↑ "Catálogo de todos los documentos (filtro=rexx)" . Servidor de biblioteca de IBM . 2005. Archivado del original el 15 de febrero de 2013. Recuperado el 10 de febrero de 2014 .
- ↑ "¿ArcaOS incluye soporte para REXX?" . Consultado el 3 de septiembre de 2020 .
- ↑ IBM Virtual Machine Facility /370: Guía del usuario de EXEC (PDF) (Segunda edición). International Business Machines Corporation. Abril de 1975. GC20-1812-1.
- ↑ Referencia EXEC 2 (PDF) (Segunda edición). International Business Machines Corporation. Abril de 1982. pág. 92. SC24-5219-1. Archivado del original (PDF) el 2 de abril de 2020. Consultado el 28 de marzo de 2019 .
- ↑ MF Cowlishaw (1984). "El diseño del lenguaje REXX" (PDF) . IBM Systems Journal (PDF). 23 (4). IBM Research : 333. doi : 10.1147/sj.234.0326 . Recuperado el 23 de enero de 2014. ¿
Podría haber un alto factor de asombro asociado con la nueva característica? Si una característica es aplicada accidentalmente por el usuario y causa lo que le parece un resultado impredecible, esa característica tiene un alto factor de asombro y, por lo tanto, es indeseable. Si una característica necesaria tiene un alto factor de asombro, puede ser necesario rediseñar la característica.
- ↑ MF Cowlishaw (18 de febrero de 1981). "REX: un lenguaje de programación de comandos" . SHARE . Consultado el 15 de agosto de 2006 .
- ↑ Lundin, Leigh; Woodruff, Mark (23 de abril de 1987). "T/REXX, un compilador REXX para CMS" . Oficina de Derechos de Autor de EE. UU. (TXu000295377). Washington, DC: Independent Intelligence Incorporated. Archivado del original el 3 de marzo de 2016. Recuperado el 20 de febrero de 2010 .
- 1 2 3 Fosdick, Howard (2025). Rexx Programmer's Reference (PDF) (2.ª ed.). Apex, Carolina del Norte : Rexx Language Association. ISBN 9789403745527. OCLC 1475017186 . Archivado (PDF) del original el 3 de abril de 2025 . Recuperado el 26 de mayo de 2025 .
- ↑ "Implementaciones de Rexx" . RexxLA. Archivado del original el 24 de septiembre de 2006. Consultado el 15 de agosto de 2006 .
- ^ Vlachoudis, Vassilis (junio de 2011). Escrito en el CERN . "BRexx" . San Francisco, California : GitHub . Archivado desde el original el 12 de junio de 2025 . Consultado el 24 de junio de 2025 .
- ↑ "Estándar Nacional Estadounidense para Sistemas de Información – Lenguaje de Programación R EXX " (PDF) . The Rexx Language Association . Washington DC : American National Standards Institute (ANSI) . X3J18-199X. Archivado (PDF) del original el 3 de abril de 2025. Recuperado el 7 de junio de 2025 .
- ↑ "Índice TIOBE de enero de 2018" . TIOBE . Eindhoven, Países Bajos . Enero de 2018. Archivado del original el 3 de febrero de 2018. Consultado el 7 de junio de 2025 .
- ↑ "RexxLA - Programa del simposio" .
- ↑ Ashley, W David; Flatscher, Rony G; Hessling, Mark; McGuire, Rick; Peedin, Lee; Sims, Oliver; Steinbock, Erich; Wolfers, Jon (19 de enero de 2024). "8. Utilidades Rexx (RexxUtil)" (PDF) . Open Object Rexx: Referencia (PDF) (ed. 5.1.0 ). Rexx Language Association. págs. 512–566 . Archivado (PDF) del original el 25 de mayo de 2024. Recuperado el 26 de mayo de 2025 .
- ↑ "REXX Tips & Tricks: REXXUTIL functions" . EDM2: The Electronic Developer Magazine for OS/2 . Consultado el 14 de octubre de 2023 .
- ↑ "Intérprete de Regina Rexx" . Sourceforge . Consultado el 14 de octubre de 2023 .
Lecturas adicionales
- Callaway, Merrill. The ARexx Cookbook: A Tutorial Guide to the ARexx Language on the Commodore Amiga Personal Computer. Whitestone, 1992. ISBN 978-0963277305.
- Callaway, Merrill. The Rexx Cookbook: A Tutorial Guide to the Rexx Language in OS/2 & Warp on the IBM Personal Computer. Whitestone, 1995. ISBN 0-9632773-4-0.
- Cowlishaw, Michael. The Rexx Language: A Practical Approach to Programming. Prentice Hall, 1990. ISBN 0-13-780651-5.
- Cowlishaw, Michael. The NetRexx Language. Prentice Hall, 1997. ISBN 0-13-806332-X.
- Daney, Charles. Programming in REXX. McGraw-Hill, TX, 1990. ISBN 0-07-015305-1.
- Ender, Tom. Object-Oriented Programming With Rexx. John Wiley & Sons, 1997. ISBN 0-471-11844-3.
- Fosdick, Howard (2025). Rexx Programmer's Reference(PDF) (2 ed.). Apex, North Carolina: Rexx Language Association. ISBN 9789403745527. OCLC 1475017186. Archived(PDF) from the original on April 3, 2025. Retrieved May 3, 2025.
- Gargiulo, Gabriel. REXX with OS/2, TSO, & CMS Features. MVS Training, 1999 (third edition 2004). ISBN 1-892559-03-X.
- Goldberg, Gabriel and Smith, Philip H. The Rexx Handbook . McGraw-Hill, TX, 1992. ISBN 0-07-023682-8.
- Goran, Richard K. REXX Reference Summary Handbook. CFS Nevada, Inc.,1997. ISBN 0-9639854-3-4.
- IBM Redbooks. Implementing Rexx Support in Sdsf. Vervante, 2007. ISBN 0-7384-8914-X.
- Kiesel, Peter C. Rexx: Advanced Techniques for Programmers. McGraw-Hill, TX, 1992. ISBN 0-07-034600-3.
- Marco, Lou ISPF/REXX Development for Experienced Programmers. CBM Books, 1995. ISBN 1-878956-50-7
- O'Hara, Robert P. and Gomberg, David Roos. Modern Programming Using Rexx. Prentice Hall, 1988. ISBN 0-13-597329-5.
- Rudd, Anthony S. 'Practical Usage of TSO REXX'. CreateSpace, 2012. ISBN 978-1475097559.
- Schindler, William. Down to Earth Rexx. Perfect Niche Software, 2000. ISBN 0-9677590-0-5.
External links
- Mike Cowlishaw's home page
- Rexx Language Association
- Rexxinfo.org
- The Rexx Language (Background)
- REXX programming language reference at IBM
- Rexx Programmer's Reference 2nd Edition
- IBM software
- Scripting languages
- Text-oriented programming languages
- Command shells
- Sistemas operativos para mainframes de IBM
- Software multiplataforma
- Lenguajes de programación creados en 1979
- Rexx