Preserve Your Investment

If yours is a typical large company, you have invested hundreds of person years in software development and personnel training, a large fraction of that for IBM mainframe systems. We want to help you preserve and extend that investment at a low risk. DICE is an application system which can run many of your most important programs using modern technology.

Run Legacy Code

Business executives are often surprised to learn that key operations in the corporation are being controlled by programs written in APL, a language which provides huge productivity gains for users. Tens of thousands of such programs are running on mainframes today, but with DICE they can easily be converted to run on NT or UNIX servers, or on individual PCs.

The result: Significant cuts in systems operation costs.

Access Via the Net

DICE permits much more than a simple compatibility environment. Your APL applications can be extended simply to become powerful World Wide Web pages, accessible on the internet or your company's intranet. Your users around the world use familiar browser interfaces to get access to the applications, but under the covers you have hidden an engine much more powerful than Java, running your existing time-tested algorithms that you do not have to reprogram. This can greatly enhance the productivity of your organization by improving access to applications and data in a global corporation.

Integrate Programs

APL has traditionally lived in its own world, but with DICE you can call APL algorithms directly from applications written in other languages, or call service routines from your APL program. It uses simple DLL interfaces with Windows programs, giving them access to the power of APL for computing vast arrays of multidimensional data.

Cross-Platform Capability

One of the great advantages of writing programs in APL is portability. Unlike languages such as C, which claims somewhat unfairly to be portable, APL completely avoids machine-dependent data types. Programs are defined at an algorithmic level rather than a detailed execution level. Because of this, an algorithm originally implemented on one system will continue to work, and provide the same results, on a completely different type of system. DICE maintains this consistency, accepting programs originally written to run on IBM mainframes (for example) and running them on servers or personal computers. The result is a reduction in operating costs.

Protect proprietary algorithms

APL programs were extremely powerful, but it was difficult if not impossible to hide their inner workings from prying users, since the execution time file included the application source, and was designed to be re-editable. DICE does not provide a program development environment to end users, so there are no facilities to view the source content of a program that has been converted to the DICE format. The conversion includes an encryption, so that ASCII text such as passwords within the program cannot be deciphered by text editors or viewers.

Enhance user interfaces

Most APL code has been written to communicate with its users either through a simple line-by-line interface, or using the facilities of IBM 3270-family display terminals. Both approaches are quite restrictive and awkward when compared with today's windowed user interfaces. DICE allows your developers to rethink the user interfaces, and re-implement them quickly and easily in a visual programming language such as Visual Basic, without having to rewrite the rest of the application. DICE provides the seamless integration of the visual front end with the existing APL application.

Running DICE and controlling the user interface on the user's own machine can also improve response times, by avoiding the network traffic and mainframe bottlenecks of more traditional solutions.

Exploit multiprocessor systems

Designing and writing an application so that it can take advantage of multiple processors concurrently is a major undertaking, and one with many potential pitfalls. The developers must contend not only with synchronization of the various segments of the application, but also with bugs that tend to be timing sensitive and are often nearly impossible to reproduce. Performance issues are also key. Sections of the code that may appear trivial during design can become bottlenecks for the entire application during execution. Gains in off-loading part of the processing to a second processor can be lost completely in the costs of communication, data transfer, and serialization.

With DICE your application developers have none of these concerns. Indeed, your existing applications, written without any thought of multiprocessing, can be run on systems with two or more processors and automatically take advantage of extra processor power wherever it is available. DICE will dynamically, and completely transparently, optimize the distribution of work among the available processors. DICE itself will handle all synchronization and timing issues. And DICE developers have many years of experience in designing and developing products for multiprocessor systems.


What is DICE?

The DICE family includes several products but the two central components are: