**REXX** կամ **Rexx** (REstructured eXtended eXecutor, արտասանվում է «ռեքս»), ինտերպրետացվող ծրագրավորման լեզու, որը մշկել է IBM ընկերությունը։ Գոյություն ունի տվյալ լեզվի կիրառման կոմերցիոն ձև, այնպես էլ ազատ տարածվող ձև։

REXX իր տարածման առաջին պիկն ստացել է 1990-ականների կեսերին, հայտնի օպերացիոն համակարգ OS/2-ի հետ  միասին։ Սա պայմանավորված է նրանով, որ REXX-ի ինտերպրետատորը կարող է կանչվել թիմային պրոցեսորի կողմից, որի արդյունքում կարող է կատարել սկրիպտներ, որոնք բաղկացած են հրամանային վահանակի օպերատորներից «ինչպես bash-ը GNU-ում»։

Այն դեպքում երբ REXX-ի ինտերպրեատորը  կանչվում է cmd.exe-ից «կամ 4os2.exe-ից» նա օգտագործում է թիմային ֆայլերը։ Եթե այն կանչվում է փոստային խմբագիր FleetStreet-ից, օգտագործում է FleetStreet թիմային ֆայլերը։ Ինքնին REXX-ը չի կցվում համակարգի կոկրետ մասի հետ, և կարող է օգտագործվել ցանկացած ծրագրում, որպես «իր» լեզու, ընդ որում  REXX ծրագրերից յուրաքանչյուր օգտվող կարող է  դրան ավելացնել իր գործառույթները,  որոնք հասանելի են միայն REXX-ի մշակման դեպքում, տվյալ ծրագրի համատեքստում։ Օրինակ mesa/2 էլեկտրոնային աղյուսակը REXX-ում ավելացրել է թիմ, որը թույլ է տալիս հաշվել և արձանագրել աղյուսակում բջիջների բովանդակությունը։

Այդ ժամանակից լեզուն ստացել է զարգացումներ OS/2-ի սահմաններից դուրս, բայց  ավանդաբար իր հատկություններով մնացել է թիմային օպերացիոն համակարգեր մուտք գործելու համար։ Ունի  տողերի հետ հզոր գործողության հնարավորություն, սխալների պարզեցված մշակման հնարավորություն։

Լեզվի առանձնահատկություններից է հզոր և հուսալի **PARSE** օպերատորը, տողերի վերլուծման համար (նման «=~ m/» (ինչպես Perl-ում), բայց ավելի հեշտ է)։ Նրա շարահյուսությունն է.

```
    parse [upper] ''ելակետային կաղապար''

```

թույլ է տալիս հեշտությամբ գրել ընթերցվող կառուցվածքներ

```
    MyVar = "Վոլոդյա Ստեփանյան"
    parse var MyVar FirstName LastName
    say "Անուն:" FirstName
    say "Ազգանուն:" LastName

```

կամ, օրինակ, թեթ անունը գրված է ստորակետով, այն կարելի է նշել կաղապարում

```
    MyVar = "Ստեփանյան, Վոլոդյա"
    parse var MyVar LastName "," FirstName
    say "Անուն:" FirstName
    say "Ազգանուն:" LastName

```

ինչպես նաև կարելի է օգտվել ուղիղ ինդեքսավորված սյուներից

```
    MyVar = "(202) 123—1234"
    parse var MyVar 2 AreaCode 5 7 SubNumber
    say "Քաղաքային կոդ:" AreaCode
    say "Հեռախոս:" SubNumber

```

հետևյալ տողերը կհայտնվեն էկրանի վրա

```
    Քաղաքային կոդ։ 202
    Հեռախոս։ 123—1234

```

Ծրագրի օրինակ
-------------

