REXX

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 28. oktober 2014; checks kræver 11 redigeringer .

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:" Efternavn

eller 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:" Efternavn

og du kan også bruge direkte kolonneindeksering:

MyVar = "(202) 123-1234" parse var MyVar 2 AreaCode 5 7 Undernummer sig "AreaCode:" AreaCode sig "Telefon:" Undernummer

vil vise følgende linjer på skærmen:

Bykode: 202 Telefon: 123-1234

Programeksempel

Et 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 AFSLUT

Eksempel 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

Se også

Links