Rexx - Panduan Cepat

Rexx (Restructured Extended Executor)dirancang untuk menjadi bahasa scripting. Sasarannya adalah membuat pembuatan skrip menjadi semudah, secepat, dapat diandalkan, dan sebisa mungkin bebas kesalahan. Banyak bahasa pemrograman dirancang untuk kompatibilitas dengan bahasa lama, dan ditulis untuk audiens atau platform tertentu. Rexx mengabaikan tujuan yang tidak relevan. Ini dirancang sejak hari pertama untuk menjadi kuat, namun mudah digunakan.

Rexx dirancang dan pertama kali diimplementasikan, dalam bahasa assembly, sebagai 'sendiri-time' proyek antara 20 th Maret 1979 dan tengah tahun 1982 oleh Mike Cowlishaw dari IBM, awalnya sebagai bahasa pemrograman scripting untuk menggantikan bahasaEXEC and EXEC 2. Ini dirancang untuk menjadimacro or scripting languageuntuk sistem apa pun. Dengan demikian, Rexx dianggap sebagai pendahulu Tcl dan Python. Rexx juga dimaksudkan oleh penciptanya sebagai versi bahasa pemrograman PL / I yang disederhanakan dan lebih mudah dipelajari.

Fitur Rexx

Rexx sebagai bahasa pemrograman memiliki fitur utama berikut -

  • Sintaks sederhana

  • Kemampuan untuk mengarahkan perintah ke berbagai lingkungan

  • Kemampuan untuk mendukung fungsi, prosedur, dan perintah yang terkait dengan lingkungan pemanggilan tertentu.

  • Tumpukan bawaan, dengan kemampuan untuk beroperasi dengan tumpukan host jika ada.

  • Set instruksi kecil yang hanya berisi dua lusin instruksi

  • Sintaks bentuk bebas

  • Token tidak peka huruf besar kecil, termasuk nama variabel

  • Dasar karakter string

  • Pengetikan data dinamis, tanpa deklarasi

  • Tidak ada kata kunci yang dipesan, kecuali dalam konteks lokal

  • Tidak termasuk fasilitas file

  • Ketepatan numerik sewenang-wenang

  • Aritmatika desimal, floating-point

  • Beragam pilihan fungsi bawaan, terutama pemroses string dan kata

  • Manajemen penyimpanan otomatis

  • Perlindungan dari benturan

  • Isi struktur data yang dapat dialamatkan

  • Array asosiatif

  • Akses langsung ke perintah dan fasilitas sistem

  • Penanganan kesalahan sederhana, serta pelacakan dan debugger bawaan

  • Beberapa batasan buatan

  • Fasilitas I / O yang disederhanakan

Situs resmi untuk Rexx adalah www.oorexx.org

Sebelum Anda dapat mulai mengerjakan Rexx, Anda perlu memastikan bahwa Anda memiliki versi Rexx yang berfungsi penuh yang berjalan di sistem Anda. Bab ini akan menjelaskan instalasi Rexx dan konfigurasi selanjutnya pada mesin Windows untuk memulai dengan Rexx.

Pastikan persyaratan Sistem berikut ini dipenuhi sebelum melanjutkan penginstalan.

Persyaratan sistem

Penyimpanan RAM 2 GB (disarankan)
Ruang Disk Tidak ada persyaratan minimum. Lebih disukai memiliki penyimpanan yang cukup untuk menyimpan program yang akan dibuat menggunakan Rexx.
Versi Sistem Operasi Rexx dapat diinstal di Windows, Ubuntu / Debian, Mac OS X.

Mendownload Rexx

Untuk mengunduh Rexx, Anda harus menggunakan URL berikut - https://www.oorexx.org/download.html

Halaman ini memiliki berbagai unduhan untuk berbagai versi Rexx seperti yang ditunjukkan pada tangkapan layar berikut.

Klik pada 'ooRexx install files' pada tabel dengan tajuk Rilis 4.2.0.

Setelah ini, Anda akan diarahkan kembali ke halaman berikut.

Klik pada ooRexx-4.2.0.windows.x86_64.exe untuk mengunduh 64-bitversi perangkat lunak. Kami akan membahas tentang penginstalan perangkat lunak di bab berikut.

Langkah-langkah berikut akan menjelaskan secara rinci bagaimana Rexx dapat diinstal pada sistem Windows.

Step 1- Luncurkan Installer yang diunduh di bagian sebelumnya. Setelah penginstal dimulai, klik tombol Jalankan.

Step 2 - Klik tombol berikutnya pada layar berikut untuk melanjutkan penginstalan.

Step 3 - Klik di I Agree tombol untuk melanjutkan.

Step 4 - Terima default components lalu klik tombol berikutnya.

Step 5 - Pilih lokasi instalasi dan klik tombol Next.

Step 6 - Terima proses default yang akan diinstal dan klik tombol Berikutnya.

Step 7 - Pilih asosiasi file default dan klik tombol Berikutnya.

Step 8 - Klik pada kotak centang kirim item Rexx ke file yang dapat dieksekusi dan kemudian klik tombol Berikutnya seperti yang ditunjukkan pada gambar layar berikut.

Step 9- Di layar berikutnya, pilih editor untuk bekerja dengan file Rexx. Pertahankan notepad sebagai opsi default. Terima juga ekstensi default untuk setiap file Rexx.

Step 10 - Terima pengaturan default pada layar berikut yang muncul dan klik tombol Next untuk melanjutkan instalasi.

Step 11 - Terakhir klik tombol Install untuk melanjutkan penginstalan.

Step 12 - Setelah penginstalan selesai, Anda perlu mengklik tombol Berikutnya untuk melanjutkan lebih jauh.

Step 13 - Klik tombol Selesai untuk menyelesaikan penginstalan.

Pada bab ini, kita akan membahas tentang cara memasang plugin popular IDE’s (Integrated Development Environment). Rexx sebagai bahasa pemrograman juga tersedia di IDE populer sepertiEclipse. Mari kita lihat bagaimana kita bisa mendapatkan plugin yang diperlukan di IDE ini, sehingga Anda memiliki lebih banyak pilihan untuk bekerja dengan Rexx.

Instalasi di Eclipse

Untuk membuat instalasi Rexx di Eclipse tanpa masalah, Anda harus mengikuti langkah-langkah berikut.

Step 1 - Buka Eclipse dan klik pada item Menu, Help → Eclipse Marketplace seperti yang ditunjukkan pada tangkapan layar berikut.

Step 2 - Di kotak dialog berikutnya, masukkan Rexx di kriteria pencarian dan klik tombol pencarian.

Setelah selesai, klik tombol Instal.

Step 3 - Klik tombol Konfirmasi untuk melanjutkan penginstalan fitur.

Step 4- Eclipse kemudian akan mengunduh file yang diperlukan untuk memulai penginstalan. Setelah selesai, Eclipse akan meminta untuk menerima perjanjian lisensi. Klik untuk menerima perjanjian lisensi dan kemudian klik tombol Selesai seperti yang ditunjukkan pada tangkapan layar berikut.

Eclipse kemudian akan mulai menginstal perangkat lunak di latar belakang.

Step 5- Anda mungkin akan mendapatkan peringatan keamanan (seperti yang ditunjukkan pada gambar layar berikut). Klik tombol OK untuk melanjutkan.

Step 6- Anda akan diminta untuk memulai ulang Eclipse setelah pembaruan dipasang. Klik Ya untuk memulai ulang Eclipse.

Untuk memahami sintaks dasar Rexx, pertama-tama mari kita lihat program Hello World yang sederhana.

Contoh

/* Main program */ 
say "Hello World"

Orang bisa melihat betapa sederhananya program hello world ini. Ini adalah baris skrip sederhana yang digunakan untuk menjalankan program Hello World.

Hal-hal berikut perlu diperhatikan tentang program di atas -

  • Itu say command digunakan untuk mengeluarkan nilai ke konsol.

  • Itu /* */ digunakan untuk komentar di Rexx.

Output dari program di atas adalah -

Hello World

Bentuk Umum Pernyataan

Di Rexx, mari kita lihat bentuk umum dari sebuah program. Lihat contoh berikut.

/* Main program */ 
say add(5,6) 
exit 
add: 
parse arg a,b 
return a + b

Output dari program di atas adalah -

11

Mari kita bahas apa yang telah kita pahami dari program di atas -

  • Tambah adalah fungsi yang didefinisikan untuk menambahkan 2 angka.

  • Dalam program utama, nilai 5 dan 6 digunakan sebagai parameter untuk fungsi tambah.

  • Kata kunci keluar digunakan untuk keluar dari program utama. Ini digunakan untuk membedakan program utama dari fungsi tambah.

  • Fungsi add dibedakan dengan simbol ':'.

  • Pernyataan parse digunakan untuk mengurai argumen yang masuk.

  • Akhirnya, pernyataan return digunakan untuk mengembalikan jumlah nilai numerik.

Subrutin dan Fungsi

Di Rexx, kode biasanya dibagi menjadi subrutin dan fungsi. Subrutin dan fungsi digunakan untuk membedakan kode menjadi unit logika yang berbeda. Perbedaan utama antara subrutin dan fungsi adalah bahwa fungsi mengembalikan nilai sedangkan subrutin tidak.

Di bawah ini adalah contoh perbedaan utama antara subrutin dan fungsi untuk implementasi penambahan -

Implementasi Fungsi

/* Main program */ 
say add(5,6) 
exit 
add: 
parse arg a,b 
return a + b

Implementasi Subrutin

/* Main program */ 
add(5,6) 
exit 
add: 
parse arg a,b 
say a + b

Output dari kedua program tersebut adalah nilai 11.

Perintah Pelaksana

Rexx dapat digunakan sebagai bahasa kontrol untuk berbagai sistem berbasis perintah. Cara Rexx menjalankan perintah dalam sistem ini adalah sebagai berikut. Ketika Rexx menemukan baris program yang bukan merupakan instruksi atau tugas, ia memperlakukan baris itu sebagai ekspresi string yang akan dievaluasi dan kemudian diteruskan ke lingkungan.

Contohnya adalah sebagai berikut -

Contoh

/* Main program */ 
parse arg command 
command "file1" 
command "file2" 
command "file3" 
exit

Masing-masing dari tiga baris serupa dalam program ini adalah ekspresi string yang menambahkan nama file (terdapat dalam konstanta string) ke nama perintah (diberikan sebagai parameter). String yang dihasilkan diteruskan ke lingkungan untuk dieksekusi sebagai perintah. Setelah perintah selesai, variabel "rc" disetel ke kode keluar dari perintah.

Output dari program di atas adalah sebagai berikut -

sh: file1: command not found
     3 *-* command "file1" 
       >>>   " file1"
       +++   "RC(127)"
sh: file2: command not found
     4 *-* command "file2" 
       >>>   " file2"
       +++   "RC(127)"
sh: file3: command not found
     5 *-* command "file3" 
       >>>   " file3"
       +++   "RC(127)"

Kata kunci di Rexx

Sintaks bebas REXX menyiratkan bahwa beberapa simbol dicadangkan untuk penggunaan prosesor bahasa dalam konteks tertentu.

Dalam instruksi tertentu, beberapa simbol dapat disediakan untuk memisahkan bagian-bagian instruksi. Simbol ini disebut sebagai kata kunci. Contoh kata kunci REXX adalahWHILE in a DO instruction, dan THEN (yang bertindak sebagai terminator klausa dalam kasus ini) mengikuti IF or WHEN clause.

Terlepas dari kasus ini, hanya simbol sederhana yang merupakan token pertama dalam klausa dan yang tidak diikuti oleh "=" atau ":" dicentang untuk melihat apakah mereka adalah kata kunci instruksi. Anda dapat menggunakan simbol dengan bebas di tempat lain dalam klausa tanpa dianggap sebagai kata kunci.

Komentar di Rexx

Komentar digunakan untuk mendokumentasikan kode Anda. Komentar baris tunggal diidentifikasi dengan menggunakan / * * / di posisi mana pun di baris tersebut.

Contohnya adalah sebagai berikut -

/* Main program */
/* Call the add function */
add(5,6)

/* Exit the main program */
exit add:

/* Parse the arguments passed to the add function */ parse arg a,b
/* Display the added numeric values */
say a + b

Komentar juga dapat ditulis di antara baris kode seperti yang ditunjukkan pada program berikut -

/* Main program */ 
/* Call the add function */ 
add(5,6) 

/* Exit the main program */ 
exit 
add: 
parse    /* Parse the arguments passed to the add function */ 
arg a,b 

/* Display the added numeric values */ 
say a + b

Output dari program di atas adalah -

11

Anda juga dapat memiliki beberapa baris dalam komentar seperti yang ditunjukkan dalam program berikut -

/* Main program 
The below program is used to add numbers 
Call the add function */ 
add(5,6) 
exit 
add: 
parse arg a,b 
say a + b

Output dari program di atas adalah -

11

Dalam bahasa pemrograman apa pun, Anda perlu menggunakan berbagai variabel untuk menyimpan berbagai jenis informasi. Variabel hanyalah lokasi memori yang dicadangkan untuk menyimpan nilai. Ini berarti bahwa ketika Anda membuat variabel, Anda menyediakan beberapa ruang di memori untuk menyimpan nilai yang terkait dengan variabel itu.

Anda mungkin ingin menyimpan informasi dari berbagai tipe data seperti String, Karakter, Karakter Lebar, Integer, Floating Point, Boolean, dll. Berdasarkan tipe data variabel, sistem operasi mengalokasikan memori dan memutuskan apa yang dapat disimpan di Penyimpanan.

Jenis Data Bawaan

Rexx menawarkan berbagai tipe data bawaan. Berikut adalah daftar tipe data yang didefinisikan di Rexx.

  • Integer- String angka yang tidak berisi titik desimal atau pengenal eksponen. Karakter pertama bisaa plus (+) or minus (-) sign. Angka yang diwakili harus antara -2147483648 dan 2147483647, inklusif.

  • Big Integer- Serangkaian angka yang tidak berisi titik desimal atau pengenal eksponen. Karakter pertama bisa berupa tanda plus (+) atau minus (-). Angka yang diwakili harus antara -9223372036854775808 dan 2147483648, inklusif, atau antara 2147483648 dan 9223372036854775807.

  • Decimal - Ini akan dari salah satu format berikut -

    • String angka yang berisi titik desimal tetapi tidak memiliki pengenal eksponen. Itup mewakili presisi dan smewakili skala angka desimal yang diwakili string. Karakter pertama bisa berupa tanda plus (+) atau minus (-).

    • Serangkaian angka itu does not contain a decimal pointatau pengenal eksponen. Karakter pertama bisa berupa tanda plus (+) atau minus (-). Angka yang direpresentasikan kurang dari -9223372036854775808 atau lebih besar dari 9223372036854775807.

  • Float- Sebuah string yang merepresentasikan angka dalam notasi ilmiah. String terdiri dari serangkaian numerik diikuti dengan pengenal eksponen (E atau e diikuti dengan tanda plus (+) atau minus (-) opsional dan serangkaian numerik). String dapat dimulai dengan tanda plus (+) atau minus (-).

  • String - Serangkaian karakter normal.

Berikut adalah beberapa contoh bagaimana setiap tipe data dapat digunakan. Sekali lagi setiap tipe data akan dibahas secara rinci pada bab-bab selanjutnya. Ini hanya untuk mempercepat Anda dengan penjelasan singkat tentang tipe data yang disebutkan di atas.

Bilangan bulat

Contoh bagaimana tipe data angka dapat digunakan ditunjukkan pada program berikut. Program ini menunjukkan penambahan 2 bilangan bulat.

Example

/* Main program 
The below program is used to add numbers 
Call the add function */ 
add(5,6)  

exit 
add:  

parse arg a,b 
say a + b

Output dari program di atas adalah -

