3-5 May 1999
Jacksonville, Florida, U.S.A.
Sponsored by the Rexx Language Association

The 10th International Rexx Symposium for Developers and Users will be held in Jacksonville, Florida, U.S.A. on 3-5 May, 1999. The Symposium program provides a focal point for information about Rexx and a venue for technical interchange among members of the Rexx community.

Please register as soon as possible: http://www.rexxla.org/Symposium/1999/registration.html.

Monday, 1999-05-03

Title: Decimal Arithmetic in Rexx and Java
Speaker: Mike F. Cowlishaw, IBM Fellow and author of Rexx and NetRexx

Title: An Update on Compact Rexx
Speaker: Brian Marks, Formcroft Ltd.

Compact Rexx is ongoing development towards an ANSI standard Rexx implementation. It is coded for fun and nostalgia, on DOS and in Assembler Language. The presentation will quickly summarize last year's presentation to the Symposium, in order to explain how extra analysis of subject programs has led to their faster execution. The well-known REXXCPS program will be demonstrated running at a million clauses per second. At these speeds, programs written in Rexx are faster than programs written in "C", for operations on strings.

Current efforts are devoted to minimizing the size of Compact Rexx itself, the implementation. The approach is to take Rexx code, in particular the code that the ANSI Standard uses in its definition, and use a specially written utility program to convert that into "pseudo-code". Interpretation of that pseudo-code is then made part of the Compact Rexx implementation. Thus when Compact Rexx executes programs in general, and encounters a use of the ABBREV builtin, say, it will run the definition of ABBREV that the writers of the Standard have provided.

By minor modification of the Rexx from the Standard, for example avoiding INTERPRET and SIGNAL, that code can be made more suitable to be heavily analysed, in particular so that some variables can be recognized as "local" - as if the variables had been declared with a local scope in some other language. Less than a byte is needed to identify a local variable amongst all variables. This and other economies mean that the pseudo-code to be incorporated in Compact Rexx amounts to less than four bytes per line of the original Rexx.


PDF of slides

Title: Handling of Dates with REXX and Object REXX
Speaker: Kurt Märker, IBM Object REXX Development, SWSD Boeblingen, Germany
Abstract: When approaching the turn of the millennium, the handling of dates in computer is considered keen in the reliability of applications vital to a lot of today's businesses. This presentation will discuss the problems seen in this area and provide rules helping to avoid them.

Within this Year2000 context, the conversion of dates to appropriate formats is discussed. A number of useful date handling functions for input and output of dates and their coding in REXX are shown. New extensions to the Date function in REXX are presented.

Title: Objectivity: Overcoming OOP Anxiety
Speaker: Chip Davis, Aresti Systems, Rexx Professor
[Comment from Chip: 'And, while it's quite flattering to be billed as a "Rexx Professor", I lack the academic credentials to presume that title. I am merely a "Rexx Trainer", although "Advocate", "Zealot" ("Xelot"?), and of course "Programmer" would be appropriate, too :-) ' ]
Abstract: This presentation introduces the non-Object-Oriented programmer to fundamental OO concepts using terms familiar to procedural language programmers, and a simple "pseud-OO-code" for illustration. If you have wanted to dip your feet in the OO or Java waters but didn't want to drown in a new paradigm, a little "objectivity" will help.

Title: Employing Object Rexx for Teaching MBA Students the OO-paradigm
Speaker: Rony G. Flatscher, Vienna University of Economics and Business Administration ("WU Wien")

At the WU Vienna - with over 20,000 students one of the largest Economics and Business Administration Universities in the world - an experiment was started in the summer semester of 1999 to teach MBA Students the OO-paradigm with the help of Object Rexx.

It is very well known that taught material is learned the best, if the concepts are worked out by the people themselves. Therefore it may make sense to teach OO-concepts to MBA students by the means of exercises using an object-oriented programming language.

Object Rexx was chosen because of its simple syntax which draws from Mike F. Cowlishaw's original work on procedural Rexx, while at the same time implementing a very powerful OO-model.

This talk introduces the detailed syllabus for teaching MBA students the OO-paradigm with the help of Object Rexx.

Title: Demo: New Things in NetRexx
Speaker: Mike F. Cowlishaw, IBM Fellow and author of Rexx and NetRexx

Tuesday, 1999-05-04

