|
ARexx is the Amiga version of scripting language REXX by IBM. It has been not licensed from IBM, but it is a version written by Bill Hawes who ported REXX to the Amiga, with many special Amiga features. The Amiga is a family of home/personal computers originally developed by Amiga Corporation as an advanced game console. ...
REXX (REstructured eXtended eXecutor) is an interpreted programming language which was developed at IBM. It is a structured high-level programming language which was designed to be both easy to learn and easy to read. ...
International Business Machines Corporation (IBM, or colloquially, Big Blue) NYSE: IBM (incorporated June 15, 1911, in operation since 1888) is headquartered in Armonk, NY, USA. The company manufactures and sells computer hardware, software, and services. ...
Technically speaking ARexx is an interpreted language for scripting. This means it should be already active in memory in order to "interpret and run" any program loaded by the users. A program written in this language (called either "script" or "macro") could be largely applied to expand features and functionality of an Operating System or also to increase the features and capabilities of a productivity program. This article or section should be merged with script programming language In computer applications, a script, roughly speaking, is a computer program that automates the sort of task that a user might otherwise do interactively at the keyboard. ...
A macro in computer science is an abstraction, whereby a certain textual pattern is replaced according to a defined set of rules. ...
In computing, an operating system (OS) is the system software responsible for the direct control and management of hardware and basic system operations. ...
Because of its easiness of use ARexx is strongly recommended to learn fundamental programming techniques. Although of its simplicity ARexx also has a place in the hearts of experienced programmers because many use ARexx due to its elasticity and integration with the AmigaOS. End users of a productivity program could find in ARexx a valuable tool which can help them in personalizing their work environment. ARexx is also useful in exchanging data and files between programs in order to take advantage of features that are present in one application and absent in another, or even literally "borrow" any feature from any program while using another one. Finally, the end user could also benefit of the capability of ARexx in built automated macros to perform scheduled work even in his absence and avoid repetitive procedures.
History
ARexx was born in 1987, being developed for the Amiga by William Hawes. It is based on the REXX language described by Mike Cowlishaw in the book "The REXX Language: A Practical Approach to Programming", edited by Prentice-Hall in 1985. Programmers and users evaluated it positively and responded to the enormous success of this script language in the Amiga scene. So ARexx was included by Commodore into AmigaOS 2.0 in 1990. It follows official REXX language very closely. Mike Cowlishaw is an IBM Fellow based at IBM UKâs Warwick location, a Visiting Professor at the Department of Computer Science at the University of Warwick, and an elected Fellow of the Royal Academy of Engineering (roughly the equivalent of the NAE in the USA). ...
Pearson Prentice Hall is part of a publishing institution that dates back to 1725 when Thomas Longman published the first book typeset by Benjamin Franklin. ...
Commodore is the commonly used name for Commodore International, a West Chester, Pennsylvania based electronics company who was a vital player in the personal computer field. ...
Almost any modern Amiga program has currently an ARexx port and could exchange data with other programs or use ARexx to automate its internal functions and procedures. Even the Workbench graphical user interface (GUI) of Amiga shares an ARexx port, and the commands of AmigaDOS have a strong compatibility with ARexx. AmigaOS is the default native operating system of the Amiga and AmigaOne personal computers. ...
A graphical user interface (or GUI, sometimes pronounced gooey) is a method of interacting with a computer through a metaphor of direct manipulation of graphical images and widgets in addition to text. ...
AmigaOS is the default native operating system of the Amiga and AmigaOne personal computers. ...
Development of ARexx is currently stopped because ARexx is written in 680x0 Assembly, and it must be rewritten in order to function properly with new PPC CPUs1. Also William Hawes is no more involved in development of Amiga programs because of some quarrels he had with the passed Commodore Inc about the licensing of ARexx. Not to mention the fact there is no Amiga related firm who has interest in financing for new versions of ARexx. Notwithstanding this fact the existing version of ARexx performs flawlessly and has no major bug, so none has yet upgraded it. Some times ago Amiga programmers and users have experienced positively with Python programming language. Python is raising recently the interest by Amiga community and is one of the major candidates in succeeding ARexx as integrated language for scripting and expanding functions of OS in AmigaOS environment. Python is an interpreted programming language created by Guido van Rossum in 1990. ...
Characteristics ARexx is a programming language that can communicate with other applications. Using ARexx, for example, one could request data from a database application and send it to a spread sheet application. To support this facility, an application must be "ARexx compatible" by being able to receive commands from ARexx and execute them. A database program might have commands to search for, retrieve, and save data. MicroFiche Filer is an example of a database program with an extensive ARexx command set. A text editor might have ARexx commands corresponding to its editing command set. For example The Textra editor supplied with JForth has an extensive ARexx command set, which can be used with JForth to provide an 'integrated programming environment' . AmigaVision, the multimedia presentation program also has ARexx port built in and can control other programs using ARexx. ARexx can increase the power of a computer by combining the capabilities of various programs. Because of the wide acceptance of ARexx, Commodore includes it with Version 2.0 of AmigaDOS. If you are an Amiga programmer who is developing an application, it is highly recommended that you provide ARexx compatibility, if appropriate, by inserting an ARexx port in your program. ARexx uses "typeless" data representation. Other programming languages made distinctions between integers, floating point numbers, strings, characters, vectors, etcetera. On the contrary ARexx deals with all data as strings of characters, making more simple to write expressions and algorithms. It is not necessary to declare a variable before using it. This feature is typical in a large number of interpreted languages, i.e. the languages in which dynamic data (data that exist during program execution) is exclusive matter of the interpreter. Being an interpreted language ARexx has no necessity of any complicated compiler, linker, debugger or development environment. It has a very simple internal mechanism of execution "step by step" of its programs, so anyone could control how execution is performed and correct errors right on the fly. This feature is very useful to increase speed of development of any program and is invaluable for any non experienced user. All ARexx scripts have to deal with a very complete and sophisticated error handling system which is monitoring any error could occur during execution. The user could choose in any situation to suspend and resume the execution of the program. ARexx interpreter gives to the user a simple but powerful system to handle resources. It frees the memory allocated for the variables when an ARexx program ends its execution, it closes open files and the libraries that the program used, etcetera. ARexx is an imperative language, i.e. it is based on the execution of instructions in a sequence. It is oriented to a structured, procedural and modular programming. ARexx command set is very poor, but side to the commands are lying the functions of its Amiga reference library (rexxsyslib.library). It is also very simple to add other libraries to ARexx base library or add any new function that could help the programmer. ARexx scripts could also be invoked as functions into other ARexx scripts. Any Amiga program which has an ARexx port built into, could be used by ARexx to pick any function, procedure or feature and share it with ARexx scripts. This means that ARexx deals with any program which has an ARexx port built into as an entire new set of available commands. Finally, ARexx has been built to integrate with the Amiga OS system in order to deal at its best with Amiga preemptive multitasking capabilities.
Examples of ARexx solutions to common problems Example 1: Lack of features in a program and repetitive procedures If end user is using a program which build animations joining various bitmap image files but has not image processing capabilities, then he could write an ARexx script which performs these actions: ARexx locates files in their directory/directories -> ARexx loads first image -> it loads paint program -> image is loaded into paint program which performs modifications to file -> modified image is stored into another directory -> ARexx repeats procedure on any image in the directory -> paint program is closed and animation program is loaded -> animation is built -> animation is saved in its directory -> animation program is closed -> user could be prompted that job is finished -> end of ARexx script
Example 2: Avoiding repetitive procedures EqFiles.rexx V2.2 is a common example of a simple ARexx script written by an experienced Amiga user2 who wants to automate repetitive and boring procedures and has enough skills and knowledge of AmigaOS to write such an ARexx program. This REXX script uses another program present in aminet repository ALeXcompare3 which compares files. EqFiles finds all duplicates in any set of files and returns output by highlighting any results in a different color.
Example 3: Expand AmigaOS capabilities One of the main features of ARexx is the fact it could expand the capabilities of an OS (AmigaOS) by adding some procedures the OS lacked. For example a simple ARexx program could be written to print a warning message on the screen of the monitor, or play an audio alert signal if a certain Amiga program stops, faults or has finished its scheduled job. Here follows an example of the structure of a very minimal ARexx script (not correct or debugged and with no arguments and no calls to AmigaDOS) which should print on the monitor screen some alarm warnings depending on an event that could take place or not. Alarm.rexx /* Alarm.rexx */ ARG event IF event = 0 THEN EXIT IF event = 1 THEN SAY "Program has ended unexpectedly" IF event = 2 THEN SAY "Program has finished its job" IF event = 3 THEN SAY "Cannot find data in selected directory" Example 4: Parse data ARexx can very powerfully be used to parse data and transfer data between a program and another. Because of its internal "typeless" data representation ARexx could be used (for example) to retrieve data from a database file, read any record, avoid internal marks and special characters and send only valid data to a spreadsheet application putting any single invoice of the database in a single cell. [Characteristics section is almost complete. It could be expanded by add some infos regarding main files of ARexx language and about the programs required to a correct installation]
Notes Note 1: ARexx is also included in MorphOS Operating System. The Morphos version of ARexx has been completely rewritten for PPC family of CPUs. Note 2: Incidentally we know the name of the experienced user who wrote this ARexx script because he decided to share his script with the whole Amiga community, so he published it on Aminet internet Amiga repository. He is a well known experienced user in both the Amiga and MorphOS communities: professor Fulvio Peruggi. He is also author of various articles regarding Amiga and MorphOS. Note 3: ALeXcompare was written by the programmer Alex Kazik MorphOS is a mixed proprietary and open source operating system produced by several developers for the PegasosPPC hardware platform, as well as the already existing PowerPC accelerator boards for the Amiga, produced by Phase5. ...
Aminet is the worlds largest archive of Amiga related software and files. ...
External Links |