Pengantar Pemograman REXX Dan kegunaannya

A. Apa itu REXX?

Rexx (Restructured Extended Executor) adalah bahasa lengkap yang dapat digunakan sebagai skrip,bahasa makro, dan bahasa pengembangan aplikasi.Selain itu, bahasa Rexx dapat di gunakan untuk skrip dan makro dalam program apapun yang menggunakan bahasa mesin skrip windows Scripting  Host ActiveX (misalnya VBSscript dan JScript) jika salah satu mesin Rexx diinstal.

Rexx adalah singkatan, itu artinya Restructured Executor,yang mungkin merujuk kita kepada leluhurnya EXEC / EXEC2.Saya bertemu dengannya di sistem operasi VM / SP 3, di mana ia datang untuk mengganti bahasa skrip ini dengan tepat.Kemudian populer di OS / 2,banyak implementasi dan dialek turunan dibuat

                                              

a. Leluhur,Origins,Penulis

 Implementasi bahasa asli memiliki satu penulis seorang karyawan IBM Mike Cowlishaw.Implementasi ini ditulis dalam assembler S / 360
   
Wikipedia percaya bahwa REXX di pengaruhi oleh PL / 1, EXEC dan EXEC2, dan Algol Secara keseluruhan,ya,bahasa ini tidak di ragukan lagi dalam sintaksisnya-pewaris Algol (atau pascal,jika anda mau) Yaitu,loop,blok,dll. 

Konstruksi tidak di kelilingi oleh kurung kurawal, tetapi oleh kata kunci, lakukan /akhiri, misalnya Adapun EXEC dan EXEC2,REXX telah di buat sebagai pengganti mereka,dan mungkin tidak ada hubungannya dengan mereka.Tetapi dibandingkan dengan PL / REXX jauh lebih baik sederhana, dan tujuan bahasanya sangat berbeda.

b. Contoh kode REXX


 /*      1      10 */ = 0 do count = 1  t


 c. Fitur

  • Menurut saya, apa yang paling menarik atau tidak biasa dalam bahasa ini?
 Sintaks bahasa ini cukup gratis,bukan Fortran,tentu saja. Algol dan Pascal paling terlihat. Pada dasarnya secara umum juga.
  • Ada operatot khas pemrograman struktural.
Ada fungsi dan prosedur. Disini, ini sedikit tidak biasa bahwa prosedur menyembunyikan semua variabel dari kode panggilan secara default, tetapi beberapa dari mereka dapat di buat dengan menggunakan konstruksi kunci<variabel daftar>.

Mengetik itu dinamis. Variabel dapat di artikan sebagai string atau sebagai angka, pada saat-saat eksekusi yang berbeda, dan juga mungkin tidak didefinisikan (ini dapat di periksa,meskipun bengkok). Bahkan, bahasa memiliki satu tipe data primtif - string di mana operasi aritmatika dapat di lakukan jika string adlah angka yang benar.

Ini adalah contoh Wikipedia kecil:


say hello /*=> HELLO */ hello = 25

Ini menunjukan bahwa variabel tidak terdefinisi dalam baris pertama (dan terakhir) di hitung dalam namanya dalam huruf kapital. Ini adalah cara untuk memeriksa ketidak pastian.

Pernyataan interpretasi adlah analog dari apa yang sekarang disebut eval. 
Penanganan kesalahan mungkin paling mirip dengan Dasar. 

