Rexx
REXX կամ Rexx (REstructured eXtended eXecutor, արտասանվում է «ռեքս»)[1], ինտերպրետացվող ծրագրավորման լեզու, որը մշկել է IBM ընկերությունը։ Գոյություն ունի տվյալ լեզվի կիրառման կոմերցիոն ձև, այնպես էլ ազատ տարածվող ձև[2]։
![]() | |
Տեսակ | ծրագրավորման լեզու, command line interface language? և ծրագրավորման ինտերպրետացվող լեզու |
---|---|
Առաջացել է | 1979 |
Ստեղծող | IBM և Mike Cowlishaw? |
Նախագծող | Mike Cowlishaw? |
Ընդլայնումներ | .cmd , .bat , .exec , .rexx , .rex և .EXEC |
Ներշնչվել է | PL/I, Ալգոլ, CMS EXEC? և EXEC 2? |
![]() |
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
Տես նաև
խմբագրելԾանոթագրություններ
խմբագրել- ↑ «Կոհա առցանց քարտարան › Հեղինակավորի որոնում › REXX, ծրագրավորման լեզու (Topical Term)». opac.flib.sci.am. Վերցված է 2017 թ․ սեպտեմբերի 10-ին.(չաշխատող հղում)
- ↑ «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
Վիքիպահեստն ունի նյութեր, որոնք վերաբերում են «Rexx» հոդվածին։ |