Ծրագրի օրինակ REXX’е-ում, հաշվիչ, որը կատարում է վեց գործառույթներ (+,-,\*,/,//,%), հասկանալով փակագծերի գործողությունը և կամայական թվով փոփոխականները.

```
/* calc.cmd ժողովրդական հաշվիչ (с) 1998 */
SAY 'Ռուսական ժողովրդական հաշվիչр v0.0'
XX = "X="; X0 = "X=X"
  SAY 'Մուտքագրեք արտահայտությունը կամ Q ավարտելու համար'
DO FOREVER
  PULL v
  IF v = 'Q' THEN LEAVE 
  S = LEFT( v, 1 )
  IF( DATATYPE( S, 'A' ) )
    THEN
      DO
        IF( POS( '=', v ) = 0 )
           THEN
             DO  
               INTERPRET XX v 
               SAY 'X=' X 
             END
           ELSE   
             INTERPRET v
      END
    ELSE
      DO  
        INTERPRET X0 v
        SAY 'X=' X
      END
END
EXIT

```

Ծրագրի կատարման օրինակ (**>** օգտագործողի մուտքագրումը նշվում է).

```
 Ռուսական ժողովրդական հաշվիչ v0.0
 Մուտքագրեք արտահայտությունը կամ Q ավարտելու համար
 >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

```

Տես նաև
-------

* Ինտերպրետատոր
* Perl
* Ծրագրավորման լեզուների ցանկ
* Այ-Բի-Էմի արտադրանքների ցանկ

Ծանոթագրություններ
------------------

1. ↑  «Կոհա առցանց քարտարան › Հեղինակավորի որոնում › REXX, ծրագրավորման լեզու (Topical Term)». *opac.flib.sci.am*. Վերցված է 2017 թ․ սեպտեմբերի 10-ին.(չաշխատող հղում)
2. ↑  «Koha online catalog › Entry». *haygirk.nla.am*. Վերցված է 2017 թ․ սեպտեմբերի 10-ին.

Արտաքին հղումներ
----------------

* Страничка языка REXX на сайте IBM
* Коммерческий интерпретатор REXX для Windows, OS/2 и DOS
* Свободно распространяемый кросплатформенный интерпретатор Regina Rexx
* Open Object Rexx (ooRexx) — проект с открытым кодом, управляемый Rexx Language Association (RexxLA)
* Обзор Open Object Rexx(ռուս.)
* История появления ARexx для AmigaOS Արխիվացված 2006-10-10 Wayback Machine
* Краткий обзор ARexx

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * դ
* ք
* խ
Հիմնական ծրագրավորման լեզուները (համեմատումը  • IDE  • պատմությունը  • ժամանակագրութունը) |
| --- |
|  |
| Օգտագործվողլեզուները | 
Ada •
APL •
Ասեմբլեր •
ActionScript •
ABAP/4 •
AutoIt •
AWK •
Basic •
C •
Կոբոլ •
C++ •
C# •
Cω •
Clarion •
Clojure •
ColdFusion •
Common Lisp •
D •
dBase •
Delphi •
Eiffel •
Erlang •
Euphoria •
F# •
Fort •
Fortran •
Gambas •
Go •
Groovy •
HAL/S •
Haskell •
Icon •
Ջավա •
ՋավաՍկրիպտ •
Limbo •
Lua •
Mudula-3 •
Object Pascal •
Objective-C •
OCaml •
Oz •
Parser •
Pascal •
Perl •
PHP •
PowerBASIC •
Python •
PL/1 •
Prolog •
R •
Ruby •
Scala •
Scheme •
Smalltalk •
SQL •
Standard ML •
PL/SQL •
Tcl •
Vala •
Visual Basic
(.NET)
 |
|  |
| Ուսումնական | 
Agda •
Clean •
Curry •
Լոգո •
ML •
REFAL •
Simula •
Օբերոն
 |
|  |
| IEC 61131-3 | 
Instruction List •
ST •
FBD •
Ladder Diagram (LD) •
SFC
 |
|  |
| Այլ | 
Modula-2 •
Miranda •
Hope •
Rexx
 |
|  |
| Էզոտերիկ | 
HQ9+/HQ9++ •
INTERCAL •
Brainfuck •
Brainfork •
Befunge •
Malbolge •
Piet •
Spoon •
Unlambda •
Whitespace •
FALSE •
LOLCODE
 |
|  |
| Վիզուալ | 
G
(LabVIEW) •
Microsoft VPL •
Sikuli •
VisSim •
Scratch
 |

 |

|  |  |
| --- | --- |
|  | Վիքիպահեստն ունի նյութեր, որոնք վերաբերում են «Rexx» հոդվածին։ |

|  |  |  |
| --- | --- | --- |
| 

|  |  |
| --- | --- |
|  ⛭   Չափորոշչային վերահսկողություն | GND: 4196484-6 · LCCN: sh85113550 · Microsoft: 2775844217 |

 |