signal on halt do forefer.../* *

Ini adalah proses penyelesaian program (dengan tombol dari terminal).Selain berhenti, ada "sinyal" lainnya,termasuk,misalnya,sintaks (kesalahan sintaks alam kode yang ditafsirkan) Saya tidak  ingat bahwa saya secara praktis menerapkannya, tetapi cukup logis untuk memeriksa  kebenaran sintaksis, misalnya, apa yan diumpankan ke input interpretasi.

- Itu tidak memiliki ekspresi reguler, seperti yang kita katakan di perl (hampir 10 tahun tersisa sebelum perl namun). Konsep ekspresi reguler muncul sebelumnya, dan tentu saja sudah,katakanlah,utilitas grep sudah ada, Sebagai gantinya, ada operator parse,yang merupakan analog sederhana dari pelanggan reguler,dengan penggantian kelompok menjadi variabel.

parse [origin] [template]

Yaitu kami menganalisis konten sumber (yang bisa berupa argumen untuk fungsi,variabel,ekspresi, dll.)
untuk kepatuhan dengan templat.Templat dapat berisi literal yang memisahkan nilai dan variabel yang menerima nilai dari sumber di antara pemisah ini. Di satu sisi ini tampak seperti grup dalam ekspresi reguler.

 fio = ',' parse va fio firstname '

Ini, tentu saja, jauh lebih sederhana dari pada ekspresi reguler, jika hanya karena tidak ada karakter meta seperti\ d, tidak ada pengulangan dalam bentuk * atau +, tidak ada alternatif, tidak ada yang seperti itu.

-Rexx memiliki API yang memungkinkannya di gunakan sebagai bahasa scripting tidak hanya untuk OS (CMS), tetapi juga  untuk program lain yang mendukung API ini. Yaitu sebenarnya , itu adalah bahasa penulisan DSL. Mungkin salah satu yang pertama. Pada saat yang sama,runtime dapat mengimplementasikan dan menyediakan fungsi atau perintah tambahan kepada interpreter yang tersedia sebagai hasil dari program.

Itu terlihat seperti ini: ketika memulai editor teks XEDIT, ia mencari di suatu tempat disk yang dapat diakses file bernama FROFILE XEDIT,yang berisi skrip REXX.Skrip ini dapat menetapkan tambahan yang tersedia dari XEDIT. Dalam hal makna, hari ini yang paling dekat dengan bashrc,misalnya. Atau analognya dengan vim.
 
Dengan demikian, prosedur dan fungsi REXX yang didefinisikan dalam PROFIL XEDIT dapat menjalankan perintah editor dan mengakses informasi tentang file yang terbuka, termasuk konten file itu sendiri

- Itu tidak memerlukan sintaks khusus untuk mengirimkan perintah ke lingkungan host 
(yaitu,OS,atau, katakanlah,editor teks). Sebagai gantinya, semua ekspresi yang tidak dikenali Rexx di teruskan ke eksekusi jadi, untuk menulis perintah  OS di dalam skrip, cukup dengan melampirkan nya dalam tanda kutip, misalnya;

'List *** (stack'
 
Perintah dapat di bangun dengan menggabungkan konstanta string dan variabel. Simbol operasi penyatuan hanyalah sebuah ruang.

Untuk mentransfer perintah ke aplikasi lain, ada pernyataan alamat.Misalnya,ketika menggunakan editor teks XEDIT  di lingkungan, untuk mengeksekusi bukan perintah XEDIT, tetapi OS (CMS), Anda harus memalukan ini. 

address cms 'List * * *(stack'

CMS menerapkan API untuk mengakses tumpukan OS, yang juga di gunakan Rexx untuk bertukar data. Perintah  di atas mengembalikan daftar file yang dihasilkan ke stack, dari mana script dapat mengambilnya, membaca satu baris sebagai input standar. Dalam beberapa hal, ini mirip dengan pipa Unix, tetapi agak berbeda dari mereka. Pipa masih berupa aliran byte, dan tumpukan dalam CMS adalah kumpulan string Secara umum,ini adalah perbedaan khas antara ideologi Unix dan OS dari IBM, dimana file sebagian besar berorientasi pada string tetap atau variabel (tetap pada saat yang sama diketahui) panjang.

- Sebagai bagian dari API, aplikasi dapat memiliki akses ke variabel skrip Rexx, mereka dapat membaca dan memodifikasinya. Ini adalah cara lain untuk bertukar data.

Aritmatika yang cukup efektif dari akurasi Arbitrer diterapkan. Swenang-wenang - ini berarti misalnya 100 karakter atau lebih beberapa banyak memori yang cukup.

- Manajemen memori - otomatis Meskipun ada,misalnya,operator drop untuk menghapus nilai variabel (array asosiatif atau elemen-elemen nya ), tetapi dalam hal apapun, Anda tidak memiliki bisnis dengan pointer dan ukuran blok.

- Sebagai satu-satunya, tetapi pada saat yang sama struktur data yang sangat universal ada array asosiatif, sangat mirip dengan javascript, misalnya. Yaitu, jika Anda menulis a.1, ini adalah elemen array a dengan kunci 1 jika anda menulis ab, maka ini adalah elemen dengan kunci b.

 Katakanlah prosedur untuk menambahkan kata ke kamus :

add_word: procedure expose dictional 

Variabel kamus dalam fragmen ini adalah array asosiatif kami. Prosedur tidak mengembalikan array ini, tetapi membuatnya dapat diakses dari luar (menggunakan expose). dictionary .0 menyimpan  sejumlah elemen dalam kamus (ini hanya sebuah konvensi, dan seperti yang Anda lihat, kami mengeksekusi sendiri), dictionary. n adalah kata ke-n kampus 

- Bahasa tidak memiliki akses tingkat rendah ke memori atau ke OC API, meskipun pada prinsipnya sangat mungkin untuk menulis  sesuatu yang serupa untuk itu, Saya dapat menyebutkan beberapa contoh ekstensi bahasa, satu di rancang untuk bekerja dengan database SQL/DS (DB2), dan yang kedua - untuk bertukar pesan antara mesin virtual dalam VM / SP . Artinya, segala sesuatu yang Anda dapat mengatur sebagai DSL, pada prinsipnya, dapat diimplementasikan.


Dukungan REXX dalam Aplikasi


Selain CMS  itu sendiri, REXX segera mendukung editor teks XEDIT utama. Itu memungkinkan anda untuk menulis makri di REXX, yang bisa di gantung pada tombol d Fungsi, atau untuk memanggil perintah, baik dari baris perintah atau sebagai apa yang disebut. Perintah "Awalan", yang dimasukan di sebelah baris teks, dan membiarkannya dimanipulasi. Misalnya, perintah d memungkinkan Anda untuk menghapus baris di sebelah yang Anda masukan, ada perintah salin atau pindahkan, dan lainnya. Makro pada REXX dapat, misalnya, mengubah string menjadi huruf besar atau kecil.

Aplikasi kedua yang mendukung bahasa dalam memori saya di sebut DMS ( Display management Sistem for CMS (DMS / CMS)), dan itu adalah alat untuk mengembangkan program interaktif yang terdiri dari panel. Dari REXX dimungkinkan untuk memilih salah satu dari formulir yang telah di tentukan sebelumnya, mengisi bidang-bidang nya dengan nilai, dan menampilkannya di layar. 

Setelah pengguna menekan tombol fungsi, program menerima kotrol kembali, dan Varibel REXX berisi nilai bidang yang di ubah. Analog fungsional terdekat dari DMS yang saya sebut HTML  dan bentuknya. Dan dalam hal kompleksitas (kesederhanaan) pengembangan, ini mungkin bahkan sedikit lebih mudah, meskipun HTML tentu saja menang dalam hal kemampuan ekspresif (misalnya, tidak ada gambar sama sekali dalam DMS, yang dapat di mengerti oleh terminal teks).
 
Aplikasi lain yang layak disebut disebut ISPF. Tapi itu sudah jauh lebih luas dari pada DMS, dan itu lebih seperti lingkungan pengembangan terintegrasi , seperti yang terlihat sekarang, disesuaikan dengan terminal teks. Dan ya, editor teks juga program dalam rexx.
dimulai dengan VM / SP 6, CMS memperkenalkan alat untuk membuat jendela virtual ukuran variabel, pada layar  terminal dan menampilkan teks di dalamnya. API yang sesuai muncul untuk rexx (lebih tepatnya, itu terutama merupakan perpanjangan dari rexx).

Aplikasi yang sangat menarik dari REXX  adalah yang disebut sebagai auto - operator. ini adlah aplikasi yang berjalan di mesin virtual operator OS, yang menerima semua pesan yang biasanya datang ke terminal operator dan memungkinkan mereka di proses oleh perangkat lunak. Penangan perintah - skrip REXX. Jadi misalnya,adalah mungkin untuk memberikan beberapa kemampuan operator, dan pawang (atas nama pengguna istimewa, operator) menjalankan beberapa perintah untuk mereka. Yah, misalnya, saya memasang volume disk atau kaset di sistem.

Tetapi memungkin tidak terbatas pada hal-hal sederhana seperti itu. Misalnya, anda tidak dapat mengirim pesan kepada pengguna jika tidak ada dalam sistem . kirim ke operator otomatis, dan kemudian (setelah menerima pesan bahwa pengguna login) mengirimkannya  kepada siapa diperlukan. sebenarnya, ini adalah implementasi email sederhana dengan skrip REXX kecil.

Dampak Pembangunan 

saya mengatakan bahwa dengan munculnya REEX di VM / SP 3, kami mulai menulis di atasnya bagian penting dari apa yang sebelumnya di tulis misalnya pada PL /1. ini adalah bahasa yang cukup kuat dan pada saat yang sama masih sederhana yang memungkinkan Anda untuk menyusun aplikasi yang relatif besar dengan benar. Pertama - tama, mungkin karena kemampuan integrasinya, ketika itu di gunakan sebagai DSL.

Kemampuan untuk memenuhi permintaan basis data (SQL / DS), menampilkan formulir layar, membaca dan menulis file mencakup bagian penting dari kebutuhan pengembangan aplikasi bisnis.

Jelas, banyak orang menyukai bahasa itu, Dia di OS /2, ada di Amigami, di bawah Windows, dan banyak lagi dimana. Kemudian ada Objek REXX dengan ekstensi objek, dan NetREXX untuk JVM. Yang utama adalah bahwa bahasa ini masih hidup. Dan secara umum, jika saya harus memilih apa yang akan di tulis skrip pad hari ini, maka mempertimbangkan misalnya Rexx, bash, cmd.exe bahasa burung sepenuhnya - saya pasti akan memilih yang pertama. Tetapi di bandingkan dengan bahasa yang sudah lebih baru, seperti Perl, Python, dan banyak lagi, banyak lainnya- semuanya tidak begitu jelas. Katakanlah, gagasan Rexx tentang mentransfer perintah dan variabel ke runtime adalah baik tetapi gagasan, katakan  COM, dengan orientasi objeknya, masih lebih.

Meskipun 40 tahun terakhir, masih digunakan di IBM z OS, dan sebuah buku bahasa, menurut Wikipedia, dirilis baru-baru ini, sekitar 2012.Untuk OS yang berbeda, sangat mungkin untuk mengunduh implementasi langsung dan mencobanya sendiri.




Penulis: Delianda Anggraini (mahasiswa prodi sistem informasi). Fakultas Sains Dan Teknologi UIN Sultan Thaha Saifuddin Jambi




www.z-mainframe.com


1 Komentar

Posting Komentar

Lebih baru Lebih lama