What are the mainframe languages

archive

Mainframe users know the IBM procedural language Rexx. The computer company has also integrated the language into the PS / 2 operating system OS / 2. Christian Eichenauer, Alfred Moos and Karl Rauland investigated as part of a study project how the procedural language is suitable for programming the SQL-based database manager of OS / 2.

A current AD / Cycle study project, which the University of Applied Sciences Heidelberg is carrying out with IBM Deutschland GmbH, is to find out to what extent a practice-oriented training in the subject of databases is possible with the SQL implementation of the database manager of OS / 2. The programming language Rexx (Restructured Extended Executor), which was integrated by the manufacturer into the OS / 2 operating system, serves as the host language for the procedural embedding of the SQL statements.

PS / 2 systems under das and OS / 2

The Heidelberg University of Applied Sciences provides practical course content in core computer science, primarily with and on IBM systems. An IBM 1390, model 190 mainframe computer under MVS / ESA and more than 100 PS / 2 systems are available for this purpose. The workstations are linked to one another by two token ring networks. These are in turn connected to the mainframe via a communication bridge. This makes it possible for every PS / 2 system to be used both as a workstation computer and as a terminal for the mainframe computer. Half of the small computers are currently running under the PC operating systems DOS and OS / 2.

In the course of the replacement of the previously used text editor Roscoe and ISPF / PDF, the Rexx language was selected as the procedural language. It is available as an alternative to the Clist procedure language under TSO on the mainframe. Since Rexx was included in the group of SAA languages ​​by IBM, the know-how built up for the mainframe computer in the college could be ported to the OS / 2-operated small computers.

In our opinion, the suitability of Rexx for programming TSO procedures and TSO applications has been proven. The same certificate can also be issued in this language as a procedural formulation tool in the small computer area under OS / 2. It can be used to program extensive OS / 2 command procedures as well as to create shorter programs. Working with this language is similar to simply developing basic programs. The language and also the programs written with it have the appearance and power of PL / I. Rexx is the implementation of a type-free, fully structured programming language.

The sequence and alternative sequence constructs provided in the language are particularly suitable for procedural formulation. This means that the different variants of the simple and multiple alternative can be implemented just as easily as the repetition construct. This has both the closed, counting and the open repetition with a preceding and following conditional test. The necessary language constructs are implemented to skip the remainder of the repetition body and to cancel a repetition.

In addition to the fundamental sequence constructs, the Rexx language scope includes the higher sequence constructs of the procedure and the function. The communication between these blocks and their outside world takes place strictly via the argument / parameter mechanism. For this, however, only the position parameter technology is built in. In principle, the data in these blocks are only known locally so that there are no side effects. They can only be made known globally by explicitly specifying them. Procedures and functions can be called recursively in Rexx.

A high level of calculation accuracy

The three fundamental constructs of computer science, the element, the sequence and the repetition, are also available on the data description page of Rexx. Unfortunately, the alternative as an explicit data construct is missing here. The sequence and the alternative were implemented with the help of a construction element that is not often used in programming languages, the so-called stem variable. With their help, dynamic areas (array, field) and dynamic structures (records) can be created. It is also suitable for simulating associative memories.

As a data technology counterpart to the recursive procedures and functions, there is also the stack, the queue and of course the file as a higher data construct. Rexx thus has the full range of data required for procedural programming. and process constructs.

As a natural feature, developers expect the possibility of formulating a variety of arithmetic applications with a modern programming language. That speaks for Rexx. The number of digits in numerical objects can be of any size and can be specified by the programmer. With this concept, almost any calculation accuracy can be achieved.

Rexx shows itself at its best when it comes to string processing. Here the programmer accesses language resources that astonish even an experienced PL / I expert due to their functionality and richness. Rexx also includes the necessary facilities for interrupt handling and tracing. In terms of scope and effect, they represent a well-balanced optimum.

A glaring weakness of Rexx should not be concealed. Like many other modern programming languages, Rexx does not contain any language resources for the professional output of data. The services available for this in the presentation manager cannot currently be controlled via an adequate Rexx interface.

The possibilities of data management with Rexx's own data manipulation language do not go beyond the usual scope offered by PC-oriented programming languages. However, the developer frees the interface between. Rexx and the database manager (DBM) of OS / 2. With them it is possible to define and manipulate data in the database query language SQL. The range of languages ​​permitted here corresponds to the dynamic SQL of the IBM database system DB2 on the mainframe. In some ways, it's even more powerful. With the sort call, for example, a unique index is automatically created on a column in the SQL of the DBM if this is defined as the primary key.

In addition to the language resources available in all SQL dialects for manipulating table rows (INSERT, UPDATE and DELETE) or for outputting table contents (SELECT and FETCH), there are language resources in DBM-SQL as well as in DB2-SQL for defining relationship integrity.

In addition to entity integrity, the database system monitors the uniqueness of a primary key value - maintaining the relationship integrity, better known as referential integrity, by the database management system is of central importance. In order to maintain them, the database manager (DBM) must be prepared for this when defining the relationships between the tables. At this point in time it is necessary to determine what should happen in the event of changes in the database that affect the relationship between the related data.

The behavior specifications for the DBM in the event of an imminent violation of the relationship integrity through the execution of the SQL commands UPDATE and INSERT are currently only rudimentary. The change request can only be rejected here. For interventions to maintain the integrity, the three SQL commands Delete, Update and Insert are provided under OS / 2-DBM as well as under DB2.

Rexx and SQL: powerful tools

The language means for specifying the rule to behave in the event of a violation of integrity due to the execution of the SQL command DELETE allow the specification of three behaviors in the event of a threat to the integrity of the relationship. The first thing to be mentioned here is the rejection of the delete request by the DBM. As an alternative to this, however, the DBM can also be specified for cascading delete. A third deletion strategy is nullifying delete.

The two complementary elements to OS / 2, the host language Rexx and the guest language SQL, together form a powerful set of tools. It allows you to write self-explanatory instructions that are easy to read and therefore easy to understand.

Christian Eichenauer is a student of computer science at the FHT Mannheim and is working on the AD / Cycle project at the University of Applied Sciences as part of his second practical semester. The project is headed by Professor Alfred Moos. Graduate computer scientist Karl Rauland is a full-time employee for the study project.