Title: Using Rexx to Publish Mainframe Reports to the Web
Speaker: Nash R. Radovanovic, President and CTO of BGD Software Inc., which specializes in mainframe/web integration and enablement.

  • Introduction

    Powered by Rexx. Do not be surprised if you see more of these in years to come. In the land where once ruled Perl, Tcl, Python and other server-side scripting languages, the landscape has changed. In the world of large servers, UNIX, move on, make some space, OS390 is coming. During this process, mainframe Rexx went through the metamorphosis from an obscure, system programmers' magic tool to mainstream, mainframe-server, scripting power house.

    Topics: "Powered by Rexx", "Mainframe ? Dead ?"

  • Opportunity

    Now, all the technology in the world is worth nothing if it is not applied to real life problems. Here is where experience counts. By working a number of years, for various clients in the financial industry, it was impossible for me to overlook huge amounts of data being printed daily. Forest after forest.
    Ecologist or not, the vast amount of printed paper and effort associated with distributing it in a large organization has always been amazing to me. Not to mention time spent by users to search and locate information in huge piles.
    On the other hand, the Internet has emerged as a medium very suitable for publishing all sorts of information. Books, magazines, manuals and tutorials are all being published on-line on a regular basis. Some of the mentioned documents are being published only in "soft" copy. Distribution ease and immediate delivery have driven the demand for this method.
    So, the opportunity for a potential implementation of combined mainframe power and internet flexibility just occurred naturally. A commercial product was born that runs on an MVS/OS390 mainframe that accomplishes that exactly.

    Topics: " Use IT or Lose IT", "Printout Scraping"

  • Our Solution

    Our solution uses Rexx scripts that intercept and convert existing mainframe data/reports from plain text to HTML code, and automatically publish the HTML to a web server.
    Why Rexx, you ask? Simple answer. Rexx is the best tool for the task. It is well integrated to the OS to make it easy to determine input file DCB characteristics, capture system output from JES classes, interface with ftp and so on.
    At the same time, Rexx remains a simple, readable, easy to learn and program, language.
    By utilizing this solution, your company or your client will gain the ability to centrally store and manage reports. You will eliminate the need for huge printouts, double data-entering, microfiche storage, remote printing, etc.
    At the same time, you will cut the distribution time from days to seconds. Access to old reports will be instant as opposed to days required to order a re-print of a report. Your business will emerge from an old-fashioned, slow response, 20th century organization to modern, agile and responsive 21st century enterprise.

    Topics: "The Solution", "Why Rexx ?", "So, how does it work ?", "Any benefits to this ?", "Case study"

Speaker: Mick Trujillo, President MAX Software LLC

MAX/REXX expands the REXX programming language, so that it may be used to solve business problems.

MAX/REXX provides interfaces between REXX and VSAM, SAM, PDS and DB2 data. It uses SQL syntax to access DB2 data and Command Level Syntax to access PDS, SAM files and VSAM data. In addition, the REXX programs can be compiled with the compile feature which reduces system load and protects the source code. Processing data files that have a complex data structure is easy because MAX/REXX uses COBOL, or PL1, layouts to automatically provide access to any field in a SAM or VSAM file. The MAX/REXX search engines may be used while reading data from PDS, SAM, or VSAM files to return precisely the data needed with high-performance. MAX/REXX also provides extensions to REXX such as SORT, Date calculators, Enqueue/Dequeue, and more. With MAX/REXX you can combine rapid application development with high performance data access to solve your automation and business problems.

MAX Software uses MAX/REXX to build many internal products and we "bet the company" on this technology. We have over 200 large high end customers who also depend on this technology.

We have one large application that exceeds 50,000 lines of REXX code (including the MAX/REXX extensions).

We would like to describe this MAX/REXX technology as well as what makes it unique.


Online HTML of all slides
Zip file containing all HTML slides (2mb)

Title: Rexx and Rexx Extensions in a Heterogeneous Environment
Speaker: Mark Hessling, Author of "THE", a Free XEDIT/KEDIT editor and, "Rexx/SQL"; Maintainer of "PDCurses": Public Domain Curses and, "Regina" Rexx interpreter

One of Rexx's great strengths is the ease with which it can be extended by the dynamic loading of external function packages.

This talk will broadly cover several "freeware" external function packages that are currently available for Rexx interpreters on several platforms.

Practical demonstrations of some of the external function packages will also be shown.

Packages to be discussed include, RxSock, RegUtil, Rexx/Curses, Rexx/SQL.


Online HTML of all slides
Zip file containing all HTML slides
Zip file containing all sample programs

Title: Bulk Data Transfer in Network Applications using FTP Services of Object REXX
Speaker: Kurt Märker, IBM Object REXX Development, SWSD Boeblingen, Germany
Abstract: As TCP/IP Socket services provide the basis for distributed client/server processing, the transfer of larger amounts of data turns out not to be handled efficiently enough with REXX. A function library "RxFtp" supporting the well-known FTP functionality in the Object REXX programming environment is intended to overcome this deficiency.

In this presentation, an FTP-framework is presented suitable to write portable Object REXX programs that transfer large amounts of data quite efficiently. A number of useful programming examples are provided and demonstrated.