11

Integer Besar

Program berikut menunjukkan kemampuan Rexx untuk menangani bilangan bulat besar. Program ini menunjukkan bagaimana menambahkan 2 bilangan bulat besar.

Example

/* Main program 
The below program is used to add numbers 
Call the add function */ 
add(500000000000,6000000000000000000000)  

exit 
add:  

parse arg a,b 
say a + b

Output dari program di atas adalah -

6.00000000E+21

Desimal

Program berikut menunjukkan kemampuan Rexx untuk menangani bilangan desimal. Program ini menunjukkan cara menambahkan 2 angka desimal.

Example

/* Main program 
The below program is used to add numbers 
Call the add function */ 
add(5.5,6.6)  

exit 
add:  

parse arg a,b 
say a + b

Output dari program di atas adalah -

12.1

Mengapung

Contoh berikut menunjukkan kasus bagaimana angka bisa berfungsi sebagai pelampung.

Example

/* Main program 
The below program is used to add numbers 
Call the add function */ 
add(12E2,14E4)  

exit 
add:  

parse arg a,b 
say a + b

Output dari program di atas adalah -

141200

Tali

Contoh bagaimana tipe data Tuple dapat digunakan ditunjukkan dalam program berikut.

Di sini kami mendefinisikan a Tuple Pyang memiliki 3 istilah. Itutuple_size adalah fungsi bawaan yang didefinisikan dalam Rexx yang dapat digunakan untuk menentukan ukuran tupel.

Example

/* Main program */ 
display("hello")  

exit 
display:  

parse arg a 
say a

Output dari program di atas adalah -

hello

Di Rexx, semua variabel terikat dengan pernyataan '='. Nama variabel terkadang disebut sebagai simbol. Mereka mungkin terdiri dari Huruf, Digit, dan Karakter seperti '. ! ? _'. Nama variabel yang Anda buat tidak boleh dimulai dengan angka atau titik. Nama variabel sederhana tidak menyertakan titik. Nama variabel yang menyertakan periode disebut variabel majemuk dan mewakili larik atau tabel.

Berikut ini adalah tipe dasar variabel di Rexx yang juga telah dijelaskan pada bab sebelumnya -

  • Integers- Ini digunakan untuk mewakili integer atau float. Contohnya adalah 10.

  • Big integers - Ini mewakili nilai integer yang besar.

  • Decimal - Nilai desimal adalah rangkaian angka yang berisi titik desimal tetapi tidak memiliki pengenal eksponen.

  • Float - Nilai float adalah string yang merepresentasikan angka dalam notasi ilmiah.

  • String - Serangkaian karakter mendefinisikan string di Rexx.

Berbagai Jenis Fungsi Variabel

Pada bagian ini, kita akan membahas tentang berbagai fungsi yang dapat dilakukan variabel.

Deklarasi Variabel

Sintaks umum untuk mendefinisikan variabel ditampilkan sebagai berikut -

var-name = var-value

dimana

  • var-name - Ini adalah nama variabelnya.

  • var-value - Ini adalah nilai yang terikat ke variabel.

Program berikut adalah contoh deklarasi variabel -

Example

/* Main program */ 
X = 40 
Y = 50 
Result = X + Y 
say Result

Dalam contoh di atas, kami memiliki 2 variabel, satu adalah X yang terikat dengan nilai 40 dan selanjutnya adalah Y yang terikat dengan nilai 50. Variabel lain yang disebut Hasil terikat dengan penambahanX and Y.

Output dari program di atas adalah sebagai berikut -

90

Variabel Penamaan

Nama variabel terkadang disebut sebagai simbol. Mereka mungkin terdiri dari Huruf, Digit, dan Karakter seperti '. ! ? _ '. Nama variabel yang Anda buat tidak boleh dimulai dengan angka atau titik.

Jika variabel belum diberi nilai, itu disebut sebagai tidak diinisialisasi. Nilai variabel yang tidak diinisialisasi adalah nama variabel itu sendiri dalam huruf besar.

Contoh variabel yang tidak ditetapkan adalah sebagai berikut -

Example

/* Main program */ 
unassignedvalue 
say unassignedvalue

Jika Anda menjalankan program di atas, Anda akan mendapatkan output berikut -

UNASSIGNEDVALUE
sh: UNASSIGNEDVALUE: command not found
     2 *-* unassignedvalue 
       >>>   "UNASSIGNEDVALUE"
       +++   "RC(127)"

Variabel dapat diberi nilai lebih dari sekali. Program di bawah ini menunjukkan bagaimana nilai X dapat diberi nilai beberapa kali.

Example

/* Main program */ 
X = 40 
X = 50 
say X

Output dari program di atas adalah sebagai berikut -

50

Mencetak Variabel

Nilai variabel dicetak menggunakan sayperintah. Berikut adalah contoh pencetakan berbagai variabel.

Example

/* Main program */ 
X = 40 

/* Display an Integer */ 
say X 
Y = 50.5 

/* Display a Float */ 
say Y 
Z = "hello" 

/* Display a string */ 
say Z

Output dari program di atas adalah sebagai berikut -

40 
50.5 
hello

Operator adalah simbol yang memberi tahu kompiler untuk melakukan manipulasi matematika atau logika tertentu.

Rexx memiliki berbagai jenis operator yang juga dijelaskan secara detail sebagai berikut -

  • Operator aritmatika
  • Operator relasional
  • Operator logika
  • Operator bitwise

Operator Aritmatika

Bahasa Rexx mendukung Operator Aritmatika normal seperti bahasa lainnya. Berikut adalah Operator Aritmatika yang tersedia di Rexx.

Tunjukkan Contoh

Operator Deskripsi Contoh
+ Penambahan dua operan 1 + 2 akan menghasilkan 3
- Mengurangi operan kedua dari yang pertama 1 - 2 akan menghasilkan -1
Perkalian kedua operan 2 ∗ 2 akan menghasilkan 4
/ Pembagian pembilang dengan penyebut 2/2 akan menghasilkan 1
// Sisa pembagian bilangan pertama dengan bilangan kedua 3 // 2 akan menghasilkan 1
% Komponen div akan melakukan pembagian dan mengembalikan komponen integer. 3% 2 akan memberi 1

Operator Relasional

Operator Relasional memungkinkan perbandingan objek. Berikut adalah operator relasional yang tersedia di Rexx. Di Rexx nilai benar dilambangkan dengan 1 dan nilai salah dilambangkan dengan 0.

Tunjukkan Contoh

Operator Deskripsi Contoh
== Menguji persamaan antara dua objek 2 = 2 akan menghasilkan 1
< Memeriksa untuk melihat apakah objek kiri kurang dari operan kanan. 2 <3 akan menghasilkan 1
= < Memeriksa untuk melihat apakah objek kiri kurang dari atau sama dengan operan kanan. 2 = <3 akan menghasilkan 1
> Memeriksa untuk melihat apakah objek kiri lebih besar dari operan kanan. 3> 2 akan menghasilkan 1
> = Memeriksa untuk melihat apakah objek kiri lebih besar dari atau sama dengan operan kanan. 3> 2 akan menghasilkan 1

Operator Logis

Operator Logis digunakan untuk mengevaluasi ekspresi Boolean. Berikut adalah operator logika yang tersedia di Rexx.

Tunjukkan Contoh

Operator Deskripsi Contoh
& Ini adalah operator logika “dan” 1 atau 1 akan memberi 1
| Ini adalah operator logika “atau” 1 atau 0 akan menghasilkan 1
\ Ini adalah operator logika “bukan” \ 0 akan memberi 1
&& Ini adalah operator “atau” eksklusif yang logis 1 && 0 akan menghasilkan 1

Operator Bitwise

Groovy menyediakan empat operator bitwise. Di bawah ini adalah operator bitwise yang tersedia di Groovy.

Tunjukkan Contoh

Sr.No. Operator & Deskripsi
1

bitand

Ini adalah operator bitwise “dan”

2

bitor

Ini adalah operator bitwise "atau"

3

bitxor

Ini adalah bitwise "xor" atau Exclusive or operator

Prioritas Operator

Tabel berikut menunjukkan Operator Precedence untuk operator Rexx dalam urutan prioritas menurun dari mereka.

Operator Hak lebih tinggi
Operator prefiks + - \
Penambahan dan pengurangan + -
Operator perbandingan = ==> <> = <=
DAN logis &
Logis ATAU |
EKSKLUSIF ATAU &&

Array dalam bahasa pemrograman apa pun memungkinkan Anda mengelompokkan daftar nilai dengan tipe yang sama. Penggunaan array memungkinkan Anda membuat daftar jenis nilai yang serupasortable, searchable dan bisa easily manipulated. Rexx juga memungkinkan seseorang untuk mendefinisikan array. Array ini bisa satu dimensi atau multidimensi.

Larik Rexx mungkin jarang. Artinya, tidak setiap posisi array harus memiliki nilai atau bahkan diinisialisasi. Mungkin terdapat posisi array kosong, atau slot, di antara yang memang berisi elemen data. Atau array bisa padat, di mana slot array yang berurutan semuanya berisi elemen data.

Dalam banyak bahasa pemrograman, Anda harus memperhatikan apa subskrip dari entri pertama dalam sebuah tabel. Apakah subskrip numerik pertama 0 atau 1? Di Rexx, subskrip pertama adalah apa pun yang Anda gunakan! Jadi, masukkan elemen array pertama ke posisi 0 atau 1 sesuai keinginan Anda.

array_name.0 = ‘first element’

atau

array_name.1 = ‘first element’

Mari kita lihat operasi berbeda yang tersedia untuk array.

Membuat Array

Array dibuat dengan konvensi penamaan yang sama yang digunakan untuk variabel di Rexx.

Sintaks umum untuk membuat array adalah sebagai berikut -

Arrayname.index = value

dimana

  • Arrayname - Ini adalah nama yang diberikan ke array.

  • Index - Ini adalah posisi indeks dalam larik untuk merujuk ke elemen tertentu.

  • Value - Ini adalah nilai yang diberikan ke elemen indeks dalam larik.

Contoh deklarasi array adalah sebagai berikut -

Example

/* Main program */ 
list.1 = 0 
list.2 = 0 
list.3 = 0

Poin-poin berikut perlu diperhatikan tentang program di atas -

  • Nama array diberikan sebagai list
  • Ada 3 elemen dari array yang diinisialisasi dengan nilai 0.

Menetapkan Nilai ke Elemen Array

Nilai dapat ditetapkan kembali ke elemen array dengan cara yang sama seperti elemen array diinisialisasi.

Program berikut adalah contoh nilai yang dapat diberikan ke berbagai nilai indeks dari larik yang ada.

/* Main program */ 
list.1 = 0 
list.2 = 0 
list.3 = 0 

/* Assigning new values to the array*/ 
list.1 = 10 
list.3 = 30

Menampilkan Nilai Array

Nilai dari sebuah array dapat ditampilkan dengan mengacu pada posisi indeks dari elemen array. Contoh berikut menunjukkan untuk mengakses berbagai elemen array.

Example

/* Main program */ 
list.1 = 0 
list.2 = 0 
list.3 = 0 

/* Assigning new values to the array*/ 
list.1 = 10 
list.3 = 30 
say list.1 
say list.2 
say list.3

Output dari program di atas adalah sebagai berikut -

10
0
30

Menyalin Array

Semua elemen array dapat disalin ke array lain. Sintaks umumnya adalah sebagai berikut -

Newarray. = sourcearray.

dimana

  • Newarray - Ini adalah larik baru tempat elemen perlu disalin.

  • Sourcearray - Ini adalah larik sumber tempat elemen perlu disalin.

Contoh tentang bagaimana operasi penyalinan untuk array dapat dilakukan ditunjukkan dalam program berikut -

Example

/* Main program */ 
list.1 = 0 
list.2 = 0 
list.3 = 0 

/* Assigning new values to the array*/ 
list.1 = 10 
list.3 = 30 
listnew. = list. 

say listnew.1 
say listnew.2 
say listnew.3

Output dari program di atas adalah -

10
0
30

Iterasi melalui elemen array

Elemen array juga dapat diulang dengan menggunakan pernyataan iteratif yang tersedia di Rexx. Contoh bagaimana ini dapat dilakukan adalah sebagai berikut -

Example

/* Main program */ 
list.1 = 10 
list.2 = 20 
list.3 = 30 

number_of_elements = 3 
do j = 1 to number_of_elements 
say list.j 
end

Petunjuk berikut perlu diperhatikan tentang program di atas -

  • Itu do loop digunakan untuk melakukan iterasi melalui elemen array.

  • Variabel number_of_elements digunakan untuk menyimpan jumlah elemen dalam array.

  • Itu variable j digunakan untuk melakukan iterasi melalui setiap elemen array.

Output dari program di atas adalah -

10
20
30

Array Dua Dimensi

Disebutkan juga bahwa kita dapat membuat array multi-dimensi di Rexx. Mari kita lihat contoh bagaimana kita dapat mengimplementasikan array 2 dimensi.

Example

/* Main program */ 
list.1 = 10 
list.1.1 = 11 
list.1.2 = 12 

say list.1 
say list.1.1 
say list.1.2

Output dari program di atas akan ditampilkan sebagai berikut -

10
11
12

Hal berikut perlu diperhatikan tentang program di atas -

  • Untuk membuat array multidimensi, kita dapat menggunakan lapisan pengindeksan lain. Jadi dalam contoh kami, kami menggunakanlist.1.1 untuk membuat larik dalam lain untuk nilai indeks 1 larik daftar.

Sejauh ini kita telah melihat pernyataan yang dieksekusi satu demi satu secara berurutan. Selain itu, pernyataan disediakan di Rexx untuk mengubah aliran kontrol dalam logika program. Mereka kemudian diklasifikasikan menjadi aliran pernyataan kontrol yang akan kita pelajari secara rinci.

Pernyataan loop memungkinkan kita untuk mengeksekusi pernyataan atau sekelompok pernyataan beberapa kali. Ilustrasi berikut adalah bentuk umum dari pernyataan loop di sebagian besar bahasa pemrograman.

Mari kita bahas berbagai loop yang didukung oleh Rexx.

Sr.No. Jenis & Deskripsi Loop
1 lakukan loop

Itu do loopdigunakan untuk mengeksekusi sejumlah pernyataan untuk beberapa kali. Berapa kali pernyataan perlu dieksekusi ditentukan oleh nilai yang diteruskan ke do loop.

2 do-while loop

Pernyataan do-while digunakan untuk mensimulasikan loop sementara sederhana yang ada dalam bahasa pemrograman lain.

3 lakukan sampai loop

Loop do-to adalah variasi kecil dari loop do while. Loop ini bervariasi dalam fakta bahwa keluar ketika kondisi yang dievaluasi salah.

Pengulangan Terkendali

Loop do dapat dilakukan untuk melakukan pengulangan pernyataan yang terkontrol.

Sintaksis

Sintaks umum dari pernyataan semacam ini adalah sebagai berikut.

do index = start [to limit] [by increment] [for count] 
statement #1 
statement #2 
end

Perbedaan dalam pernyataan ini adalah bahwa ada indeks yang digunakan untuk mengontrol berapa kali loop dijalankan. Kedua, ada parameter yang menyatakan nilai awal indeks, di mana harus berakhir dan berapa nilai kenaikannya.

Diagram alir

Mari kita lihat diagram alir dari loop ini -

Dari diagram di atas Anda dapat melihat dengan jelas bahwa loop dijalankan berdasarkan nilai indeks dan bagaimana nilai indeks bertambah.

Program berikut adalah contoh dari pernyataan pengulangan terkontrol.

Contoh

/* Main program */ 
do i = 0 to 5 by 2 
   say "hello" 
end

Dalam program di atas, nilai file count idiatur ke 0 terlebih dahulu. Kemudian bertambah dalam hitungan 2 sampai nilainya tidak lebih dari 5.

Output dari kode di atas akan menjadi -

hello 
hello 
hello

Struktur pengambilan keputusan mengharuskan pemrogram menentukan satu atau lebih kondisi untuk dievaluasi atau diuji oleh program.

Diagram berikut menunjukkan bentuk umum dari struktur pengambilan keputusan tipikal yang ditemukan di sebagian besar bahasa pemrograman.

Ada pernyataan atau pernyataan yang harus dieksekusi jika kondisinya ditentukan true, dan secara opsional, pernyataan lain yang akan dijalankan jika kondisi ditentukan untuk dijalankan false.

Mari kita lihat berbagai pernyataan pengambilan keputusan yang tersedia di Rexx.

Sr.No. Pernyataan & Deskripsi
1 Jika pernyataan

Pernyataan pengambilan keputusan pertama adalah ifpernyataan. Sebuahif pernyataan terdiri dari ekspresi Boolean diikuti oleh satu atau lebih pernyataan.

2 Pernyataan If-else

Pernyataan pengambilan keputusan berikutnya adalah pernyataan if-else. Sebuahif pernyataan bisa diikuti oleh pernyataan lain opsional, yang dijalankan ketika ekspresi Boolean salah.

Pernyataan Jika Bersarang

Terkadang ada kebutuhan yang harus dimiliki multiple if statementstertanam di dalam satu sama lain, seperti mungkin dalam bahasa pemrograman lainnya. Di Rexx juga hal ini dimungkinkan.

Sintaksis

if (condition1) then 
   do 
      #statement1 
   end 
else 
   if (condition2) then 
      do 
      #statement2 
   end

Diagram alir

Diagram alir bersarang if pernyataannya adalah sebagai berikut -

Mari kita ambil contoh bersarang if pernyataan -

Contoh

/* Main program */ 
i = 50 
if (i < 10) then 
   do 
      say "i is less than 10" 
   end 
else 
if (i < 7) then 
   do 
      say "i is less than 7" 
   end 
else 
   do 
      say "i is greater than 10" 
   end

Output dari program di atas adalah -

i is greater than 10

Pilih Pernyataan

Rexx menawarkan pernyataan pilih yang dapat digunakan untuk mengeksekusi ekspresi berdasarkan output dari pernyataan pilih.

Sintaksis

Bentuk umum dari pernyataan ini adalah -

