|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
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 nazwachi argumentach, posiada tablice dynamiczne, nie trzeba deklarować zmiennych i określać ich typów. Na podstawie REXXa powstały dwa jezyki 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. Zaimplementowany jest na wszystkich znaczących platformach firmy IBM:
Można go używać także na platformach niezwiązanych z IBM jak:
edytuj SkładniaInstrukcja warunkowa IF
IF [warunek] THEN
[instrukcja]
ELSE
[instrukcja]
Przykład wykorzystania instrukcj 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 var > 10 THEN SAY "It's true." ELSE SAY "It's not true." Operatory porównania
SELECT jest używany w przypadku kiedy ma się wykonac 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 zaimplementowac 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 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 programNależ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
wieloparadygmatowe: Ada • C++ • Common Lisp • D • Fortran • Icon • JavaScript • Nemerle • Perl • Python • Ruby • Snobol proceduralne i strukturalne: AWK • C • COBOL • Forth • Modula-2 • Oberon • Pascal • PL/SQL • Rey • REXX • Lib Sh obiektowe: C# • Eiffel • Java • Object Pascal • Objective-C • PHP • Smalltalk funkcyjne: Erlang • F# • Haskell • Lisp • ML • Ocaml • Scheme inne: ABAP • Asembler • C-- • GAUSS • Lustre • MCPL • SAS 4GL • SQL • Visual Basic • VB.NET • occam • QCL ezoteryczne: INTERCAL • Brainfuck • BeFunge • Unlambda • Malbolge • Whitespace • FALSE • HQ9+ • Shakespeare • Whirl • Ook historyczne: ALGOL • APL • BASIC • Clipper • JAS • Lisp • MUMPS • PLAN • PL/I • PL/M • SAKO • SAS (asembler) • Simula |
| All Right Reserved © 2007, Designed by Stylish Blog. |