Title: Dynamic HTML with Object Rexx
Speaker: Kurt Märker, IBM Object REXX Development, SWSD Boeblingen, Germany
Abstract: As the Internet turns out to be a vital medium for communication and business, Internet pages tend to have the need need to represent the most current data, which is dynamically retrieved from the system environment, databases, and other application storage media. This requires to generate Internet pages on the fly using scripting technology. IBM Object REXX is such a versatile scripting language that ideally can serve these needs.

In this presentation, an HTML-framework is shown to solve most of these needs in a heterogeneous system environment, thus making portable "personal" Internet programming a lot easier. On this basis, a number of programming examples are discussed and demonstrated showing the major problems in this area and how they are solved using standard browsers and Internet connection servers.

Title: Rexx/Object Rexx as an ICAPI Extension
Speaker: David W. Ashley

This paper focuses on using Rexx as a viable Web CGI language. In the Windows environment this is not practical because another process must be started in order for the Rexx script to be executed. This is also true in other environments. In order to correct this problem, Rexx must be made an extension of the Web Server.

Using the ICAPI interface is a logical method for achieving this goal. This paper and presentation will demonstrate how to accomplish this goal. Full source code is available for the solution and can be given away freely.

Title: The RexxLA website
Speaker: Tom Brawn
Abstract: This presentation will provide a brief description of the RexxLA website. Information will be provided on the tools used to create and maintain the website and the ISP hosting the website. Summary information on monthly traffic and storage use will also be provided.

The last half of the presentation will be an open discussion of enhancements and changes for the website in 1999.

Wednesday, 1999-05-05

Title: Using NetRexx to write your Host Access Applications
Speaker: Tom Brawn

This presentation will demonstrate using NetRexx to construct a useful host access application.

This application will be built using the Host Access JavaBeans and Host Access Class Libraries provided in IBM's Host On-Demand and Personal Communications products, although the techniques will apply to any client Java emulator product. The demonstration will show how to construct a Java applet/application that will run on a client workstation, access a mainframe host system and deliver data retrieved from the host system for use within the Java applet/application.

Time permitting, a demonstration of this same application written using the ActiveX/OLE Automation support provided by Object Rexx for Windows will be presented.

Title: Introducing intelligible scripting on Linux
Speaker: Ian M. Collier, author of "REXX/imc"

