Articles -> BPE Software

BPE Software

Most programming languages today are rather “complete” or “general” languages that allow many types of programming to be accomplished. Being general, they can be adapted for many types of tasks. Over the years, languages have been developed, created, and invented in many ways to address specific programming concerns. No one language has ever been developed that can do all things well. That is why there are still many languages being created every year and continuing changes to existing languages.

Easy to learn and USE

We developed BPE to do general business data processing. The BPE language is relatively simple, taking only a few days to learn and a few weeks or a couple of months to master (depending upon a programmers’ experience with other languages) whereas many general purpose, popular languages can take months to learn and sometimes a couple of years to master.

An Environment for System Developers

Programmers have many areas to develop expertise in. Once one, (or more) languages are learned, the focus becomes designing, writing, testing, and completing actual projects. For a Business System Designer, how to implement a GL, how to improve the accuracy of a rating system, or how to design in “audit-ability” are each day’s most important concerns. BPE allows such developers to quickly write and test business processing concepts and our programmers prefer to use BPE for these projects because it allows them to focus more on the business problems and not the system or programming problems.

Advanced Debugging Features

The BPE Environment has its own powerful IDE (Interactive Development Environment) with its own programming text editors, debugging tools, programming tracing tools, and powerful index. The Indexing capability of the BPE IDE and Compiler makes it easy for programmers to learn an existing project and keep control over projects they develop. The biggest problem for developers learning projects (after learning a project's language) is to understand the data structures, code files, and how they all interact.  The BPE IDE allows programmers to quickly find which programs use data items and how. Data and Code maps allow detailed code analysis to be performed easily.

Performance and Scalability

BPE itself is written in C++, the most popular of today’s system programming languages. This allows extensions and interfaces to be added to BPE when and if needed. C++ also produces extremely fast code. CIM-Data’s System, surprises many data processing professionals when they see it run. Unlike some of our competitor’s systems that use general purpose languages, our software runs extremely fast and uses only a minimum of CPU resources. Servers handling dozens of people seem to be in idle mode. This means that less of an investment is needed in a server to run CIM-Data’s software, and that even very large brokerages can deploy fast systems.

What BPE Does Well

BPE allows programmers to easily create and manage complex record structures for the database and manipulate these quickly and easily. The BPE Database System is designed for absolute reliability and high performance data access. This means we can update multiple records and retrieve data quickly while maintaining proper record locks with minimal worry of data corruption from hardware malfunction, power outages, or server reboots.

 

Programmers that have developed other large systems have stated that it would require any where from three to five times more programming to rewrite our system in a current popular language.

BPE produces both character based screens and GUI visuals. It has its own report writer and automatic print job routing system to print documents out on the right tray of the right printer on the right paper.

Long Term Viability

Even though the BPE Language was originally designed around 1983-1984, it was written as windowing language – before Microsoft Windows was even thought of. This has allowed us to port our software from a circa 1980s minicomputer to Microsoft Windows in a GUI environment. Until we began the Release 4 series, the same source code was used to compile both minicomputer and Windows versions of our product.

Hardware and Software popularity has changed over the years. Keeping our application code in our own language makes it simple to convert to the next wave of popular hardware and software after Windows and Intel (if there is one).

Built-in Performance and Reliability

Since BPE is written as a number of highly optimized C and C++ pCode subroutines that a BPE Developer invokes through the language, the system is automatically fast. When developing or modifying BPE itself, each portion is written only once as general purpose code, heavily tested, and made available to the BPE Developer. The developer does not have to reinvent functionality and instead can rely on and use the built-in functionality.

Extensibility

Since the BPE Language is designed for a narrow set of business processing functionality, which it does do quite well, a question arises as to how handle something outside of the scope of the BPE Language. The solution is simple. Since the BPE Language actually is executed within the BPE Environment, we simply add a new extension into the environment itself. Since we are using C++ for the environment, extensions are added using C++ (which can interface to just about anything). The environment can take care of conversions and callouts from the BPE code. In fact, the BPE Code can define, use C data types, and make calls to C routines that in turn can call C++ routines.

 

A good example of this is the way we implement XML. We have our own XML DTD/Schema Parser and XML engine. Programmers write XML tag pathways in a similar way nested record structures are written. All pathways are verified by the XML engine which cannot generate a "badly formed" XML document.

 

So although BPE is a closed, limited language, since it lives in an environment designed to be able to interface to just about anything, the BPE Developer still has access to whatever we need the system to interface to – but in a simple, controlled, and reliable, high-performance way!

 

Summary

The BPE language and Processing Environment is a high performance data processing system that gives our customers speed and reliability and ensures that the CIM-Data System, the customer’s data, and the investment in system training can continue on to future computer technologies. The BPE Environment allows CIM-Data to acquire and train new developers in minimal time and lets them focus on developing and solving business data processing projects for our customers.

 

All products mentioned are registered trademarks or trademarks of their respective companies.
CIM-Data Privacy, Confidentiality, And Security Policy.
Copyright 2006 CIM-Data Ltd. All rights reserved.
Last modified: Wednesday December 27, 2006.