REXX eller Rexx (REstructured eXtended eXecutor, udtales "rex") er et fortolket programmeringssprog udviklet af IBM . Der er både kommercielle og gratis implementeringer af dette sprog.
REXX nåede sit højdepunkt i distributionen i midten af 1990'erne, sammen med OS/2 -operativsystemets popularitet . Dette skyldes det faktum, at REXX-fortolkeren kunne kaldes både fra shellen, som som et resultat kunne udføre scripts bestående af kommandolinjesætninger (svarende til bash i GNU ), og fra enhver applikation.
Sproget er blevet udbredt i AmigaOS-operativsystemet (inklusive den seneste udgave 3.2 i 2021) i ARexx-variationen. Sproget giver dig mulighed for at integrere nye funktioner i applikationer og implementere procesautomatisering og kommunikation mellem forskellige programmer. Under hensyntagen til funktionerne i AmigaOS-operativsystemet modtog sproget mange tredjepartsudvidelser gennem dynamiske biblioteker, herunder GUI-byggere, hvilket igen førte til fremkomsten af mange populære uafhængige programmer og udvidelsespakker til forskellige redaktører. Programmer kan kaldes fra kommandolinjen, fra programmer og uafhængigt af ikoner på skrivebordet.
Når REXX-fortolkeren kaldes fra cmd.exe (eller 4os2 .exe), udfører den batchfilen. Hvis den kaldes fra FleetStreet- mail-editoren, udfører den FleetStreet-batchfilen. I sig selv er REXX ikke bundet til en specifik del af systemet og kan bruges af ethvert program som sit "eget" sprog, mens hvert af de programmer, der bruger REXX kan tilføje sine egne funktioner og operatører til det, som kun vil være tilgængeligt når REXX kører i forbindelse med dette program. For eksempel tilføjer mesa/2 -regnearket en kommando til REXX, der giver dig mulighed for at læse og skrive indholdet af regnearksceller osv.
Siden da har sproget udviklet sig langt ud over OS/2, men dets traditionelle funktioner forbliver bekvem adgang til styresystemkommandoer, kraftfulde strengoperationer, forenklet fejlhåndtering og en indbygget debugger .
Oprindeligt var REXX ikke objektorienteret, selvom sådanne versioner af sproget i øjeblikket eksisterer (for eksempel Open Object REXX ). Syntaktisk minder sproget lidt om en forenklet PL/1 . Variabler i REXX er ikke indtastet og kræver ikke en erklæring.
Af funktionerne i sproget skal det bemærkes den kraftfulde og bekvemme PARSE -operator til at parse strenge (svarende til "=~ m/" i Perl , men enklere). Dens syntaks er:
parse [øvre] ''kildeskabelon''giver dig mulighed for at skrive letlæselige konstruktioner som f.eks
MyVar = "Vasya Ivanov" parse var MyVar Fornavn Efternavn sig "Navn:" Fornavn sig "Efternavn:" Efternavneller hvis navnet for eksempel er skrevet med komma, kan du angive dette i skabelonen
MyVar = "Ivanov, Vasya" parse var MyVar Efternavn "," Fornavn sig "Navn:" Fornavn sig "Efternavn:" Efternavnog du kan også bruge direkte kolonneindeksering:
MyVar = "(202) 123-1234" parse var MyVar 2 AreaCode 5 7 Undernummer sig "AreaCode:" AreaCode sig "Telefon:" Undernummervil vise følgende linjer på skærmen:
Bykode: 202 Telefon: 123-1234Et eksempel på et REXX-program er en lommeregner, der udfører seks operationer (+, -, *, /, / /,%), forstår operationer i parentes og et vilkårligt antal variable:
/* calc.cmd folkeregnemaskine (c) 1998 */ SIG 'Russisk folkeregnemaskine v0.0' XX="X="; X0 = "X=X" SIG 'Indtast udtryk eller Q for at fuldføre' GØR FOR ALLTID TRÆK v HVIS v = 'Q' SÅ GÅ AF S = VENSTRE( v, 1 ) HVIS( DATATYPE( S, 'A') ) DEREFTER GØR HVIS( POS( '=', v ) = 0 ) DEREFTER GØR FORTOLKNING XXv SIG 'X=' X ENDE ANDET FORTOLKNING v ENDE ANDET GØR TOLK X0 v SIG 'X=' X ENDE ENDE AFSLUTEksempel på programafvikling ( > angiver brugerinput):
Russisk folkeregnemaskine v0.0 Indtast udtryk eller Q for at fuldføre >300+(12,5*2+5) X = 330,0 >Y=X*2 >Y+2 X=662,0 >+33 X=695,0 >+123 X=818,0 >/10 X=81,8 >//2 X=1,8 >+1024 X= 1025,8 >%4 X=256
Programmeringssprog | |
---|---|
|