select 
when (condition#1) then 
statement#1 

when (condition#2) then 
statement#2 
otherwise 

defaultstatement 
end

Cara kerja umum dari pernyataan ini adalah sebagai berikut -

  • Pernyataan pilih memiliki rentang pernyataan when untuk mengevaluasi kondisi yang berbeda.

  • Setiap when clause memiliki kondisi berbeda yang perlu dievaluasi dan pernyataan selanjutnya dijalankan.

  • Pernyataan sebaliknya digunakan untuk menjalankan pernyataan default apa pun jika sebelumnya saat kondisi tidak evaluate to true.

Diagram alir

Diagram alir dari select pernyataannya adalah sebagai berikut

Program berikut adalah contoh pernyataan kasus di Rexx.

Contoh

/* Main program */ 
i = 50 
select 
when(i <= 5) then 
say "i is less than 5" 

when(i <= 10) then 
say "i is less than 10" 

otherwise 
say "i is greater than 10" 
end

Output dari program di atas adalah -

i is greater than 10

Rexx memiliki tipe data berikut dalam hal angka.

  • Integer- String angka yang tidak berisi titik desimal atau pengenal eksponen. Karakter pertama bisa berupa tanda plus (+) atau minus (-). Angka yang diwakili harus antara -2147483648 dan 2147483647, inklusif.

  • Big Integer- Serangkaian angka yang tidak berisi titik desimal atau pengenal eksponen. Karakter pertama bisa berupa tanda plus (+) atau minus (-). Angka yang diwakili harus antara -9223372036854775808 dan 2147483648, inklusif, atau antara 2147483648 dan 9223372036854775807.

  • Decimal - Salah satu format berikut -

    • String angka yang berisi titik desimal tapi tidak ada pengenal eksponen, di mana p mewakili presisi dan smewakili skala angka desimal yang diwakili string. Karakter pertama bisa berupa tanda plus (+) atau minus (-).

    • String angka yang tidak berisi titik desimal atau pengenal eksponen. Karakter pertama bisa berupa tanda plus (+) atau minus (-). Angka yang direpresentasikan kurang dari -9223372036854775808 atau lebih besar dari 9223372036854775807.

  • Float- Sebuah string yang merepresentasikan angka dalam notasi ilmiah. String terdiri dari serangkaian numerik diikuti dengan pengenal eksponen (E atau e diikuti dengan tanda plus (+) atau minus (-) opsional dan serangkaian numerik). String dapat dimulai dengan tanda plus (+) atau minus (-).

Sekarang mari kita lihat perbedaannya methods available for numbers.

Sr.No. Metode yang tersedia untuk Bilangan
1 ABS

Metode ini mengembalikan nilai absolut dari angka masukan.

2 MAKS

Metode ini mengembalikan nilai maksimum dari daftar angka.

3 MIN

Metode ini mengembalikan nilai minimum dari daftar angka.

4 ACAK

Metode ini mengembalikan nomor yang dibuat secara acak.

5 TANDA

Mengembalikan 1 jika bilangan lebih besar dari 0, atau 0 jika angkanya 0, atau -1 jika angkanya kurang dari 0.

6 TRUNC

Metode ini memotong angka.

String di Rexx dilambangkan dengan urutan karakter. Program berikut adalah contoh string -

/* Main program */ 
a = "This is a string" 
say a

Output dari program di atas adalah sebagai berikut -

This is a string

Mari kita bahas beberapa metode yang tersedia di Rexx untuk string.

Sr.No. Metode yang tersedia di Rexx for Strings
1 kiri

Metode ini mengembalikan sejumlah karakter dari kiri string.

2 Baik

Metode ini mengembalikan sejumlah karakter dari kanan string.

3 panjangnya

Metode ini mengembalikan jumlah karakter dalam string.

4 balik

Metode ini mengembalikan karakter dalam format terbalik.

5 membandingkan

Metode ini membandingkan 2 string. Mengembalikan "0" jika "string1" dan "string2" identik. Jika tidak, ini mengembalikan posisi karakter pertama yang tidak cocok.

6 salinan

Metode ini menyalin file string n berkali-kali.

7 substr

Metode ini mendapatkan substring dari string tertentu.

8 pos

Metode ini mengembalikan posisi satu string di dalam string lainnya.

9 delstr

Metode ini menghapus substring dari dalam string.

Kode di Rexx biasanya dibagi menjadi Fungsi dan Subrutin. Menggunakan fungsi membantu memisahkan kode menjadi lebih banyak unit logis. Mari kita lihat fungsi-fungsi ini secara detail.

Mendefinisikan Fungsi

Sintaks deklarasi fungsi adalah sebagai berikut -

FunctionName: 
PARSE ARG arguement1, arguement2… arguementN 
Return value

Dimana,

  • FunctionName - Ini adalah nama yang diberikan untuk fungsi tersebut.

  • PARSE ARG - Ini adalah kata kunci di Rexx yang digunakan untuk menyebutkan bahwa parameter sedang diteruskan ke fungsi.

  • arguement1, arguement2… arguementN - Ini adalah argumen yang diteruskan ke fungsi.

  • Return value - Ini adalah nilai yang dikembalikan oleh fungsi.

Program berikut adalah contoh sederhana tentang bagaimana fungsi digunakan di Rexx.

/* Main program */ 
say add(5,6) 
exit 
add: 
PARSE ARG a,b 
return a + b

Hal-hal berikut harus diperhatikan tentang program di atas -

  • Kami mendefinisikan fungsi yang disebut add yang menerima 2 parameter a dan b.

  • Fungsi tersebut menggunakan pernyataan return untuk mengembalikan jumlah dari a dan b.

  • Pernyataan keluar harus digunakan untuk menandai akhir dari program utama.

Output dari program di atas adalah sebagai berikut -

11

Bekerja dengan Argumen

Di Rexx, ada fungsi khusus yang dapat dibuat untuk bekerja dengan argumen. Mari kita lihat beberapa argumen seperti itu.

arg

Metode ini digunakan untuk mengembalikan jumlah argumen yang ditentukan untuk fungsi tersebut.

Syntax -

arg()

Parameters - Tidak ada

Return Value - Metode ini mengembalikan jumlah argumen yang ditentukan untuk fungsi tersebut.

Example -

/* Main program */ 
say add(5,6) 
exit 
add: 
PARSE ARG a,b 

say arg() 
return a + b

Output - Saat kita menjalankan program di atas kita akan mendapatkan hasil sebagai berikut.

2 
11

arg (indeks)

Metode ini digunakan untuk mengembalikan nilai argumen pada posisi tertentu.

Syntax -

arg(index)

Parameter -

  • Index - Posisi indeks dari argumen yang akan dikembalikan.

Return Value - Metode ini mengembalikan nilai argumen pada posisi tertentu.

Example -

/* Main program */ 
say add(5,6) 
exit 
add: 
PARSE ARG a,b 

say arg(1) 
return a + b

Output - Saat kita menjalankan program di atas kita akan mendapatkan hasil sebagai berikut.

5 
11

Fungsi Rekursif

Fungsi atau rutinitas rekursif adalah yang memanggil dirinya sendiri. Setiap fungsi rekursif dapat dikodekan dengan cara non-rekursif tradisional (atau secara berulang), tetapi terkadang rekursi menawarkan solusi masalah yang lebih baik. Tidak semua bahasa pemrograman mendukung rekursi; Rexx melakukannya.

Mari kita lihat contoh program faktorial terkenal yang menggunakan fungsi rekursif di Rexx.

/* Main program */ 
do n = 1 to 5 
say 'The factorial of' n 'is:' factorial( n ) 
end 
return  

/* Function to get factorial */ 
factorial : procedure 
n = arg(1) 
if n = 1 then 
return 1 
return n * factorial( n - 1 )

Output dari program di atas adalah sebagai berikut -

The factorial of 1 is: 1
The factorial of 2 is: 2 
The factorial of 3 is: 6 
The factorial of 3 is: 24 
The factorial of 3 is: 120

Tumpukan terkadang disebut antrian data eksternal, tetapi kami mengikuti penggunaan umum dan menyebutnya sebagai tumpukan. Ini adalah blok memori yang secara logis berada di luar Rexx. Instruksi seperti data tempat dorong dan antrian ke dalam tumpukan, dan instruksi seperti tarik dan parse tarik mengekstrak data darinya. Fungsi built-in antrian melaporkan berapa banyak item dalam tumpukan.

Mari kita lihat contoh tumpukan.

/* STACK: */
/* */ 
/* This program shows how to use the Rexx Stack as either a */ 

/* stack or a queue. */ 
do j = 1 to 3 
push ‘Stack: line #’ || j 

/* push 3 lines onto the stack */ 
end 
do j = 1 to queued() 

/* retrieve and display LIFO */ 
pull line 
say line 
end 
do j = 1 to 3 queue ‘Queue: line #’ || j 

/* queue 3 lines onto the stack */ 
end 
do queued() 

/* retrieve and display FIFO */ 
pull line 
say line 
end 
exit 0

Perulangan do pertama dalam program menempatkan tiga baris data ke tumpukan. Ini menggunakan instruksi push untuk melakukan ini. Kami memberi nomor pada garis sehingga ketika mereka diambil dalam urutan LIFO, urutannya terlihat.

Item yang ditempatkan ke dalam tumpukan dengan instruksi dorong diambil dalam urutan LIFO -

do j = 1 to 3 
push ‘Stack: line #’ || j     /* push 3 lines onto the stack */ 
end

Blok kode berikutnya menunjukkan penggunaan fungsi built-in antrian untuk menemukan jumlah baris pada stack, serta loop untuk mengambil semua baris dari stack -

do j = 1 to queued()    /* retrieve and display LIFO */ 
pull line 
say line 
end

Karena tiga item ditempatkan di tumpukan melalui push, mereka diambil dalam urutan LIFO.

Output dari program di atas adalah sebagai berikut.

STACK: LINE #3 
STACK: LINE #2 
STACK: LINE #1

Rexx menyediakan sejumlah metode saat bekerja dengan I / O. Rexx menyediakan class yang lebih mudah untuk menyediakan fungsi berikut untuk file.

  • Membaca file
  • Menulis ke file
  • Melihat apakah suatu file adalah file atau direktori

Fungsi yang tersedia di Rexx untuk File I / O didasarkan pada input baris dan input karakter dan kita akan melihat fungsi yang tersedia untuk keduanya secara rinci.

Mari jelajahi beberapa operasi file yang ditawarkan Rexx. Untuk keperluan contoh ini, kami akan menganggap bahwa ada file bernamaNewFile.txt yang berisi baris teks berikut -

Example1

Example2

Example3

File ini akan digunakan untuk operasi baca dan tulis dalam contoh berikut. Di sini kami akan membahas tentang cara membaca konten pada file dengan berbagai cara.

Membaca Isi File Baris pada Suatu Waktu

Operasi umum pada file dilakukan dengan menggunakan metode yang tersedia di perpustakaan Rexx itu sendiri. Pembacaan file adalah yang paling sederhana dari semua operasi di Rexx.

Mari kita lihat fungsi yang digunakan untuk melakukannya.

antri

Metode ini mengembalikan baris dari file teks. File teks adalah nama file yang diberikan sebagai parameter input untuk fungsi tersebut.

Syntax -

linein(filename)

Parameter -

  • filename - Ini adalah nama file dari mana baris perlu dibaca.

Return Value - Metode ini mengembalikan satu baris file dalam satu waktu.

Example -

/* Main program */ 
line_str = linein(Example.txt) 
say line_str

Kode di atas cukup sederhana karena file Example.txtnama file disediakan untuk fungsi linein. Fungsi ini kemudian membaca sebaris teks dan memberikan hasilnya ke variabelline_str.

Output - Saat kita menjalankan program di atas kita akan mendapatkan hasil sebagai berikut.

Example1

Membaca Isi File Sekaligus

Di Rexx, membaca semua konten file dapat dicapai dengan bantuan pernyataan while. Pernyataan while akan membaca setiap baris, satu per satu hingga akhir file tercapai.

Contoh bagaimana hal ini dapat dicapai ditunjukkan di bawah ini.

/* Main program */ 
do while lines(Example.txt) > 0  
line_str = linein(Example.txt) 
say line_str 
end

Dalam program di atas, hal-hal berikut perlu diperhatikan -

  • Fungsi garis membaca Example.txt mengajukan.

  • Fungsi while digunakan untuk memeriksa apakah ada baris lain di file Example.txt.

  • Untuk setiap baris yang dibaca dari file, file line_strvariabel memegang nilai baris saat ini. Ini kemudian dikirim ke konsol sebagai output.

Output - Saat kita menjalankan program di atas kita akan mendapatkan hasil sebagai berikut.

Example1 
Example2 
Example3

Menulis Isi ke File

Sama seperti membaca file, Rexx juga memiliki kemampuan untuk menulis ke file. Mari kita lihat fungsi yang digunakan untuk melakukannya.

lineout

Metode ini menulis baris ke file. File tempat baris harus ditulis disediakan sebagai parameter untuk pernyataan lineout.

Syntax -

lineout(filename)

Parameter -

  • filename - Ini adalah nama file dari mana baris perlu ditulis.

Return Value- Metode ini mengembalikan status fungsi lineout. Nilai yang dikembalikan adalah 0 jika baris berhasil ditulis jika tidak, nilai 1 akan dikembalikan.

Example -

/* Main program */ 
out = lineout(Example.txt,"Example4")

Output - Setiap kali kode di atas dijalankan, baris "Example4" akan ditulis ke file Example.txt.

Pada bab ini, kita akan membahas tentang beberapa fungsi lain yang tersedia untuk file.

Sr.No. Fungsi untuk File
1 Garis

Fungsi ini mengembalikan nilai 1 atau jumlah baris yang tersisa untuk dibaca dalam aliran input. Nama file diberikan sebagai masukan untuk fungsi tersebut.

2 aliran

Fungsi ini digunakan untuk memeriksa status sebuah file. Terkadang diperlukan untuk memeriksa status file sebelum digunakan. Jika file rusak atau tidak tersedia, maka tidak ada operasi lebih lanjut yang dapat dilakukan pada file tersebut. Jadi lebih masuk akal untuk terlebih dahulu memeriksa status file tersebut.

3 charin

Fungsi ini digunakan untuk membaca karakter satu per satu dari file. Kadang-kadang program perlu membaca karakter file dengan bijaksana dan karenanya fungsi ini dapat digunakan untuk tujuan ini.

4 karakter

Fungsi ini mengembalikan 1 atau jumlah karakter yang tersisa untuk dibaca di file itu sendiri. Nama file disebutkan sebagai parameter fungsi.

5 charout

Fungsi ini digunakan untuk menulis satu karakter pada satu waktu ke file. Nama file dimasukkan sebagai parameter fungsi.

Dalam bahasa pemrograman apa pun, seluruh program dipecah menjadi modul logis. Ini mempermudah penulisan kode yang dapat dikelola dengan mudah. Ini adalah persyaratan dasar untuk bahasa pemrograman apa pun.

Di Rexx, modul dapat ditulis menggunakan Subrutin dan fungsi. Mari kita lihat subrutin secara detail.

Mendefinisikan Subrutin

Sintaks deklarasi fungsi adalah sebagai berikut -

FunctionName: 
   Statement#1 
   Statement#2 
   …. 
   Statement#N

Dimana,

  • FunctionName - Ini adalah nama yang diberikan ke subrutin.

  • Statement#1 .. Statement#N - Ini adalah daftar pernyataan yang membentuk subrutin.

Program berikut ini adalah contoh sederhana yang menunjukkan penggunaan subrutin.

/* Main program */ 
call add 
exit 
add: 
a = 5 
b = 10 
c = a + b 
say c

Hal-hal berikut harus diperhatikan tentang program di atas -

  • Kami mendefinisikan subrutin yang disebut add.

  • Subrutin melakukan fungsionalitas tambah sederhana.

  • Pernyataan keluar harus digunakan untuk menandai akhir dari program utama.

Output dari program di atas adalah sebagai berikut -

15

Bekerja dengan Argumen

Juga dimungkinkan untuk bekerja dengan argumen di Rexx. Contoh berikut menunjukkan bagaimana hal ini dapat dicapai.

/* Main program */ 
call add 1,2 
exit 
add: 
PARSE ARG a,b 
c = a + b 
say c

Hal-hal berikut harus diperhatikan tentang program di atas -

  • Kami mendefinisikan subrutin yang disebut add yang mengambil 2 parameter.

  • Dalam subrutin, 2 parameter diuraikan menggunakan kata kunci PARSE dan ARG.

Output dari program di atas adalah sebagai berikut -

3

Metode Berbeda untuk Argumen

Mari kita lihat beberapa metode lain yang tersedia untuk argumen.

arg

Metode ini digunakan untuk mengembalikan jumlah argumen yang ditentukan untuk subrutin.

Syntax -

arg()

Parameters - Tidak ada

Return Value - Metode ini mengembalikan jumlah argumen yang ditentukan untuk subrutin.

Example -

/* Main program */ 
call add 1,2 
exit 
add: 
PARSE ARG a,b 

say arg() 
c = a + b 
say c

Saat kita menjalankan program diatas kita akan mendapatkan hasil sebagai berikut.

2 
3

arg (indeks)

Metode ini digunakan untuk mengembalikan nilai argumen pada posisi tertentu.

Syntax -

arg(index)

Parameters

  • Index - Posisi indeks dari argumen yang akan dikembalikan.

Return Value - Metode ini mengembalikan nilai argumen pada posisi tertentu.

Example -

/* Main program */ 
call add 1,2 
exit 
add: 
PARSE ARG a,b 

say arg(1) 
c = a + b 
say c

Saat kita menjalankan program diatas kita akan mendapatkan hasil sebagai berikut.

1 
3

Setiap bahasa pemrograman memiliki beberapa fungsi bawaan yang membantu programmer melakukan beberapa tugas rutin. Rexx juga memiliki banyak fungsi bawaan.

Mari kita lihat semua fungsi yang tersedia di Rexx.

Sr.No. Fungsi tersedia di Rexx
1 ALAMAT

Metode ini mengembalikan nama lingkungan tempat perintah Rexx saat ini berjalan.

2 BERBUNYI

Metode ini menghasilkan suara dalam sistem pada frekuensi dan durasi tertentu.

3 Tipe data

Metode ini mengembalikan nilai 'NUM' jika inputnya adalah angka yang valid, selain itu akan mengembalikan nilai 'CHAR'. Anda juga dapat menentukan apakah Anda ingin membandingkan nilai input dengan nilai NUM atau CHAR. Dalam setiap kasus, nilai yang dikembalikan akan menjadi 1 atau 0 tergantung pada hasilnya.

4 TANGGAL

Metode ini mengembalikan tanggal lokal dalam format berikut.

5 Digit

Metode ini mengembalikan pengaturan angka NUMERIK seperti yang didefinisikan dalam sistem saat ini.

6 ERRORTEXT

Metode ini mengembalikan pesan kesalahan Rexx yang terkait dengan nomor kesalahan 'errorno'. Harap dicatat bahwa nomor kesalahan harus berupa nilai dari 0 hingga 99. Ini berguna jika program Anda mengembalikan kode kesalahan dan Anda ingin tahu apa arti kode kesalahan tersebut.

7 BENTUK

Metode ini mengembalikan pengaturan 'NUMERIC FORM' saat ini yang digunakan untuk melakukan perhitungan matematika pada sistem.

8 WAKTU

Metode ini mengembalikan waktu lokal dalam format jam 24 jam seperti yang ditunjukkan pada program berikut.

9 IDENTITAS PENGGUNA

Metode ini mengembalikan id pengguna saat ini yang masuk ke sistem.

10 XRANGE

Metode ini mengembalikan karakter dalam rentang yang ditentukan oleh karakter awal dan akhir.

11 X2D

Metode ini mengembalikan konversi desimal dari a hexstring value.

12 X2C

Metode ini mengembalikan konversi karakter dari nilai hexstring.

Salah satu keuntungan terbesar di Rexx adalah kemampuan untuk membuat skrip yang dapat digunakan kembali. Seringkali dalam organisasi saat ini, memiliki skrip yang dapat digunakan kembali adalah nilai tambah yang besar dalam menghemat waktu untuk melakukan tugas berulang yang umum.

Misalnya, tim teknologi dalam organisasi TI dapat memiliki kebutuhan untuk memiliki skrip yang melakukan tugas umum sehari-hari. Tugas-tugas ini termasuk berinteraksi dengan sistem operasi. Skrip ini kemudian dapat diprogram untuk menangani kode pengembalian yang buruk atau kesalahan.

Rexx menawarkan banyak perintah sistem yang dapat digunakan untuk melakukan tugas berulang seperti itu. Mari kita lihat beberapa perintah sistem yang tersedia di Rexx.

dir

Ini adalah perintah daftar direktori normal yang digunakan di Windows.

Sintaksis

dir

Parameter

Tidak ada

Nilai Kembali

Metode ini mengembalikan daftar direktori saat ini di sistem.

Contoh

/* Main program */ 
dir

Outputnya tergantung pada direktori di sistem.

Program berikut ini hanyalah sebuah contoh.

Keluaran

Volume in drive D is LENOVO 
Volume Serial Number is BAC9-9E3F  
Directory of D:\ 
04/06/2016  12:52 AM           268,205 100008676689.pdf 
10/20/2015  08:51 PM    <DIR>          data 
06/01/2016  10:23 AM                31 Example.txt 
10/28/2014  06:55 PM    <DIR>          Intel 
06/02/2016  11:15 AM                23 main.rexx 
12/22/2014  08:49 AM    <DIR>          PerfLogs  
12/13/2015  11:45 PM    <DIR>          Program Files 
12/24/2015  10:26 AM    <DIR>          Program Files (x86) 
07/17/2015  01:21 AM    <DIR>          Users 
12/23/2015  10:01 AM    <DIR>          Windows 
               3 File(s)        268,259 bytes 
               7 Dir(s)     202,567,680 bytes free

Contoh lain dari dir commandditampilkan dalam program berikut. Hanya kali ini kami memanfaatkan filespecial rc variable. Variabel ini khusus di Rexx dan memberi Anda status eksekusi perintah sistem. Jika nilai yang dikembalikan 0, berarti perintah berhasil dijalankan. Jika tidak, nomor kesalahan akan diberikan dalam nama variabel rc.

Contoh

/* Main program */ 
dir 
if rc = 0 then 
   say 'The command executed successfully' 
else 
   say 'The command failed, The error code is =' rc

Saat kita menjalankan program diatas kita akan mendapatkan hasil sebagai berikut.

Keluaran

The command failed, The error code is = 127

Perintah Pengalihan

Rexx juga memiliki fasilitas menggunakan perintah pengalihan. Perintah pengalihan berikut tersedia di Rexx.

  • < - Perintah ini digunakan untuk menerima input yang berasal dari sebuah file.

  • >- Perintah ini digunakan untuk menampilkan konten ke file. Jika file tersebut ada, maka akan ditimpa.

  • >>- Ini juga digunakan untuk menampilkan konten ke file. Tetapi output ditambahkan ke akhir file untuk mempertahankan konten file yang ada.

Mari kita lihat contoh bagaimana kita dapat menggunakan perintah pengalihan. Dalam contoh berikut, kami menggunakan perintah sortir untuk mengurutkan file bernamasortin.txt. Data dari file tersebut dikirim ke perintah sortir. Output dari perintah sortir kemudian dikirim ke file sortout.txt.

Contoh

/* Main program */ 
'sort <sortin.txt> sortout.txt'

Asumsikan bahwa file sortin.txt memiliki data berikut.

Keluaran

b 
c 
a

Berkas sortout.txt akan memiliki data berikut.

a 
b 
c

Fungsi ADDRESS

Metode ini digunakan untuk mengetahui lingkungan default yang digunakan untuk aliran Input, Error, dan Output.

Sintaksis

ADDRESS(options)

Parameter

  • Pilihan untuk apa alamat dari sistem tertentu.

Nilai Kembali

Metode ini mengembalikan nama lingkungan untuk aliran Input, Error, dan Output.

Contoh

/* Main program */ 
say ADDRESS('I') 
say ADDRESS('O') 
say ADDRESS('E')

Saat kita menjalankan program diatas kita akan mendapatkan hasil sebagai berikut.

Keluaran

INPUT NORMAL 
REPLACE NORMAL 
REPLACE NORMAL

XML adalah bahasa sumber terbuka portabel yang memungkinkan pemrogram mengembangkan aplikasi yang dapat dibaca oleh aplikasi lain, apa pun sistem operasi dan / atau bahasa pengembangannya. Ini adalah salah satu bahasa yang paling umum digunakan untuk bertukar data antar aplikasi.

Apa itu XML?

Extensible Markup Language XML adalah bahasa markup seperti HTML atau SGML. Ini direkomendasikan oleh World Wide Web Consortium dan tersedia sebagai standar terbuka. XML sangat berguna untuk melacak data dalam jumlah kecil hingga sedang tanpa memerlukan backbone berbasis SQL.

Untuk semua contoh kode XML kita, mari gunakan file XML sederhana berikut movies.xml untuk konstruksi file XML dan membaca file selanjutnya.

<collection shelf = "New Arrivals"> 
   <movie title = "Enemy Behind"> 
      <type>War, Thriller</type> 
      <format>DVD</format> 
      <year>2003</year> 
      <rating>PG</rating> 
      <stars>10</stars> 
      <description>Talk about a US-Japan war</description> 
   </movie> 
   
   <movie title = "Transformers"> 
      <type>Anime, Science Fiction</type> 
      <format>DVD</format> 
      <year>1989</year> 
      <rating>R</rating> 
      <stars>8</stars> 
      <description>A schientific fiction</description> 
   </movie> 
   
   <movie title = "Trigun"> 
      <type>Anime, Action</type> 
      <format>DVD</format> 
      <year>1986</year> 
      <rating>PG</rating> 
      <stars>10</stars> 
      <description>Vash the Stam pede!</description> 
   </movie> 
   
   <movie title = "Ishtar"> 
      <type>Comedy</type> 
      <format>VHS</format> 
      <year>1987</year> 
      <rating>PG</rating> 
      <stars>2</stars> 
      <description>Viewable boredom </description> 
   </movie> 
</collection>

Mulai

Secara default, fungsionalitas xml tidak disertakan dalam interpreter Rexx. Untuk bekerja dengan XML di Rexx, langkah-langkah berikut harus diikuti.

  • Unduh file berikut -

    • Rexxxml - www.interlog.com/~ptjm/

    • Libxml2 - www.ctindustries.net/libxml/

    • iconv-1.9.2.win32 - www.xmlsoft.org/sources/win32/oldreleases/

    • libxslt-1.1.26.win32 - www.xmlsoft.org/sources/win32/oldreleases/

  • Ekstrak semua file dan pastikan mereka termasuk dalam jalur sistem.

Memuat Fungsi XML

Setelah semua file di bagian di atas diunduh dan berhasil didaftarkan, langkah selanjutnya adalah menulis kode untuk memuat fungsi XML Rexx. Ini dilakukan dengan kode berikut.

rcc = rxfuncadd('XMLLoadFuncs', 'rexxxml', 'xmlloadfuncs') 

if rcc then do 
   say rxfuncerrmsg() 
   exit 1 
end 
call xmlloadfuncs

Hal-hal berikut dapat diperhatikan tentang program di atas -

  • Fungsinya rxfuncadddigunakan untuk memuat pustaka eksternal. Ituxmlloadfuncs fungsi digunakan untuk memuat semua perpustakaan di rexxxml file ke dalam memori.

  • Jika nilai rcc <> 0, maka akan menghasilkan error. Untuk ini, kita dapat memanggilrxfuncerrmsg untuk memberi kami detail lebih lanjut tentang pesan kesalahan.

  • Kami akhirnya menelepon ke xmlloadfuncs, sehingga semua fungsionalitas yang berhubungan dengan xml sekarang dapat diaktifkan di program Rexx.

Mari kita lihat berbagai methods available for XML in Rexx.

xmlVersion

Metode ini mengembalikan versi pustaka XML dan XSLT yang digunakan pada sistem.

Sintaksis

xmlVersion()

Parameter

Tidak ada

Nilai Kembali

Metode ini mengembalikan versi pustaka XML dan XSLT yang digunakan pada sistem.

Contoh

rcc = rxfuncadd('XMLLoadFuncs', 'rexxxml', 'xmlloadfuncs') 

if rcc then do 
   say rxfuncerrmsg() 
   exit 1 
end 
call xmlloadfuncs 
say xmlVersion()

Ketika kita menjalankan program diatas kita akan mendapatkan hasil sebagai berikut. Ini lagi-lagi tergantung pada versi pustaka XML yang digunakan pada sistem.

Keluaran

1.0.0 20631 10126

xmlParseXML

Fungsi ini digunakan untuk mengurai data XML yang dikirim ke fungsi. Pohon dokumen dikembalikan oleh fungsi.

Sintaksis

xmlParseXML(filename)

Parameter

  • Filename - Ini adalah nama file XML yang perlu diurai.

Nilai Kembali

Pohon dokumen dikembalikan oleh fungsi. Lain mengembalikan 0, jika ada kesalahan.

Contoh

rcc = rxfuncadd('XMLLoadFuncs', 'rexxxml', 'xmlloadfuncs') 

if rcc then do 
   say rxfuncerrmsg() 
   exit 1 
end 
call xmlloadfuncs 

say xmlVersion() 
sw = xmlParseXML('test.xml')

Keluaran

Tidak ada keluaran umum.

xmlFindNode

Metode ini mengevaluasi file XPath expressionditeruskan ke sana. Ini digunakan untuk mem-parsing pohon dokumen untuk menghasilkan anodeset yang dapat diproses lebih lanjut.

Sintaksis

xmlParseXML(XPath,document)

Parameter

  • XPath - Ini adalah jalur node di file xml.

  • document - Ini dokumen XML

Nilai Kembali

Mengevaluasi ekspresi XPath dan mengembalikan hasil sebagai kumpulan node yang dapat digunakan nanti.

Contoh

rcc = rxfuncadd('XMLLoadFuncs', 'rexxxml', 'xmlloadfuncs') 

if rcc then do 
   say rxfuncerrmsg() 
   exit 1 
end 
call xmlloadfuncs

say xmlVersion() 
document = xmlParseXML('test.xml') 
nodeset = xmlFindNode('//movie', document) 
say xmlNodesetCount(nodeset)

Ketika kita menjalankan program diatas kita akan mendapatkan hasil sebagai berikut.

Keluaran

4

Outputnya menunjukkan jumlah node film dalam daftar xml kami

xmlEvalExpression

Metode di bawah ini digunakan untuk Mengevaluasi ekspresi XPath dan mengembalikan string sebagai hasilnya.

Sintaksis

xmlParseXML(XPath,Node)

Parameter

  • XPath - Ini adalah jalur node di file xml.

  • document - Elemen simpul spesifik.

Nilai Kembali

Sebuah string dikembalikan berdasarkan ekspresi XPath yang dikirimkan padanya.

Contoh

rcc = rxfuncadd('XMLLoadFuncs', 'rexxxml', 'xmlloadfuncs') 

if rcc then do 
   say rxfuncerrmsg() 
   exit 1 
end 
call xmlloadfuncs 

document = xmlParseXML('test.xml') 
nodeset = xmlFindNode('//movie', document) 
do j = 1 to xmlNodesetCount(nodeset) 
value = xmlEvalExpression('type', xmlNodesetItem(nodeset, j)) 
say value 
end

Ketika kita menjalankan program diatas kita akan mendapatkan hasil sebagai berikut.

Keluaran

War, Thriller 
Anime, Science Fiction 
Anime, Action 
Comedy

Regina adalah penerjemah Rexx lain yang tersedia untuk mengkompilasi dan menjalankan program Rexx. Situs resmi untuk Regina adalah - www.regina-rexx.sourceforge.net/

Beberapa keuntungan menggunakan Regina adalah sebagai berikut -

  • Regina dapat berjalan di platform apa pun baik itu Windows, Linux, atau Mac OS.

  • Regina bekerja sesuai dengan semua standar yang tersedia.

  • Regina memiliki pengikut komunitas yang besar dan karenanya ada banyak forum dan materi pembelajaran yang tersedia untuk Regina.

  • Regina memiliki banyak alat yang tersedia untuk menulis dan menguji program Rexx.

  • Di Regina, Anda dapat menjalankan perintah yang tidak dimungkinkan di Rexx Interpreter default. Misalnya, jika Anda menyertakan pengaturan konfigurasi tertentu, Anda sebenarnya dapat menjalankan perintah tingkat sistem dasar, yang tidak mungkin dilakukan di Rexx.

Saat Anda menginstal Rexx melalui penginstalan yang didokumentasikan di Chapter 2 – Rexx Environment, penerjemah Regina dipasang bersamanya.

Sekarang mari kita lihat beberapa metode umum yang tersedia saat menggunakan Regina. Fungsi ini adalah fungsi tambahan yang tidak tersedia melalui penggunaan normal.

Untuk menggunakan fungsi tambahan, Anda perlu menyertakan baris kode berikut. Ini memungkinkan penggunaan fungsi diperpanjang Regina.

options arexx_bifs

Kedua saat menjalankan semua program Rexx, gunakan perintah berikut.

regina main.rexx

Where,

  • regina - Ini adalah penerjemah yang digunakan untuk program Rexx.

  • main.rexx - Program Rexx Anda.

Kami sekarang akan membahas secara rinci berbagai functions of Regina Rexx Interpreter.

Sr.No. Fungsi Penerjemah Regina Rexx
1 b2c

Metode ini digunakan untuk mengubah nilai biner menjadi nilai string.

2 bitcomp

Metode ini digunakan untuk membandingkan 2 string bit, sedikit demi sedikit.

3 bittst

Metode ini digunakan untuk menunjukkan keadaan bit yang ditentukan dalam string bit.

4 Temukan

Metode ini digunakan untuk mencari kemunculan pertama sebuah string dalam string lain.

5 getenv

Metode ini mengembalikan nilai variabel lingkungan pada sistem.

6 getpid

Metode ini digunakan untuk mendapatkan nilai id proses yang sedang berjalan.

7 hash

Metode ini mengembalikan atribut hash dari sebuah string sebagai angka desimal. Ini juga memperbarui nilai hash internal string.

8 membenarkan

Cara ini digunakan untuk menjumlahkan justify atau memangkas nilai suatu string berdasarkan nilai panjangnya.

9 putenv

Metode ini digunakan untuk menetapkan nilai variabel lingkungan.

10 direktori

Metode ini mendapatkan nilai direktori saat ini di sistem.

11 chdir

Metode ini mengubah nilai direktori kerja saat ini pada sistem.

12 randu

Metode ini mengembalikan angka acak semu antara 0 dan 1.

Salah satu fitur Rexx yang paling kuat adalah kemampuannya untuk mengurai nilai teks. Anda mungkin tidak akan melihat ini dalam bahasa pemrograman lain.

Format umum pernyataan parse adalah sebagai berikut -

Sintaksis

PARSE {UPPER|LOWER|CASELESS} source {template}

Where,

  • UPPER - Sumber diubah menjadi huruf besar sebelum parsing.

  • LOWER - Sumber diubah menjadi huruf kecil sebelum parsing.

  • CASELESS - Jika parameter ini dilewatkan, casing diabaikan.

  • source- Ini adalah sumber yang perlu diurai. Ada banyak opsi yang tersedia untuk ini dan dapat berupa salah satu dari yang berikut -

    • ARG - Argumen untuk program atau prosedur dapat digunakan sebagai sumber.

    • LINEIN - Input baris berikutnya dapat digunakan sebagai sumber.

    • SOURCE - Sumber informasi program dapat digunakan sebagai sumber.

    • VAR name - Nilai nama variabel dapat digunakan sebagai sumber.

  • template- Parameter ini menentukan cara mengurai sumber. Ada banyak pilihan yang tersedia untuk ini. Beberapa di antaranya disebutkan di bawah ini.

    • variable name - Ini adalah nilai yang diberikan ke variabel.

    • literal string - String literal yang dapat digunakan sebagai pola untuk memisahkan string.

    • #- Posisi karakter absolut dalam sumber itu sendiri. Jadi jika Anda menentukan nilai 5, karakter ke- 5 akan digunakan.

    • +#- Posisi karakter relatif dalam sumber itu sendiri. Jadi jika Anda menentukan nilai 5, karakter ke 5 akan digunakan secara relatif.

Mari kita lihat contoh sederhana bagaimana penguraian dapat dilakukan di Rexx.

Contoh

/* Main program */ 
parse value 'This is a Tutorial' with word1 word2 word3 word4 
say "'"word1"'" 
say "'"word2"'" 
say "'"word3"'" 
say "'"word4"'"

Program di atas mengurai kata-kata dalam frasa. Jika nilai terdiri dari kata-kata yang hanya dipisahkan oleh satu spasi, dan tidak ada spasi di depan atau di belakangnya, nilai tersebut akan mudah diurai menjadi sejumlah kata yang diketahui sebagai berikut.

Fungsi parse digunakan di Rexx untuk mengambil nilai string dan kemudian memecahnya menjadi kata-kata. Dalam contoh di atas, kata-kata tersebut kemudian dipisahkan dan kemudian disimpan dalam variabel kata.

Output dari program di atas adalah sebagai berikut -

'This' 
'is' 
'a' 
'Tutorial'

Contoh lain dari penguraian ditampilkan dalam program berikut. Kali ini kami menggunakan klausa while untuk melakukan parsing.

Contoh

/* Main program */ 
phrase = 'This is a Tutorial' 

do while phrase <> '' 
   parse var phrase word phrase 
   say "'"word"'" 
   end

Program di atas akan memberikan keluaran sebagai berikut -

'This' 
'is' 
'a' 
'Tutorial'

Parsing Posisi

Rexx juga memungkinkan seseorang untuk bekerja dengan penguraian posisi. Mari kita lihat contoh bagaimana kita bisa mencapai penguraian posisi dengan pernyataan parse.

Contoh

/* Main program */ 
testString = "Doe       John M.   03/03/78  Mumbai              India"; 
parse var testString name1 11 name2 21 birthday 31 town 51 country 
say name1 
say name2 
say birthday 
say town 
say country

Dari contoh di atas, Anda dapat mencatat bahwa bersama dengan nama variabel, kami juga menentukan di mana string harus diakhiri. Jadi untuk name1, kita harus diakhiri dengan karakter ke-11 dan kemudian mulai parsing name2.

Output dari program di atas adalah sebagai berikut -

Doe 
John M. 
03/03/78 
Mumbai 
India

Anda juga bisa menggunakan relative positional parsing pada kasus ini.

Contoh

/* Main program */ 
testString = "Doe       John M.   03/03/78  Mumbai              India"; 
parse var testString name1 +10 name2 +10 birthday +10 town +20 country 
say name1 
say name2 
say birthday 
say town 
say country

Output dari program di atas akan seperti gambar di bawah ini.

Doe 
John M. 
03/03/78 
Mumbai 
India

Di Rexx, instruksi sinyal digunakan secara umum untuk dua tujuan, yaitu -

  • Salah satunya adalah mentransfer kontrol ke bagian lain dari program. Ini biasanya seperti label masuk yang digunakan dalam bahasa pemrograman lain.

  • Yang lainnya adalah pergi ke label perangkap tertentu.

Jika perintah sinyal digunakan dalam salah satu dari perintah instruksi berikut, struktur kontrol yang tertunda akan secara otomatis dinonaktifkan.

  • jika ... lalu ... lain ...

  • lakukan ... akhiri

  • do i = 1 to n ... end [dan serupa do loop]

  • pilih kapan ... lalu ... ... dll. jika tidak ... berakhir

Sintaks umum dari pernyataan sinyal ditampilkan sebagai berikut -

Sintaksis

signal labelName  
   
signal [ VALUE ] labelExpression

Mari kita lihat contoh bagaimana menggunakan pernyataan sinyal.

Contoh

/* Main program */ 
n = 100.45 

if \ datatype( n, wholenumber ) then 
   signal msg 
   say 'This is a whole number' 
   return 0 
msg : 
   say 'This is an incorrect number'

Output dari program di atas akan seperti gambar di bawah ini.

Keluaran

This is an incorrect number.

Jika Anda mengubah nilai variabel n menjadi bilangan bulat seperti yang ditunjukkan pada program berikut -

/* Main program */ 
n = 100 

if \ datatype( n, wholenumber ) then 
   signal msg 
   say ' This is a whole number ' 
   return 0 
msg : 
   say ' This is an incorrect number '

Anda akan mendapatkan output berikut -

This is a whole number

Seseorang juga dapat mentransfer ke nilai label seperti yang ditunjukkan pada program berikut -

/* Main program */ 
n = 1 

if \ datatype( n, wholenumber ) then 
   signal msg 

if n < 1 | n > 3 then 
   signal msg  
   signal value n 
   3 : say 'This is the number 3' 
   2 : say ' This is the number 2' 
   1 : say ' This is the number 1' 
   return n 
msg : 
   say ' This is an incorrect number ' 
   exit 99

Output dari program di atas akan ditampilkan sebagai berikut -

This is the number 1

Aktivasi / Deaktivasi Trap Label Transfer

Seperti yang telah kami sebutkan sebelumnya, instruksi sinyal juga dapat digunakan untuk mentransfer kontrol ke label perangkap.

Sintaks umum dari transfer label Trap diberikan sebagai berikut -

Sintaksis

signal ON conditionName [ NAME Label ] 
  
signal OFF conditionName

Dimana,

  • conditionName - Ini adalah kondisi dimana sinyal harus dinyalakan atau dimatikan.

  • Label - Label opsional tempat program harus dialihkan.

Mari kita lihat contoh penggunaan transfer label jebakan.

Contoh

/* Main program */ 
signal on error 
signal on failure 
signal on syntax 
signal on novalue 
beep(1) 
signal off error 
signal off failure 
signal off syntax 
signal off novalue 
exit 0 
error: failure: syntax: novalue: 
say 'An error has occured'

Dalam contoh di atas, pertama-tama kita mengaktifkan sinyal kesalahan. Kami kemudian menambahkan pernyataan yang akan menghasilkan kesalahan. Kami kemudian memiliki label perangkap kesalahan untuk menampilkan pesan kesalahan khusus.

Output dari program di atas adalah sebagai berikut -

An error has occurred.

Debugging adalah fitur penting dalam bahasa pemrograman apa pun. Ini membantu pengembang untuk mendiagnosis kesalahan, menemukan akar penyebabnya, dan kemudian mengatasinya. Di Rexx, utilitas pelacakan digunakan untuk debugging. Instruksi jejak dapat diimplementasikan dalam 2 cara, satu adalah mode batch dan yang lainnya adalah mode interaktif. Mari kita lihat bagaimana menerapkan kedua opsi tersebut.

Lacak dalam Mode Batch

Perintah jejak digunakan untuk memberikan tingkat detail dari setiap perintah Rexx yang dijalankan.

Sintaks umum pernyataan jejak ditampilkan sebagai berikut -

Sintaksis

trace [setting]

Di mana pengaturan dapat berupa salah satu dari opsi berikut -

  • A - Melacak semua perintah.

  • C - Hanya melacak perintah host yang dikirim ke sistem operasi.

  • E - Hanya melacak perintah host yang dikirim ke sistem operasi yang mengakibatkan kesalahan.

  • F - Hanya melacak perintah host yang dikirim ke sistem operasi yang mengakibatkan kegagalan.

  • I - Ini menyediakan penelusuran tingkat menengah dari perintah Rexx.

  • L - Opsi ini jika Anda ingin memberi label pada pelacakan saat itu terjadi.

  • N - Ini adalah opsi default di mana tidak ada pelacakan yang terjadi.

Mari kita lihat contoh perintah jejak.

Contoh

/* Main program */ 
trace A 

/* Main program */ 
n = 100.45 if datatype( n, wholenumber ) then signal msg 

say 'This is a whole number' 
return 0 

msg : 
   say ' This is an incorrect number '

Output dari program di atas adalah sebagai berikut -

5 *-* n = 100.45 if datatype( n, wholenumber ) then signal msg
   7 *-* say 'This is a whole number
This is a whole number                                                   
   8 *-* return 0

Dari keluaran, Anda dapat melihat bahwa jejak tambahan telah ditambahkan ke keluaran program. Hal-hal berikut dapat diperhatikan tentang output -

  • Nomor baris bersama dengan pernyataan yang dieksekusi ditambahkan ke keluaran jejak.

  • Setiap baris yang dieksekusi ditampilkan dalam keluaran jejak.

Fungsi Jejak

Trace juga dapat diaktifkan dengan bantuan fungsi trace. Sintaks umum dan contoh ditunjukkan di bawah ini.

Sintaksis

trace()

Fungsi di atas mengembalikan tingkat jejak saat ini.

Parameter

Tidak ada

Nilai Kembali

Fungsi di atas memberikan tingkat jejak saat ini.

Contoh

/* Main program */ 
say trace() 

/* Main program */ 
n = 100.45 if datatype( n, wholenumber ) then signal msg 

say 'This is a whole number' 
return 0 
msg : 

say 'This is an incorrect number '

Output dari program di atas adalah sebagai berikut.

N 
This is an incorrect number

Baris pertama N menunjukkan bahwa jejak disetel ke Normal.

Menetapkan Nilai Jejak

Tingkat jejak dapat diatur dengan fungsi jejak. Sintaks umum dan contoh ditunjukkan di bawah ini.

Sintaksis

trace(travel_level)

Parameter

  • trace_level - Ini mirip dengan opsi yang tersedia untuk menyetel tingkat jejak.

Nilai Kembali

Fungsi di atas memberikan tingkat jejak saat ini.

Contoh

/* Main program */ 
say trace() 
current_trace = trace('A') 
say current_trace 

/* Main program */ 
n = 100.45 if datatype( n, wholenumber ) then 
signal msg say 'This is a whole number' 
return 0 
msg : 
say ' This is an incorrect number '

Output dari program di atas adalah sebagai berikut -

N 
   4 *-* say current_trace 
N 
   6 *-* n = 100.45 
   7 *-* if \ datatype( n, wholenumber ) then 
   8 *-* signal msg 
   12 *-* say 'This is an incorrect number' 
'This is an incorrect number'

Pelacakan Interaktif

Tracing interaktif dimana, tracing dilakukan saat program berjalan. Sama seperti di IDE seperti Visual Studio untuk .Net, di mana Anda dapat menambahkan breakpoint dan melihat bagaimana setiap pernyataan dijalankan, demikian pula di sini Anda juga dapat melihat program saat setiap baris kode berjalan.

Sintaks umumnya adalah sebagai berikut -

Sintaksis

trace ?options

Di mana, opsinya sama untuk perintah jejak seperti yang ditunjukkan di bawah ini.

  • A - Melacak semua perintah

  • C - Hanya melacak perintah host yang dikirim ke sistem operasi.

  • E - Hanya melacak perintah host yang dikirim ke sistem operasi yang mengakibatkan kesalahan.

  • F - Hanya melacak perintah host yang dikirim ke sistem operasi yang mengakibatkan kegagalan.

  • I - Ini menyediakan penelusuran tingkat menengah dari perintah Rexx.

  • L - Opsi ini jika Anda ingin memberi label pada pelacakan saat itu terjadi.

  • N - Ini adalah opsi default di mana tidak ada pelacakan yang terjadi.

Mari kita lihat contoh penerapan pelacakan aktif.

Contoh

/* Main program */ 
trace ?A

/* Main program */ 
n = 100.45 if datatype( n, wholenumber ) then 
signal msg 

say 'This is a whole number' 
return 0 
msg : say 'This is an incorrect number'

Output dari program di atas akan seperti yang ditunjukkan pada program berikut. Jejak akan berhenti di setiap baris kode; lalu Anda perlu menekan tombol Enter untuk berpindah ke baris kode berikutnya.

This is an incorrect number
       +++ "LINUX COMMAND /home/cg/root/5798511/main.rex"
     5 *-* n = 100.45 if datatype( n, wholenumber ) then 
+++ Interactive trace. "Trace Off" to end debug, ENTER to Continue. +++
     6 *-* signal msg 
    10 *-* msg :
    10 *-* say 'This is an incorrect number'

Rexx memiliki kemampuan untuk juga mengerjakan penanganan Error seperti pada bahasa pemrograman lainnya.

Berikut ini adalah beberapa dari berbagai kondisi kesalahan yang terlihat di Rexx.

  • ERROR - Ini bahkan dimunculkan setiap kali perintah yang dikirim ke sistem operasi menghasilkan kesalahan.

  • FAILURE - Ini bahkan dimunculkan setiap kali perintah yang dikirim ke sistem operasi menghasilkan kegagalan.

  • HALT- Ini biasanya dinaikkan setiap kali suatu operasi bergantung pada operasi lain. Contohnya adalah jika operasi I / O dihentikan karena alasan apa pun.

  • NOVALUE - Acara ini dimunculkan ketika nilai belum ditetapkan ke variabel.

  • NOTREADY - Ini dimunculkan oleh perangkat I / O yang tidak siap untuk menerima operasi apa pun.

  • SYNTAX - Acara ini dimunculkan jika ada kesalahan sintaks dalam kode.

  • LOSTDIGITS - Peristiwa ini dimunculkan ketika operasi aritmatika mengakibatkan hilangnya digit selama operasi.

Kesalahan Perangkap

Kesalahan terjebak dengan bantuan perintah sinyal. Mari kita lihat sintaks dan contohnya.

Sintaksis

signal on [Errorcondition]

Dimana,

  • Errorcondition - Ini adalah kondisi kesalahan yang diberikan di atas.

Contoh

Mari kita lihat contohnya.

/* Main program */ 
signal on error 
signal on failure 
signal on syntax 
signal on novalue beep(1) 
signal off error 
signal off failure
signal off syntax 
signal off novalue 
exit 0 
error: failure: syntax: novalue: 
say 'An error has occured'

Dalam contoh di atas, pertama-tama kita mengaktifkan sinyal kesalahan. Kami kemudian menambahkan pernyataan yang akan menghasilkan kesalahan. Kami kemudian memiliki label perangkap kesalahan untuk menampilkan pesan kesalahan khusus.

Output dari program di atas akan seperti gambar di bawah ini.

An error has occurred.

Contoh kode kesalahan ditunjukkan pada program berikut.

/* Main program */ 
signal on error 
signal on failure 
signal on syntax 
signal on novalue beep(1) 
exit 0 
error: failure: syntax: novalue: 

say 'An error has occured' 
say rc 
say sigl

Output dari program di atas akan seperti gambar di bawah ini.

An error has occured 
40 
6

Saat Anda menginstal ooRexx sesuai dengan bab lingkungan, Anda juga akan memiliki kemampuan untuk bekerja dengan kelas dan objek. Harap dicatat bahwa semua kode berikut harus dijalankan di interpreter ooRexx. Penerjemah Rexx normal tidak akan dapat menjalankan kode berorientasi objek ini.

Deklarasi Kelas dan Metode

Sebuah kelas didefinisikan dengan deklarasi sintaks berikut.

Sintaksis

::class classname

dimana classname adalah nama yang diberikan untuk kelas.

Metode di kelas ditentukan dengan deklarasi Sintaks berikut.

Sintaksis

::method methodname

Dimana methodname adalah nama yang diberikan untuk metode tersebut.

Properti di kelas didefinisikan dengan deklarasi Sintaks di bawah ini.

Sintaksis

::attribute propertyname

Dimana propertyname adalah nama yang diberikan untuk properti.

Contoh

Berikut ini adalah contoh kelas di Rexx.

::class student 
::attribute StudentID 
::attribute StudentName

Poin-poin berikut perlu diperhatikan tentang program di atas.

  • Nama kelasnya adalah siswa.
  • Kelas memiliki 2 properti, StudentID dan StudentName.

Metode Getter dan Setter

Metode Getter dan Setter digunakan untuk secara otomatis mengatur dan mendapatkan nilai properti. Di Rexx, saat Anda mendeklarasikan properti dengan kata kunci atribut, metode pengambil dan penyetel sudah siap.

Contoh

::class student 
::attribute StudentID 
::attribute StudentName

Dalam contoh di atas, akan ada metode Getter dan Setter untuk StudentId dan StudentName.

Contoh bagaimana mereka dapat digunakan ditunjukkan pada program berikut.

/* Main program */ 
value = .student~new 
value~StudentID = 1 
value~StudentName = 'Joe' 
say value~StudentID 
say value~StudentName 

exit 0 
::class student 
::attribute StudentID 
::attribute StudentName

Output dari program di atas akan seperti gambar di bawah ini.

1 
Joe

Metode Instance

Objek dapat dibuat dari kelas melalui ~new operator. Metode dari kelas dapat dipanggil dengan cara berikut.

Object~methodname

Dimana methodname adalah metode yang perlu dipanggil dari kelas.

Contoh

Contoh berikut menunjukkan bagaimana sebuah objek dapat dibuat dari kelas dan masing-masing metode dipanggil.

/* Main program */ 
value = .student~new 
value~StudentID = 1 
value~StudentName = 'Joe' 
value~Marks1 = 10 
value~Marks2 = 20 
value~Marks3 = 30 
total = value~Total(value~Marks1,value~Marks2,value~Marks3) 
say total 

exit 0 
::class student 
::attribute StudentID 
::attribute StudentName 
::attribute Marks1 
::attribute Marks2 
::attribute Marks3 
::method 'Total' 
use arg a,b,c 
return (ABS(a) + ABS(b) + ABS(c))

Output dari program di atas akan seperti gambar di bawah ini.

60

Membuat Banyak Objek

Seseorang juga dapat membuat beberapa objek kelas. Contoh berikut akan menunjukkan bagaimana ini bisa dicapai.

Di sini kita membuat 3 objek (st, st1 dan st2) dan memanggil anggota instance mereka dan metode instance yang sesuai.

Mari kita lihat contoh bagaimana beberapa objek dapat dibuat.

Contoh

/* Main program */ 
st = .student~new 
st~StudentID = 1 
st~StudentName = 'Joe' 
st~Marks1 = 10 
st~Marks2 = 20 
st~Marks3 = 30 
total = st~Total(st~Marks1,st~Marks2,st~Marks3) 
say total  

st1  =  .student~new 
st1~StudentID = 2 
st1~StudentName = 'John' 
st1~Marks1 = 10 
st1~Marks2 = 20 
st1~Marks3 = 40 
total = st1~Total(st1~Marks1,st1~Marks2,st1~Marks3) 
say total  

st2  =  .student~new 
st2~StudentID = 3 
st2~StudentName = 'Mark' 
st2~Marks1 = 10 
st2~Marks2 = 20 
st2~Marks3 = 30 
total = st2~Total(st2~Marks1,st2~Marks2,st2~Marks3) 
say total  

exit 0 
::class student 
::attribute StudentID 
::attribute StudentName 
::attribute Marks1 
::attribute Marks2 
::attribute Marks3 
::method 'Total' 
use arg a,b,c 
return (ABS(a) + ABS(b) + ABS(c))

Output dari program di atas akan seperti gambar di bawah ini.

60 
70 
60

Warisan

Pewarisan dapat didefinisikan sebagai proses di mana satu kelas memperoleh properti (metode dan bidang) dari kelas lain. Dengan menggunakan pewarisan, informasi dibuat dapat dikelola dalam urutan hierarki.

Kelas yang mewarisi properti lain dikenal sebagai subclass (kelas turunan, kelas anak) dan kelas yang propertinya diwarisi disebut superclass (kelas dasar, kelas induk).

Mari kita lihat contoh warisan di Rexx. Dalam contoh berikut kami membuat kelas bernamaPerson. Dari sana kami menggunakan kata kunci subclass untuk membuatStudent class sebagai sub-class of Person.

Contoh

/* Main program */ 
st = .student~new 
st~StudentID = 1 
st~StudentName = 'Joe' 
st~Marks1 = 10 
st~Marks2 = 20 
st~Marks3 = 30 
say st~Total(st~Marks1,st~Marks2,st~Marks3)  

exit 0 
::class Person 
::class student subclass Person 
::attribute StudentID 
::attribute StudentName 
::attribute Marks1 
::attribute Marks2 
::attribute Marks3 
::method 'Total' 
use arg a,b,c 
return (ABS(a) + ABS(b) + ABS(c))

Output dari program di atas akan seperti gambar di bawah ini.

60

Portabilitas merupakan aspek penting dalam bahasa pemrograman apa pun. Seperti yang diketahui, Rexx tersedia di berbagai sistem operasi seperti Windows dan Linux. Jadi perlu dipastikan bahwa ketika seseorang mengembangkan sebuah program pada platform Windows, ia memiliki tindakan pencegahan yang diperlukan jika program yang sama berjalan pada platform Linux.

Rexx memiliki kemampuan untuk menjalankan perintah tingkat sistem. Ada perintah yang dapat digunakan untuk memahami apa sistem operasi yang menjalankannya. Berdasarkan keluarannya kemudian dapat mengambil tindakan yang sesuai untuk melihat perintah apa saja yang dapat dijalankan pada sistem operasi ini.

Contoh

Contoh berikut menunjukkan bagaimana fungsi parse digunakan untuk mendapatkan detail sistem operasi yang menjalankan program.

/* Main program */ 
parse version language level date month year. 
parse source system invocation filename. 
language = translate(language) 

if pos('REGINA',language) = 0 then 
   say 'Error , the default interpreter is not Regina' language 
   say 'The Interpreter version/release date is:' date month year 
   say 'The Language level is: ' level say 'The Operating System is'  

   select 
when system = 'WIN32' then 
   'ver'
when system = 'UNIX' | system = 'LINUX' then 
   'uname -a' 
   otherwise 
   say 'Unknown System:' system 
end 
if rc <> 0 then 
   say 'Error :' rc

Outputnya akan bervariasi bergantung pada sistem operasi. Output sampel diberikan di bawah ini.

The Interpreter version/release date: 5 Apr 2015 
The Language level is:  5.00 
The Operating System is 
Unknown System: WIN64 
Bad return code: RC

Rexx menyediakan sejumlah fungsi tambahan yang memberikan berbagai macam fungsionalitas, sebagian besar memungkinkan Anda untuk berinteraksi dengan Sistem Operasi. Mari kita lihat beberapa di antaranya secara detail seperti yang dijelaskan di bawah ini.

Sr.No. Fungsi Diperpanjang
1 b2c

Fungsi ini mengubah nilai biner menjadi nilai string.

2 bitclr

Fungsi ini digunakan untuk mengubah bit yang ditentukan dalam string biner menjadi 0.

3 bitcomp

Fungsi ini digunakan untuk membandingkan 2 string biner yang dimulai dengan bit 0.

4 buftype

Fungsi ini digunakan untuk menampilkan konten tumpukan yang biasanya digunakan dalam tujuan debugging.

5 ruang bawah tanah

Fungsi ini digunakan untuk mengenkripsi string.

6 garpu

Fungsi ini digunakan untuk menelurkan proses anak baru di sistem.

7 getpid

Fungsi ini mendapatkan id dari proses yang sedang berjalan.

8 hash

Fungsi ini mengembalikan nilai hash dari sebuah string.

Rexx menyediakan sejumlah instruksi yang memberikan berbagai macam fungsionalitas, sebagian besar memungkinkan Anda untuk berinteraksi dengan Sistem Operasi. Mari kita lihat beberapa di antaranya secara detail.

Sr.No. Instruksi Rexx
1 alamat

Fungsi ini digunakan untuk menampilkan lingkungan perintah saat ini.

2 penurunan

Fungsi ini digunakan untuk membatalkan penetapan variabel.

3 menafsirkan

Menafsirkan atau mengeksekusi instruksi yang ditentukan.

4 tidak

Fungsi ini berarti tidak melakukan operasi. Perintah ini biasanya digunakan diif statements.

5 Tarik

Ini digunakan untuk menarik masukan dari tumpukan atau dari aliran default.

6 Dorong

Ini digunakan untuk mendorong nilai ke tumpukan Rexx.

Bahasa Rexx memiliki banyak implementasi yang bervariasi seperti yang telah kita lihat di bab-bab sebelumnya. Setiap implementasi memiliki fungsinya sendiri. Mari kita lihat berbagai implementasi yang tersedia untuk Rexx.

OoRexx

Ini adalah versi berorientasi objek dari Rexx. Secara default, implementasi dasar Rexx semuanya berdasarkan prosedur. Tetapi dengan ooRexx Anda dapat menawarkan fleksibilitas yang lebih besar dengan memiliki pendekatan berorientasi Objek ke Rexx. Dengan menggunakan ooRexx Anda dapat menggunakan kembali dengan lebih baik melalui pembuatan kelas dan objek yang dapat digunakan kembali.

Program berikut adalah contoh program Rexx sederhana yang dapat dijalankan dengan pelaksana ooRexx.

Contoh

/* Main program */ 
say ‘hello’

Untuk menjalankan program ini, jalankan perintah berikut.

rexx main.rexx

Saat Anda menjalankan perintah di atas, Anda akan mendapatkan output berikut.

hello

Netrexx

Ini untuk semua pengembang berbasis Java karena menyediakan alternatif berbasis Java untuk bahasa Rexx. Jadi semua objek didasarkan pada Model Objek Java. Keuntungan dari kerangka kerja ini adalah karena Java adalah bahasa yang sangat populer, menjadi lebih mudah bagi pengembang untuk menggunakan kerangka kerja ini. Jadi dalam implementasi ini, kode Rexx diubah menjadi program Java yang kemudian dapat dijalankan di mesin virtual Java apa pun.

Kode berikut adalah contoh program NetRexx.

Buat file bernama main.nrx dan tempatkan kode berikut di file.

/* Main program */ 
say ‘hello’

Untuk mengkompilasi kode, jalankan perintah berikut -

NetRexxC main.nrx

Anda kemudian akan mendapatkan output berikut. NetRexxC adalah kompiler yang mengubah program Rexx menjadi java yang setara.

java -cp ";;G:\NetRexx-3.04GA\lib\NetRexxF.jar;." 
-Dnrx.compiler = ecj org.netrexx.process.NetRexxC  main.nrx 
NetRexx portable processor 3.04 GA build 4-20150630-1657 
Copyright (c) RexxLA, 2011,2015.   All rights reserved. 
Parts Copyright (c) IBM Corporation, 1995,2008. 
Program main.nrx 
Compilation of 'main.nrx' successful

Anda sekarang dapat menjalankan program java Anda menggunakan perintah java berikut.

java main

Saat Anda menjalankan perintah di atas, Anda akan mendapatkan output berikut.

Hello

Brexx

Ini adalah implementasi ringan dari Rexx. Ini adalah paket yang lebih ringan daripada pelaksana Rexx standar. Tetapi masih memiliki fungsionalitas penuh dari Rexx.

Kode berikut adalah contoh program BRexx.

/* Main program */ 
say ‘hello’

Untuk menjalankan program, jalankan perintah berikut.

rexx32 main.rexx

Saat Anda menjalankan perintah di atas, Anda akan mendapatkan output berikut.

hello

NetRexx adalah implementasi java dari Rexx. Di NetRexx, pelaksana digunakan untuk mengubah program Rexx menjadi program java yang kemudian dapat dijalankan di mesin virtual Java apa pun.

Menyiapkan NetRexx

Langkah pertama di NetRexx adalah menyiapkannya di komputer lokal. Untuk melakukan ini, seseorang perlu melakukan langkah-langkah berikut -

Step 1 - Buka situs unduhan NetRexx - http://www.netrexx.org/downloads.nsp

Unduh file NetRexx.3.04.GA.

Step 2- Pastikan java telah terinstal dan berjalan di sistem Anda. Anda dapat memverifikasi bahwa java berjalan dengan menggunakan perintah java – version.

Contoh output ditampilkan di bawah ini.

H:\>java -version 
java version "1.7.0_79" 
Java(TM) SE Runtime Environment (build 1.7.0_79-b15) 
Java HotSpot(TM) Client VM (build 24.79-b02, mixed mode, sharing)

Step 3- Buka zip konten file zip Netrexx. Salin file dari folder NetRexx3.04GA \ lib ke folder instalasi java / lib / etc.

Step 4 - Tambahkan jalur NetRexx-3.04GA \ bin ke variabel jalur pada sistem.

Menjalankan Program NetRexx Pertama

Buat file bernama main.nrx dan tempatkan kode berikut di file.

/* Main program */ 
say ‘hello’

Untuk mengkompilasi kode, jalankan perintah berikut.

NetRexxC main.nrx

Anda kemudian akan mendapatkan output berikut. NetRexxC adalah kompilator yang mengubah program rexx menjadi program java yang setara.

java -cp ";;G:\NetRexx-3.04GA\lib\NetRexxF.jar;." 
-Dnrx.compiler = ecj org.netrexx.process.NetRexxC  main.nrx 
NetRexx portable processor 3.04 GA build 4-20150630-1657 
Copyright (c) RexxLA, 2011,2015.   All rights reserved. 
Parts Copyright (c) IBM Corporation, 1995,2008. 
Program main.nrx 
Compilation of 'main.nrx' successful

Anda sekarang dapat menjalankan program java Anda menggunakan perintah java berikut.

java main

Saat Anda menjalankan perintah di atas, Anda akan mendapatkan output berikut.

Hello

Sekarang mari kita bahas beberapa special aspects of the Netrexx library.

String Terindeks

Di NetRexx, string bisa menjadi indeks untuk array. Contohnya ditunjukkan di bawah ini.

Contoh

/* Main program */ 
value = 'unknown' 
value['a'] = 'b' 
c = 'a' 
say value[c]

Saat kita menjalankan program di atas, kita akan mendapatkan hasil sebagai berikut.

Keluaran

b

Beberapa Indeks

Di NetRexx, Anda dapat memiliki beberapa indeks untuk array. Contohnya ditunjukkan di bawah ini.

Contoh

/* Main program */ 
value = 'null' 
value['a', 'b'] = 1 
say value['a', 'b']

Saat kita menjalankan program diatas kita akan mendapatkan hasil sebagai berikut.

Keluaran

1

Sr.No. Perintah & Deskripsi
1 tanya Command

Perintah ini digunakan untuk membaca baris dari aliran input default.

2 digit Perintah

Perintah ini digunakan untuk menampilkan nilai saat ini dari nilai digit.

3 bentuk Perintah

Perintah ini digunakan untuk menampilkan nilai saat ini dari nilai formulir.

4 panjang Perintah

Perintah ini digunakan untuk menampilkan panjang nilai string.

5 versi Perintah

Perintah ini digunakan untuk mengembalikan versi NetRexx yang sedang digunakan.

6 melacak Command

Perintah ini digunakan untuk mengembalikan setelan pelacakan saat ini yang digunakan oleh NetRexx.

BRexx adalah implementasi Rexx yang lebih ringan. Ini masih memiliki banyak fungsi untuk ditawarkan sebagai bagian dari implementasi Rexx.

Menyiapkan BRexx

Langkah pertama di BRexx adalah menyiapkannya di komputer lokal. Untuk melakukan ini, seseorang perlu melakukan langkah-langkah berikut -

Step 1 - Buka situs pengunduhan BRexx - https://ftp.gwdg.de/pub/languages/rexx/brexx/html/rx.html

Buka bagian unduhan dan unduh produk.

Step 2 - Buka zip konten file zip Brexx.

Step 3 - Tambahkan jalur BRexx \ bin ke variabel jalur pada sistem.

Step 4 - Buat variabel baru bernama RXLIB dan arahkan ke folder lib di folder Brexx.

Menjalankan Program BRexx Pertama

Buat file bernama main.rexx dan tempatkan kode berikut di file.

/* Main program */ 
say ‘hello’

Untuk menjalankan program, jalankan perintah berikut.

rexx32 main.rexx

Saat Anda menjalankan perintah di atas, Anda akan mendapatkan output berikut.

hello

Sekarang mari kita bahas beberapa fungsi yang paling umum digunakan yang tersedia di perpustakaan BRexx.

Sr.No. Fungsi tersedia di Perpustakaan BRexx
1 Acos Command

Perintah ini digunakan untuk mendapatkan konversi arc-cosinus dari sebuah bilangan.

2 cos Command

Perintah ini digunakan untuk mendapatkan konversi kosinus dari sebuah bilangan.

3 Perintah dosa

Perintah ini digunakan untuk mendapatkan konversi sinus dari sebuah bilangan.

4 asin Command

Perintah ini digunakan untuk mendapatkan konversi arc-sinus dari sebuah bilangan.

5 Perintah tan

Perintah ini digunakan untuk mendapatkan konversi tangen sebuah bilangan.

6 atan Command

Perintah ini digunakan untuk mendapatkan konversi busur-tangen sebuah bilangan.

7 Perintah mkdir

Perintah ini digunakan untuk membuat direktori di direktori kerja saat ini.

8 Perintah rmdir

Perintah ini digunakan untuk menghapus direktori di direktori kerja saat ini.

9 dir Perintah

Perintah ini digunakan untuk mengembalikan seluruh daftar direktori.

Rexx memiliki kemampuan untuk bekerja dengan berbagai database yang tercantum di bawah ini.

  • HSQLDB
  • Oracle
  • SQL Server
  • MySQL
  • MongoDB

Semua informasi untuk database Rexx dapat ditemukan setelah Anda mengklik tautan berikut - https://rexxsql.sourceforge.net/

Dalam contoh kami, kami akan menggunakan MySQL DB sebagai sampel. Jadi langkah pertama adalah memastikan untuk mendownload driver yang diperlukan dari situs Rexx SQL sehingga program Rexx dapat bekerja dengan SQL yang sesuai. Jadi ikuti langkah-langkah selanjutnya untuk memastikan bahwa program Rexx dapat bekerja dengan database MySQL.

Step 1 - Buka halaman unduh driver berikut dari situs Rexx - https://sourceforge.net/projects/rexxsql/files/rexxsql/2.6/

Step 2 - Unduh driver MYSQL - rxsql26B3_my_w32_ooRexx

Step 3 - Buka zip konten ke mesin lokal.

Step 4 - Tambahkan jalur folder yang telah dibuka zipnya ke variabel jalur pada mesin Anda.

Untuk semua contoh berikutnya, pastikan petunjuk berikut ada -

  • Anda telah membuat database TESTDB.

  • Anda telah membuat tabel EMPLOYEE di TESTDB.

  • Tabel ini memiliki bidang FIRST_NAME, LAST_NAME, AGE, SEX dan INCOME.

  • ID pengguna "testuser" dan kata sandi "test123" disetel untuk mengakses TESTDB.

  • Pastikan Anda telah mendownload file jar mysql dan menambahkan file tersebut ke classpath Anda.

  • Anda telah melalui tutorial MySQL

Koneksi Database

Untuk membuat koneksi database, pertama-tama Anda perlu Rexxsql DLL dan kemudian menggunakan fungsi SQLConnect untuk membuat koneksi ke database. Sintaks dan contoh bagaimana hal ini dapat dicapai diberikan di bawah ini.

Sintaksis

SQLConnect(cname,username,password,dbname)

Parameter

  • cname - Ini adalah nama yang diberikan untuk koneksi.

  • username - Nama pengguna untuk terhubung ke database.

  • password - Kata sandi untuk terhubung ke database.

  • dbname - Skema database yang akan disambungkan.

Nilai Kembali

Nilai yang sama dengan 0 berarti koneksi database berhasil.

Contoh

/* Main program */ 
Call RxFuncAdd 'SQLLoadFuncs', 'rexxsql', 'SQLLoadFuncs' 
Call SQLLoadFuncs 
say SQLConnect(c1,' testuser ',' test123','testdb')

Output dari program di atas akan seperti gambar di bawah ini.

0

Membuat Tabel Database

Langkah selanjutnya setelah menghubungkan ke database adalah membuat tabel di database kita. Contoh berikut menunjukkan cara membuat tabel di database menggunakan Rexx. Semua perintah di Rexx SQL dijalankan dengan menggunakan fungsi SQLCommand.

Sintaksis

SQLConnect(sname,statement)

Parameter

  • sname - Ini adalah nama yang diberikan pada pernyataan untuk dieksekusi.

  • statement - Ini adalah pernyataan yang perlu dijalankan terhadap database.

Nilai Kembali

Nilai yang sama dengan 0 berarti perintah berhasil.

Contoh

/* Main program */ 
Call RxFuncAdd 'SQLLoadFuncs', 'rexxsql', 'SQLLoadFuncs' 
Call SQLLoadFuncs 

if SQLConnect(c1,'testuser','test123','testdb') == 0 then say 'Connect Succedded' 
if SQLCommand(u1,"use testdb") == 0 then say 'Changed database to testdb' 
   sqlstr = 'create table employee (first_name char(20) not null, last_name 
   char(20),age int, sex   
   char(1), income float)' 

if SQLCommand(c2,sqlstr) == 0 then say 'Employee table created'

Output dari program di atas akan seperti gambar di bawah ini.

Connect Succedded 
Changed database to testdb 
Employee table created

Operasi pada Tabel Database

Jenis operasi berikut ini paling sering dilakukan pada tabel database.

Sr.No. Operasi & Deskripsi
1 Sisipkan Operasi

Ini diperlukan ketika Anda ingin membuat rekaman Anda ke dalam tabel database.

2 Baca Operasi

Operasi BACA pada database apa pun berarti mengambil beberapa informasi berguna dari database.

3 Perbarui Operasi

Operasi UPDATE pada database apa pun berarti memperbarui satu atau beberapa rekaman, yang sudah tersedia dalam database.

4 Hapus Operasi

Operasi DELETE diperlukan saat Anda ingin menghapus beberapa rekaman dari database Anda.

5 Menutup Koneksi

Perintah berikut dapat digunakan untuk menutup koneksi ke database.

Melakukan Transaksi

Transaksi adalah mekanisme yang memastikan konsistensi data. Transaksi memiliki empat properti berikut -

  • Atomicity - Entah transaksi selesai atau tidak ada yang terjadi sama sekali.

  • Consistency - Sebuah transaksi harus dimulai dalam keadaan yang konsisten dan membiarkan sistem dalam keadaan yang konsisten.

  • Isolation - Hasil antara transaksi tidak terlihat di luar transaksi saat ini.

  • Durability - Setelah transaksi dilakukan, efeknya tetap ada, bahkan setelah kegagalan sistem.

Berikut adalah contoh sederhana tentang cara mengimplementasikan transaksi.

Contoh

/* Main program */ 
Call RxFuncAdd 'SQLLoadFuncs', 'rexxsql', 'SQLLoadFuncs' 
Call SQLLoadFuncs 

if SQLConnect(c1,'testuser','test123','testdb') == 0 then say 'Connect Succedded' 
if SQLCommand(u1,"use testdb") == 0 then say 'Changed database to testdb' 
   sqlstr = "DELETE FROM EMPLOYEE WHERE AGE > 20" 

if SQLCommand(c2,sqlstr) == 0 then 
if sqlcommit() == 0 then say committed

Output dari program di atas akan seperti gambar di bawah ini.

Connect Succedded 
Changed database to testdb 
COMMITTED

Komit Operasi

Operasi komit adalah yang memberi tahu database untuk melanjutkan operasi dan menyelesaikan semua perubahan ke database. Dalam contoh kami di atas, ini dicapai dengan perintah berikut.

Sqlcommit()

Operasi Rollback

Jika Anda tidak puas dengan satu atau beberapa perubahan dan Anda ingin mengembalikan perubahan tersebut sepenuhnya, gunakan metode rollback. Dalam contoh kami di atas, ini dicapai dengan perintah berikut.

SqlRollback()

Perangkat genggam telah berkembang pesat dan Rexx memiliki banyak cara untuk menjalankannya di perangkat ini. Rexx memiliki dukungan untuk Pocket PC, perangkat Palm, PDA dan perangkat telepon pintar lainnya. Keuntungan dari Rexx untuk bekerja pada platform ini adalah bahwa Rexx benar-benar merupakan sistem pemrograman ringan yang hanya berjalan dalam rentang beberapa kilobyte. Oleh karena itu, menjalankan program Rexx di perangkat ini menjadi lebih mudah.

Rexx pada perangkat genggam dapat berjalan dalam mode berikut -

  • Mode pertama adalah node asli yang dijalankan langsung di sistem operasi itu sendiri. Keuntungan menjalankan dalam mode ini adalah lebih cepat karena dijalankan langsung dari sistem operasi.

  • Mode selanjutnya ada di atas DOS atau program emulator di atas perangkat genggam. Keuntungan dari mode ini adalah dapat dijalankan pada semua jenis sistem operasi selama emulator berjalan pada sistem operasi tersebut.

Rexx Interpreters untuk berbagai kategori perangkat genggam ditunjukkan di bawah ini.

  • Windows CE - Brexx
  • Palm OS - Rexx untuk Palm OS
  • OS Symbian - Regina

Untuk emulator DOS, langkah-langkah berikut perlu dilakukan -

Step 1- Pertama adalah mengunduh PocketDOS yang merupakan emulator DOS populer. Ini dirancang untuk berjalan di banyak sistem operasi dan memiliki dukungan untuk layar VGA umum serta port serial dan paralel.

Step 2 - Langkah selanjutnya adalah mengunduh file BRexx untuk DOS 16-bit ke PC Windows.

Step 3 - Langkah terakhir adalah menggunakan ActiveSync untuk menyinkronkan program Rexx ke perangkat genggam.

Ada beberapa produk berbasis DOS komersial lainnya yang tersedia. XTM adalah produk yang termasuk dalam kategori ini. Fitur produk ini adalah sebagai berikut -

  • Dukungan untuk CPU 80186 dan set instruksi.

  • Ini semacam bekerja dari kode BIOS untuk kinerja yang lebih baik.

  • Ini dapat memberikan emulasi untuk co-processor Math, versi 8087 MPU

  • Ini menyediakan akses ke port serial.

  • Ini mendukung berbagai bahasa seperti Inggris, Prancis, dan Jerman.

Salah satu aspek kunci dari setiap bahasa pemrograman adalah kinerja aplikasi. Praktik khusus perlu dilakukan untuk memastikan bahwa kinerja aplikasi tidak terhambat. Mari kita lihat beberapa pertimbangan yang dijelaskan dalam langkah-langkah untuk pemahaman yang lebih baik -

Step 1- Cobalah untuk mengurangi jumlah instruksi - Dalam Rexx setiap instruksi membawa biaya tambahan. Jadi cobalah untuk mengurangi jumlah instruksi dalam program Anda. Contoh instruksi yang dapat didesain ulang ditunjukkan di bawah ini.

Alih-alih menggunakan beberapa pernyataan if else, seseorang dapat menggunakan pernyataan parse. Jadi seperti pada program berikut, alih-alih memiliki kondisi if untuk setiap nilai, dan mendapatkan nilai dari kata1, kata2, kata3 dan kata4, gunakan pernyataan parse.

/* Main program */  

parse value 'This is a Tutorial' with word1 word2 word3 word4 
say "'"word1"'" 
say "'"word2"'" 
say "'"word3"'" 
say "'"word4"'"

Step 2- Cobalah untuk menggabungkan beberapa pernyataan menjadi satu pernyataan. Contohnya ditunjukkan di bawah ini.

Misalkan jika Anda memiliki kode berikut yang melakukan tugas untuk - a and b dan meneruskannya ke metode yang disebut proc.

do i = 1 to 100 
   a = 0 
   b = 1 
   call proc a,b 
end

Anda dapat dengan mudah mengganti kode yang diberikan di atas dengan kode berikut menggunakan pernyataan parse.

do i = 1 for 100 
   parse value 0 1 with 
   a, 
   b, 
   call proc a,b 
end

Step 3 - Coba ganti do..to loop dengan do..for loopsedapat mungkin. Ini biasanya direkomendasikan ketika variabel kontrol diiterasi melalui loop.

/* Main program */ 
do i = 1 to 10 
   say i 
end

Program di atas harus diganti dengan program berikut.

/* Main program */ 
do i = 1 for 10 
   say i 
end

Step 4- Jika memungkinkan, hapus kondisi for dari loop do seperti yang ditunjukkan pada program berikut. Jika variabel kontrol tidak diperlukan, maka masukkan saja nilai akhir di do loop seperti yang ditunjukkan di bawah ini.

/* Main program */ 
do 10 
   say hello 
end

Step 5 - Dalam a select clause, apa pun yang Anda rasakan adalah kondisi terbaik yang akan dievaluasi harus didahulukan when clause. Jadi dalam contoh berikut, jika kita tahu bahwa 1 adalah opsi yang paling sering, kita masukkanwhen 1 clause sebagai klausa pertama dalam pernyataan pilih.

/* Main program */ 
select 
   when 1 then say'1' 
   when 2 then say'2' 
   otherwise say '3' 
end

Setiap programmer ingin program mereka menjadi yang terbaik dalam hal kualitas dan efisiensi. Berikut ini adalah beberapa praktik pemrograman terbaik atau petunjuk ketika menulis program Rexx yang dapat membantu seseorang mencapai tujuan ini.

Petunjuk 1

Gunakan perintah alamat sebelum Anda mengeluarkan perintah apa pun ke sistem operasi atau prompt perintah. Ini akan membantu Anda mendapatkan ruang alamat sebelumnya di memori dan menyebabkan program Anda berjalan lebih efisien.

Contoh dari perintah alamat ditampilkan di bawah ini.

Contoh

/* Main program */ 
address system dir

Output dari perintah ini adalah sebagai berikut, tetapi dapat bervariasi dari sistem ke sistem.

Volume in drive H is Apps 
Volume Serial Number is 8E66-AC3D  
Directory of H:\  
06/30/2016  01:28 AM    <DIR>          Apps 
07/05/2016  03:40 AM               463 main.class 
07/07/2016  01:30 AM                46 main.nrx 
07/07/2016  01:42 AM                38 main.rexx 
3 File(s)            547 bytes 
Dir(s)  313,085,173,760 bytes free

Petunjuk 2

Pastikan semua perintah ke sistem operasi dalam huruf besar dan dalam tanda kutip jika memungkinkan.

Contoh yang sama ditunjukkan di bawah ini.

Contoh

/* Main program */ 
options arexx_bifs 
say chdir('\REXXML100') 
say directory()

Saat kita menjalankan program di atas, kita akan mendapatkan hasil sebagai berikut.

0 
D:\rexxxml100

Petunjuk 3

Hindari membuat blok komentar besar seperti yang ditunjukkan pada program berikut.

Contoh

/******/ 
/* */ 
/* */ 
/* */ 
/******/ 
/* Main program */ 
address system dir

Petunjuk 4

Gunakan pernyataan Parse untuk menetapkan nilai default. Contoh yang sama ditunjukkan di bawah ini.

Contoh

parse value 0 1 with 
a, 
b

Petunjuk 5

Gunakan pernyataan "Left (var1,2)" jika memungkinkan, bukan pernyataan "substr (var1,1,2)".

Petunjuk 6

Gunakan pernyataan "Right (var1,2)" jika memungkinkan, bukan pernyataan "substr (var1, length (var1), 2)".

Untuk menggunakan antarmuka pengguna grafik yang tersedia di Rexx, seseorang perlu menggunakan 2 paket, yang satu disebut ActiveTcl dan yang lainnya adalah Rexxtkpaket. Bersama dengan 2 paket ini, seseorang dapat mendesain formulir normal yang dapat memiliki tombol dan kontrol lain pada formulir.

Pengaturan Lingkungan

Hal pertama yang harus dilakukan adalah pengaturan lingkungan. Mari kita lakukan langkah-langkah berikut untuk menerapkan lingkungan.

Step 1 - Unduh paket Activetcl dari situs web berikut - https://www.activestate.com/activetcl

Step 2- Langkah selanjutnya adalah memulai penginstalan ActiveTCl. Klik tombol Next di layar untuk melanjutkan.

Step 3 - Terima Perjanjian Lisensi dan klik tombol Berikutnya.

Step 4 - Pilih lokasi untuk instalasi dan klik tombol berikutnya.

Step 5 - Pilih lokasi untuk memasang demo dan klik tombol Berikutnya.

Step 6 - Klik tombol Berikutnya untuk melanjutkan penginstalan.

Step 7 - Klik tombol Selesai untuk menyelesaikan penginstalan.

Step 8 - Langkah selanjutnya adalah mengunduh perangkat lunak Rexxtk dari tautan berikut - https://sourceforge.net/projects/rexxtk/

Step 9- Klik dua kali file penginstal dari tautan di langkah sebelumnya untuk memulai penginstalan. Klik tombol selanjutnya untuk melanjutkan.

Step 10 - Di layar berikutnya, klik tombol Ya untuk menyetujui Perjanjian Lisensi.

Step 11 - Di layar berikutnya, pilih lokasi penginstalan dan klik tombol Berikutnya.

Step 12 - Pilih lokasi folder Program dan klik tombol berikutnya.

Setelah penginstalan selesai, sekarang kita dapat mulai dengan memprogram GUI di Rexx.

Program Dasar

Mari kita lihat bagaimana kita dapat merancang program dasar sederhana dengan Rexx dalam format antarmuka pengguna grafis.

Contoh

/* Main program */ 
call RxFuncAdd 'TkLoadFuncs','rexxtk','TkLoadFuncs' 
call TkLoadFuncs 
do forever 
   interpret 'Call' TkWait() 
end 
call TkDropFuncs 
exit 0

Hal-hal berikut perlu diperhatikan tentang program di atas -

  • Pustaka Rexxtk dan semua fungsinya dimuat menggunakan perintah RxFuncAdd.

  • Perulangan do forever akan membuat jendela tetap terbuka dan akan menunggu input pengguna.

  • Setelah input pengguna terdeteksi, program akan keluar.

Ketika program di atas dijalankan, Anda akan mendapatkan output sebagai berikut.

Membuat Menu

Menu dibuat dengan bantuan fungsi TkMenu dan TkAdd. Sintaks dari fungsi-fungsi ini diberikan di bawah ini.

Sintaksis

TkMenu(widgetname,options,0)

Parameter

Widgetname - Nama untuk diberikan ke menu.

Opsinya dapat berupa salah satu dari yang berikut -

  • selectcolor - jika kotak centang atau tombol radio digunakan sebagai opsi menu, maka opsi ini menetapkan warna yang akan dipilih saat opsi menu apa pun dipilih.

  • tearoff - Opsi ini digunakan untuk menambahkan sub menu ke menu utama.

  • title - String yang perlu digunakan untuk memberi judul pada jendela.

Nilai Kembali

Sebuah pegangan ke menu dibuat.

Contoh

/* Main program */ 
call RxFuncAdd 'TkLoadFuncs','rexxtk','TkLoadFuncs' 
call TkLoadFuncs 

menubar = TkMenu('.m1') 
filemenu = TkMenu('.m1.file','-tearoff', 0) 
call TkAdd menubar, 'cascade', '-label', 'File', '-menu', filemenu 
call TkAdd filemenu, 'command', '-label', 'Open...', '-rexx', 'getfile' 
call TkConfig '.', '-menu', menubar 

do forever 
   interpret 'Call' TkWait() 
end 
call TkDropFuncs 
exit 0

Hal-hal berikut perlu diperhatikan tentang program di atas -

  • Bar menu dibuat menggunakan fungsi TkMenu. Parameter 'tearoff' berarti kita perlu membuat submenu yang akan dilampirkan ke menu utama.

  • Kami kemudian menambahkan 2 opsi menu yang disebut File dan Buka menggunakan fungsi TkAdd.

Ketika program di atas dijalankan, Anda akan mendapatkan output sebagai berikut.

Reginald adalah penerjemah Rexx lain yang dikembangkan oleh Jeff Glantt dan memiliki beberapa penyesuaian tentang bagaimana program Rexx dapat dijalankan. Di bagian ini, kita akan melihat bagaimana mendapatkan pengaturan Reginald dan menjalankan beberapa program Rexx di dalamnya.

Pengaturan Lingkungan

Langkah pertama adalah pengaturan lingkungan yaitu mengunduh file Reginald. Ini dapat dilakukan dari tautan situs web berikut -http://www.manmrk.net/tutorials/rexx/Reginald/win32/rxusrw32.htm

Setelah unduhan selesai dan Anda meluncurkan penginstal, layar berikutnya akan memungkinkan Anda memilih lokasi pemasangan.

Klik tombol Instal untuk melanjutkan.

Setelah selesai, sekarang kita dapat mulai menjalankan satu program sampel di interpreter Reginald. Buat program sederhana seperti yang ditunjukkan di bawah ini.

/* Main program */ 
say 'Hello'

Kemudian jalankan perintah berikut -

RxLaunch.exe main.rexx

Anda kemudian akan mendapatkan output berikut. Program ini sekarang akan berjalan di interpreter Reginald.

Fungsi Lain Tersedia

Terlepas dari perintah Rexx normal, Reginald memiliki beberapa perintah khusus yang dibuat khusus untuk sistem operasi Windows. DriveMap adalah salah satu perintah tersebut -

DriveMap

Fungsi ini memberikan informasi tentang drive.

Syntax -

Drivemap(,options)

Parameters -

Options - Ini adalah daftar kata kunci yang dapat digunakan untuk mendapatkan berbagai informasi pada drive komputer lokal.

Return Value

Nilai string yang memiliki informasi di drive.

Example -

/* Main program */ 
say 'Drives on system : ' DriveMap(,'FIXED')

Jika program di atas dijalankan, Anda akan mendapatkan output sebagai berikut. Output ini tergantung dari sistem ke sistem.

List of disk drives :  C:\ D:\

Rexx memiliki fasilitas untuk bekerja dengan server web juga. Yang paling umum adalah web server apache. Untuk menggunakan Rexxw dengan server web Apache, Anda harus mengunduh modul Rexx dari tautan berikut -https://sourceforge.net/projects/modrexx/?source=typ_redirect

Setelah selesai, pastikan untuk menambahkan modul mod Rexx ke jalur kelas.

Baris berikut perlu ditambahkan dan dimodifikasi ke file konfigurasi Apache.

Baris berikut perlu ditambahkan ke akhir yang sesuai -

  • httpd.conf daftar LoadModule.
  • LoadModule rexx_module modules / mod_rexx.dll

Baris berikut harus ditambahkan di akhir http.conf mengajukan.

  • AddType application / x-httpd-rexx-script .rex .rexx

  • AddType application / x-httpd-rexx-rsp .rsp

  • Tambahkan ini untuk dukungan Halaman Server REXX

  • RexxRspCompiler “c: / Program Files / Apache Group / Apache2 / bin / rspcomp.rex”

Setelah perubahan di atas dilakukan, Anda perlu mematikan dan memulai ulang server web apache Anda.

Baris di atas juga memungkinkan Anda untuk memiliki halaman server berbasis Rexx seperti halaman server Java. Anda dapat menambahkan kode Rexx langsung ke halaman html.

Contohnya ditunjukkan di bawah ini -

<p>The current date and time is 
   <?rexx 
      /* Inserting the rexx statement */ 
      say date() time() 
   ?>
</p>

Ketika halaman server berbasis Rexx dijalankan, hal-hal berikut dilakukan -

  • Pertama, file sementara dibuat.

  • Kemudian kompiler Server Rexx mengkompilasi file tersebut menjadi program Rexx dan menempatkannya di file sementara.

  • Langkah selanjutnya adalah menjalankan program Rexx.

Akhirnya, file sementara dihapus.