HOME

TheInfoList



OR:

ARexx is a
Rexx Rexx (restructured extended executor) is a high-level programming language developed at IBM by Mike Cowlishaw. Both proprietary and open-source software, open source Rexx interpreter (computing), interpreters exist for a wide range of comput ...
interpreter for Amiga, written in 1987 by William S. Hawes, with a number of Amiga-specific features beyond standard Rexx. An ARexx script can communicate with software that implements an ''ARexx port''. An Amiga application can define a set of commands and functions for ARexx to address, thus making the capabilities of the software available to an ARexx script. Several applications support running an ARexx script as a macro. An ARexx script can execute commands and functions in multiple applications which allows a script to integrate the functionality of the applications. For example, an ARexx script could extract data from a
database In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
, insert the data into a
spreadsheet A spreadsheet is a computer application for computation, organization, analysis and storage of data in tabular form. Spreadsheets were developed as computerized analogs of paper accounting worksheets. The program operates on data entered in c ...
to perform calculations on the data, then insert tables and charts based on the results into a
word processor A word processor (WP) is a device or computer program that provides for input, editing, formatting, and output of text, often with some additional features. Early word processors were stand-alone devices dedicated to the function, but current word ...
document. ARexx allows a script to communicate with applications that are "ARexx compatible" able to receive commands from ARexx and execute them. Notable examples include: the ''MicroFiche Filer'' database application provides extensive ARexx commands, the ''Textra'' editor supplied with JForth provides an integrated programming environment, and the ''AmigaVision multimedia presentation'' application can control other programs via ARexx. As in standard Rexx, ARexx uses ''typeless'' data representation. Other programming languages distinguish types such as
integer An integer is the number zero (0), a positive natural number (1, 2, 3, ...), or the negation of a positive natural number (−1, −2, −3, ...). The negations or additive inverses of the positive natural numbers are referred to as negative in ...
, floating point, string, but Rexx treats all data as text (string). This makes writing code easier, but leads to runtime inefficiency and errors. As is often the case in dynamically scoped languages, variables are not declared before using them. They are created on first use. ARexx provides built-in commands and access to its host Amiga
library A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
(rexxsyslib.library) as well as other libraries and functions. An Amiga program with an ARexx port can serve its functionality to an ARexx script. An ARexx script can invoke other ARexx scripts.


History

ARexx was created in 1987, developed for Amiga by William S. Hawes. It is based on the Rexx language described by Mike Cowlishaw in the book ''The REXX Language: A Practical Approach to Programming''. ARexx was included by Commodore with
AmigaOS AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions ...
2.0 in 1990, and has been included with all subsequent AmigaOS releases. This later version of ARexx follows the official Rexx language closely; Hawes was later involved in drafting the
ANSI The American National Standards Institute (ANSI ) is a private nonprofit organization that oversees the development of voluntary consensus standards for products, services, processes, systems, and personnel in the United States. The organiz ...
standard for Rexx. From the ARexx manual:
ARexx was developed on an Amiga 1000 computer with 512k bytes of
memory and two floppy disk drives. The language prototype was
developed in C using Lattice C, and the production version was written
in assembly-language using the Metacomco assembler. The documentation
was created using the TxEd editor, and was set in
TeX Tex, TeX, TEX, may refer to: People and fictional characters * Tex (nickname), a list of people and fictional characters with the nickname * Tex Earnhardt (1930–2020), U.S. businessman * Joe Tex (1933–1982), stage name of American soul singer ...
using AmigaTeX.
This is a 100% Amiga product.
As ARexx is written in 68000
assembly language In computing, assembly language (alternatively assembler language or symbolic machine code), often referred to simply as assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence bet ...
, it cannot function at full speed with PPC CPUs of MorphOS, a more modern descendant of Amiga. ARexx has not been rewritten for them and is still missing from MorphOS. William Hawes is no longer involved in development of Amiga software and no firm is financing new versions of ARexx. Notwithstanding, the existing version of ARexx continues to be used, although not distributed with MorphOS.


Examples


Implement new capabilities

If a user is using a program which builds animations by joining various bitmap image files but which lacks image processing capabilities, they could write an ARexx script which performs these actions: #ARexx locates the image files in their directories #ARexx loads first image #ARexx loads paint program #The image is loaded into paint program which performs modifications to file #The modified image is stored into another directory #ARexx repeats procedure on any image in the directory #The paint program is closed and the animation program is loaded #The animation is built #The animation is saved in its directory #The animation program is closed


Automate repetitive tasks

EqFiles.rexx is a well-known example of a simple ARexx script written to automate repetitive and boring procedures. This script uses the ALeXcompare program to compare files, and then finds all duplicates in a set of files and returns output by highlighting any results in a different color.


Extend AmigaOS

A significant value of ARexx is extending AmigaOS by adding capabilities it lacks. For example, a ARexx program could display a warning message or play an audio alert sound if a certain Amiga program stops, faults or has finished its scheduled job. The following script is a ARexx script that displays warnings depending on events: /* 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"


See also


References

;Notes * *


External links


Beginning ARexx Tutorial

Command and Function Reference

Design Tool
{{DEFAULTSORT:Arexx Amiga APIs Amiga development software AmigaOS 4 software AmigaOS MorphOS Scripting languages CBM software Assembly language software Rexx Inter-process communication