REXX tai Rexx (REstructured eXtended eXecutor, lausutaan "rex") on IBM :n kehittämä tulkittu ohjelmointikieli . Tästä kielestä on sekä kaupallisia että ilmaisia toteutuksia.
REXX saavutti levityshuippunsa 1990-luvun puolivälissä OS / 2 -käyttöjärjestelmän suosion myötä . Tämä johtuu siitä, että REXX-tulkkia voitiin kutsua sekä komentotulkista, joka sen seurauksena voisi suorittaa komentorivikäskyistä koostuvia skriptejä (samanlainen kuin bash GNU :ssa ), että mistä tahansa sovelluksesta.
Kieli on yleistynyt AmigaOS-käyttöjärjestelmässä (mukaan lukien uusin versio 3.2 vuonna 2021) ARexx-muunnelmassa. Kielen avulla voit integroida uusia ominaisuuksia sovelluksiin ja toteuttaa prosessiautomaatiota ja kommunikaatiota eri ohjelmien välillä. Ottaen huomioon AmigaOS-käyttöjärjestelmän ominaisuudet, kieli sai monia kolmannen osapuolen laajennuksia dynaamisten kirjastojen kautta, mukaan lukien GUI-rakentajat, mikä puolestaan johti monien suosittujen itsenäisten ohjelmien ja laajennuspakettien syntymiseen eri editoreille. Ohjelmia voidaan kutsua komentoriviltä, ohjelmista ja itsenäisesti työpöydän kuvakkeista.
Kun REXX-tulkki kutsutaan tiedostosta cmd.exe (tai 4os2 .exe), se suorittaa komentojonotiedoston. Jos se kutsutaan FleetStreet- sähköpostieditorista, se suorittaa FleetStreet-kotatiedoston. REXX ei itsessään ole sidottu tiettyyn järjestelmän osaan ja sitä voi käyttää mikä tahansa ohjelma "omana" kielensä, kun taas jokainen REXX:ää käyttävistä ohjelmista voi lisätä siihen omia toimintojaan ja operaattoreitaan, jotka ovat käytettävissä vain kun REXX on käynnissä tämän ohjelman yhteydessä. Esimerkiksi mesa/2 - laskentataulukko lisää REXXiin komennon, jonka avulla voit lukea ja kirjoittaa laskentataulukon solujen sisältöä jne.
Sittemmin kieli on kehittynyt paljon OS/2:ta pidemmälle, mutta sen perinteiset ominaisuudet ovat edelleen kätevä pääsy käyttöjärjestelmän komentoihin, tehokkaisiin merkkijonotoimintoihin, yksinkertaistettuun virheenkäsittelyyn ja sisäänrakennettu debuggeri .
Alun perin REXX ei ollut oliosuuntautunut, vaikka kielestä on tällä hetkellä olemassa tällaisia versioita (esimerkiksi Open Object REXX ). Syntaktisesti kieli muistuttaa hieman yksinkertaistettua PL/1 :tä . REXX:n muuttujia ei kirjoiteta, eivätkä ne vaadi ilmoitusta.
Kielen ominaisuuksista on huomattava tehokas ja kätevä PARSE- operaattori merkkijonojen jäsentämiseen (samanlainen kuin "=~ m/" Perlissä , mutta yksinkertaisempi). Sen syntaksi on:
jäsentää [ylempi] ''lähdemalli''voit kirjoittaa helposti luettavia rakenteita, kuten
MyVar = "Vasya Ivanov" parse var MyVar Etunimi Sukunimi sano "Nimi:" Etunimi sano "LastName:" Sukunimitai jos nimi on kirjoitettu esimerkiksi pilkulla, voit määrittää tämän mallissa
MyVar = "Ivanov, Vasya" parse var MyVar Sukunimi "," Etunimi sano "Nimi:" Etunimi sano "LastName:" Sukunimija voit myös käyttää suoraa sarakeindeksointia:
OmaVar = "(202) 123-1234" parse var MyVar 2 AreaCode 5 7 Subumber sano "AreaCode:" AreaCode sano "Puhelin:" SubNumbernäyttää seuraavat rivit näytöllä:
Kaupunkikoodi: 202 Puhelin: 123-1234Esimerkki REXX-ohjelmasta on laskin, joka suorittaa kuusi operaatiota (+, -, *, /, / /,%), ymmärtää suluissa olevat toiminnot ja mielivaltaisen määrän muuttujia:
/* calc.cmd folk calculator (c) 1998 */ SANO "Venäjän kansanlaskin v0.0" XX="X="; X0 = "X = X" SANO "Syötä lauseke tai Q täydentääksesi" TEE IKUISESTI VEDÄ v JOS v = 'Q' NIIN POISTA S = VASEN( v, 1 ) JOS( DATATYYPPI( S, 'A') ) SITTEN TEHDÄ JOS( POS('=', v ) = 0) SITTEN TEHDÄ TULKINTA XXv SANO 'X=' X LOPPU MUU INTERPRET v LOPPU MUU TEHDÄ INTERPRET X0 v SANO 'X=' X LOPPU LOPPU POISTUEsimerkki ohjelman suorittamisesta ( > tarkoittaa käyttäjän syötteitä):
Venäjän kansanlaskin v0.0 Kirjoita lauseke tai Q täydentääksesi >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
Ohjelmointikielet | |
---|---|
|