[ProIV/inc_header.htm]
How PRO-IV Works Previous pagego up one levelNext Page
The basic problem in designing a fourth generation language is in the trade off between creating a system which produces programs quickly and simply but which then provides a resource efficient execution environment.

Systems which rely on code-generation tend to produce reasonably efficient run-time performance but at the cost of an inflexible development environment. In the worst cases the whole application has to be recompiled in batch to implement even the smallest change.

Systems which are interpreted usually provide a fast response to development changes but at the cost of huge overheads in execution.

PRO-IV takes an intermediate approach which results in the best of both worlds - a flexible and responsive development environment coupled with good run-time performance with minimal system overheads. PRO-IV uses a combination of semi-compilation and interpretation to produce a "table driven" system.

The PRO-IV run-time system (known as the kernel) is a memory resident library of re-entrant code containing approximately 150 routines. These are written in "C" or Assembler. The total size of the kernel is between 250 and 450 Kbytes depending on the implementation and is shared between all users. These routines are activated by parameters set in PRO-IV object code (known as a linkage-table). This indicates the sequence in which the modules are called and the parameters which are to be passed. The individual modules handle specific operations such as opening a file, displaying information to the screen, controlling a scrolling area and so on. The result is that a minimal amount of time is spent in interpreting and a maximum amount of time executing optimised low level code. The linkage tables themselves can be created very quickly in the development environment, and separate tables are created for every program ("function" in PRO-IV terminology) thus allowing a very flexible development environment. PRO-IV does not have to generate and compile any intermediate code.

The actual linkage table is transparent to the developer. The linking requirements are established as the data definition and function screens are completed by the developer. The completed linkage table will execute the kernel modules required in accordance with the design of the application.

An additional advantage of the two stage system is that individual routines can be distributed a "run-only" format, where they can be executed without the source code being available. This means that PRO-IV can be used to create software packages for distribution to third parties or to ensure that changes are only made on a development system and that no "quick fixes" are applied directly to a live system !

Systems can be directly transported from one machine architecture to another, since the machine specific coding is contained in the kernel rather than in the linkage tables themselves.

The success of this approach can be seen from an exercise carried out during a user evaluation where an on-line application was developed under CICS in PRO-IV and COBOL. Taking the project from analysis to implementation PRO-IV produced productivity gains of 5.3 to 1 over COBOL and produced an equivalent or faster response time in executing tested transactions !

Previous pagego up one levelNext Page
[_private/inc_footer.htm]