The Linux operating system is gaining popularity in both the commercial and academic environments as a stable and powerful alternative to Microsoft platforms. It is already the platform of choice for large server applications (including Freeserve - one of the UK's largest Internet service providers).

In this talk I shall give a whistle-stop tour of Linux, and - of course - show that it is easy to install and use Rexx. The talk will include brief demonstrations of three of the Rexx packages available for Linux (namely, IBM Object Rexx, Regina Rexx and REXX/imc) and show how Rexx can be used for general programming, CGI scripting, and macro programming for the "THE" editor.


PDF of slides

Title: REXX Utilities for your Windows PC
Speaker: Christian Michel, IBM Object REXX Development, SWSD Boeblingen, Germany

Learn about the powerful utilities you can use from REXX on your Windows platform. IBM's Object REXX supports a set of external function packages that help you to administer your Windows PC, contact databases from different vendors, or to contact other computers on the net.

This presentation will give you an overview of the different function packages available on the Windows platform and how you can use them to cope with your everyday problems easily with REXX. Sample programs are provided for an initial start with these function packages.


PDF of slides
PDF of example programs

Title: Object REXX for Windows News: Windows Scripting and GUI Extensions
Speaker: Christian Michel, IBM Object REXX Development, SWSD Boeblingen, Germany

Recent additions to Object REXX for Windows feature an interface to the Windows Scripting Interface through ActiveX and additional GUI controls.

This presentation will show you how you can automate existing Windows applications such as Lotus Smartsuite products, MS Office products, Lotus Notes, and Internet Explorer through the ActiveX interface for unattended operation.

The second part will show you how the newly added GUI controls such as containers, sliders, and progress bars can be used in your own programs.


PDF of slides
PDF of example programs

Title: ActiveREXX - The Next Generation REXX for Windows 2000
Speaker: Charles R. Berg, Director of Development, The Software Studio, Inc.

From its beginning, REXX has provided the compound variable as a mechanism for supporting multi-dimensional arrays that have the ability to be indexed by arbitrary character strings. In effect, they are content-addressable data structures from which both lists and trees can readily be built. The following code is easily recognized and understood by a REXX programmer.

   Book.Title     = "Gone With the Wind"
   Book.Author    = "Margaret Mitchell"
   Book.Publisher = "MacMillan Publishing Company"

However, this code actually illustrates several language neutral object expressions that reference the "Title", "Author", and "Publisher" properties of an automation object called "Book".

ActiveREXX is an automation controller, and unlike other implementations of automation control, ActiveREXX explicitly takes advantage of this natural semantic parallel between objects and compound variables. To the greatest extent possible, therefore, the syntax for referencing an object is identical to referencing a compound variable.

ActiveREXX fully supports method calls:

   NewFormula = objXL.ConvertFormula("=SUM(R10C2:R15C2)", xlR1C1, xlA1)

property references:

   objCell.Value = "New Value"

compound references:

   objXL.Range("A1:C1").Select().Interior.Pattern = 1

and enumerations on collections:

   enumCells = objXL.Selection.Enumerator
   Do n = 1 to objXL.Selection.Count
       objCell = enumCells.Next
       objCell.Value = n

Another fundamental language concept of REXX is that a REXX program must be able to interact with its environment. ActiveREXX is also an ActiveX Script Engine - therefore, it is totally integrated into any ActiveX script Host, including the Microsoft provided Windows Scripting Host (WSH), Active Server Pages (ASP), and Internet Explorer (IE).

However, Microsoft has designed ActiveX Scripting with the idea of "sand-boxing;" that is, containing a script engine within a script host such that the engine has no exposure outside of that which is provided by the host. There is good reason for this - in this way Internet Explorer is able to prevent a malicious application from having damaging access to the operating system. Unfortunately, a major drawback of sand-boxing is that script engines do not have standard mechanisms for performing certain standard functions, such as file access and I/O. Instead, each host provides its own mechanisms for the functions it wishes the script engine to have. As a result, each script you write must be aware of the host environment in which it is designed to run.

ActiveREXX does not subscribe to this philosophy. The REXX language already has a mechanism to perform output - the "SAY" instruction. ActiveREXX tracks its host environment, so that "SAY" does "the right thing" no matter what its host. In addition, the default external execution environment is also managed by ActiveREXX. As examples, when running under WSH, commands are automatically routed to COMMAND.COM, while under IE they are passed through as HTML output. By doing so, a script can be written that is not aware of its host environment, and in fact can run unmodified in any host environment.

So, using Mike Cowlishaw's unmodified QT example:

in WSH: Call QT

in ASP:

<HTML><BODY><%@ LANGUAGE=ActiveRexx %>
<% Call QT %>

and in IE

<HTML><BODY><SCRIPT Language=ActiveRexx>
Call QT

all produce "It's almost five past twelve." on the desired output.

Title: Managing Development with Rexx
Speaker: James G. Hasslacher Jr.

Many of today's packages lack sufficient tools for optimization, debugging, or production work. An Enterprise Resource Package such as PeopleSoft is no exception. If the tools exist, then they are usually limited to working on the open object. There is no way to apply the tool to the system. Given the size of an implementation, in terms of both people and calendar time, it is easy for the final developer to not have the same vision as the original designers. In addition, since SQLEXEC statements do not parse the SQL until runtime, it would be helpful if the syntax could be checked before attempting to execute the code. Fortunately, the source can be exported into a flat file where it can be manipulated using many of the traditional tools.

Using two simple tools, such as Mansfield's Kedit, and Rexx, an infinite set of utilities can be created. It is possible to parse all of the SQL embedded in PeopleCode for syntax, performance analysis, and known problems. Syntax checking is not limited to parsing by Rexx, but can include generating scripts that will test the SQL against the database parser using the database's built-in Explain Plan. This helps performance analysis as well as error detection.

Using the same routines, but adding a little extra code for robustness, it is also possible to scan the SQL reports (in the case of PeopleSoft, it is a third party report generator called SQR), or any piece of the system that can be extracted into a flat file. Automating the scripts to process a list of file names enables checking the whole system programmatically, by-passing the need to visit each file by hand. (A Rexx program that converts *.fnd files, the output of the "find" command, to ASCII is included as a handout.) This is a huge time saving device, especially when faced with checking 700+ scripts that come with the delivered system.

Utilities have been written to compare the output of the parsing scripts run against production with the output of the parsing scripts run against a vanilla version. This identifies problems delivered in the vanilla system versus those introduced during development. A very necessary piece of knowledge when applying fixes, updates, upgrades, or finger pointing.

An unexpected side-benefit to using Rexx is how quickly both traditional main-frame programmers and PC GUI programmers surmounted the learning curve. For many of the main-framers, they had seen Rexx before. For the PC programmers it was very similar to the scripting languages that drive GUI programs, such as PowerBuilder, and was similar enough to MicroSoft's Basic, that the transition time was minimal. Rexx has been used to replace the native DOS/NT batch language (which both camps found too cryptic to consider using) for driving some of the automated routines.

Rexx Language Association at http://www.rexxla.org:

Send questions about the Rexx Symposium or the Rexx Language Association to info@rexxla.org

Symposium Committee: Chip Davis, Rony G. Flatscher (Chair), Mark Hessling, John J. Urbaniak, Gwen L. Veneskey, David Wells.

Date: 1999-04-06c.