REXX – Wiki

REXX

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji , szukaj

REXX ( ang. REstructured eXtended eXecutor) jest proceduralnym interpretowanym językiem programowania zaprojektowanym przez Mike'a Cowlishawa. Jego składnia jest zbliżona do języka angielskiego . Po raz pierwszy pojawił się na platformie VM/SP Relase 3 w 1983 roku. Dużą zaletą tego języka jest możliwość zastosowania go jako języka programowania wsadowego w różnych systemach operacyjnych oraz języka skryptowego dla różnych środowisk i aplikacji . Rexx charakteryzuje się dużym zestawem wbudowanych funkcji o naturalnych nazwach i argumentach , posiada tablice dynamiczne, nie trzeba deklarować zmiennych i określać ich typów . Na podstawie REXXa powstały dwa języki obiektowe NetRexx i ObjectRexx dla tych trzech języków (REXX, NetRexx, ObjectRexx) obowiązuje zasada " write once, run anywhere ". Przy pomocy wizualnych środowisk zdarzeniowego programowania w REXXie (np.VisPro/Rexx, GpfRexx, VX Rexx) można w bardzo prosty sposób tworzyć aplikacje z interfejsem graficznym GUI . ARexx, implementacja języka Rexx dla AmigaOS i MorphOS , jest integralnym elementem tych systemów. Bardzo duża część oprogramowania dla AmigaOS/MorphOS jest wyposażona w porty ARexxa. Ta cecha znacznie rozszerza możliwość programów i umożliwia komunikowanie się ich między sobą.

Zaimplementowany jest na wszystkich znaczących platformach firmy IBM :

Można go używać także na platformach niezwiązanych z IBM jak:

Spis treści

[ edytuj ] Składnia

Instrukcja warunkowa IF

IF [warunek] THEN
     [instrukcja]
   ELSE
     [instrukcja]

Przykład wykorzystania instrukcji warunkowej:

/* If varM jest większe od 10, 
   then say "It's true". W przeciwnym przypadku,  say "It's not true". */
varM = 5 + 2
IF varM > 10 THEN 
   SAY "It's true."
 ELSE  
   SAY "It's not true."

Operatory porównania

= równe
< mniejsze
> większe
<= mniejsze lub równe
>= większe lub równe
<> większe lub mniejsze (nierówne)
\= lub ^= nierówne
\< niemniejsze
\> niewiększe

SELECT jest używany w przypadku kiedy ma się wykonać jedna z kilku możliwych instrukcji warunkowych (pozostałe zostają pominięte).



/* Sprawdź varM dla różnych wyrażeń ale wykonaj tylko jedną instrukcję dla wyrażenia */
SAY "Enter a number"
PULL varM
SELECT
   WHEN varM = 10 THEN SAY "It's equal to 10."
   WHEN varM < 10 THEN SAY "It's less than 10."
   WHEN varM < 20 THEN SAY "It's less than 20."
END

Pętla Aby zaimplementować pętle w języku Rexx należy użyć wyrazów DO oraz END. DO wskazuje na początek pętli i jest umieszczane przed pierwsza instrukcją w pętli, natomiast END kończy pętle i jest umieszczane po ostatniej instrukcji w pętli. Standardowa pętla

 DO UNTIL [warunek]
     [instrukcje]
   END

   DO WHILE [warunek]
     [instrukcje]
   END

Inne przykłady wykorzystania pętli:

/* Powtórzy "Hello" 10 razy */
DO 10
   SAY "Hello"
END

Wykorzystanie słowa FOREVER spowoduje wykonanie się pętli nieskończenie wiele razy. Taką pętle można przerwać przy pomocy instrukcji opuszczenia LEAVE

/* Słowo "Hello" będzie powtarzane nieskończenie */
DO FOREVER
   SAY "Hello"
END

----

DO FOREVER
    [instrukcja]
    IF [warunek] THEN LEAVE 
  END

[ edytuj ] Przykładowy program

Należy pamiętać, że każdy program w REXX'ie rozpoczyna się od komentarza . Jako rozszerzenie pliku przyjmuje się ".rexx" lub ".rex".

/* REXX Calculator */
/* progam glowny */                                            
say "Please enter two numbers"                                 
parse pull a b . /* wczytanie zmiennych a i b z klawiatury */
if b <>"" then                                                 
  if \(datatype(a, number) & datatype(b, number)) then           
    say "a or b isn't a number"                              
  else                                                         
  call Sub1 a b /* wywolanie procedury Sub1 */
else                                                           
  say "b is empty"                                             
Exit                                                           
/* procedura */                                                
Sub1:                                                          
  say "At" TIME() "on" DATE() "user" USERID() "entered" a "and" b
  say a "+" b "=" a + b
  say a "-" b "=" a - b
  say a "*" b "=" a * b
  say a "/" b "=" a / b
  say "divided by" b "is" a%b "with remainder of" a//b
return

[ edytuj ] Zobacz też

[ edytuj ] Linki zewnętrzne



Walka na noże w amerykańskiej kampanii prezydenckiej
Zaostrza się kampania prezydencka w USA, pełna wzajemnych oskarżeń i ataków personalnych. Prezydent Barack Obama określa swego republikańskiego oponenta Mitta Romney'a mianem bezlitosnego kapitalisty, Romney natomiast oskarża go o powiększenie długu publicznego.



Największe organizacje lekarzy powołały sztab kryzysowy
Najważniejsze organizacje lekarskie w Polsce powołały sztab kryzysowy. Wezwał on medyków i świadczeniodawców do niepodpisywania umów z NFZ na wystawianie recept refundowanych.



Nowy wiersz Grassa, tym razem na temat Grecji
W niecałe dwa miesiące po opublikowaniu krytykującego Izrael wiersza niemiecki laureat literackiej nagrody Nobla Guenter Grass ponownie wdał się w poetycką polemikę na aktualny polityczny temat - tym razem postępowania UE wobec pogrążonej w kryzysie Grecji.



Odwrócenie trendów? PO już nie traci
Platforma Obywatelska zyskuje na poparciu, PiS traci. Różnica między tymi partiami wynosi 10 procent - takie są wyniki najnowszego sondażu telefonicznego TNS Polska dla programu Forum w Telewizji Polskiej.



Kombatanci upokorzeni na granicy? PiS interweniuje
Klub Parlamentarny PiS domaga się od premiera reakcji na potraktowanie kombatantów na granicy polsko-białoruskiej. Weterani, którzy jechali do Polski na zjazd łagierników-żołnierzy AK, zostali - według PiS - upokorzeni przez polską Straż Graniczną.



Home Page , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,