What is PL/B - The Programming Language for Business?

[WHO] [WHERE] [WHEN] [WHY] [HOW] [Home Page]

Third Generation Language
Business Language
Why Another Business Language?
Competitive Marketing & Product Offering
ANSI Standard

Introduction WB01531_.GIF (277 bytes)

PL/B has matured into an excellent business programming language since its original conception as the DATABUS(R) Language by Datapoint Corporation. It is easily learned and has the power needed to support today's highly interactive, shared/data environments. Now, with ANSI Standard X3.238-1994, and with over a dozen companies providing compilers, interpreters, translators, and CASE tools for the language, PL/B is poised for a period of new growth and acceptance.

Third Generation WB01531_.GIF (277 bytes)

PL/B, like COBOL, FORTRAN and C, is a third generation programming language. With all the talk today about fourth and fifth generation languages, it's not surprising that many companies overlook the important role of third generation languages in business systems development. Third generation languages are typically general purpose within their field of interest: business, scientific, system. Professional programmers can use these languages to develop almost any type of program with relatively few constraints on design complexity and human interface.

Typically, ANSI standard third generation languages:

Many of these strengths are missing from nonANSI languages. It is interesting to note he lack of ANSI standard fourth and fifth generation languages. Most of the widely used fourth and fifth generation languages have been developed by vendors who seek to maintain proprietary interests and control over their products.

During the past two decades, widespread acceptance and use of fourth generation languages and application development workbenches have led to major gains in programming productivity, especially in the field of business application programming. Many of the human interface concepts embodied within these products have now been incorporated into system design and source code generator tools so that it is now possible for many third generation language programs to be developed as rapidly as with fourth generation languages, incorporate extraordinary quality, exhibit uniform human interfaces, and be easily maintained and upgraded by newly hired personnel.

Business Language WB01531_.GIF (277 bytes)

Many third generation programming languages are categorized as having business, scientific, or system software orientations. Languages which try to be all things to all people, such as one might claim about PL/1, are typically too broad in nature to gain as much favor as the more compact and focused programming languages. Languages which provide too much freedom of style and structure to accomplish fundamental tasks are often harder to maintain over a period of years by various programmers. Currently, the most popular ANSI programming language used for business applications is COBOL, for scientific work is FORTRAN, and for system software is "C". BASIC and PASCAL have many strong advocates among users of personal computers and in the academic world. While being one of the easiest languages to learn, ANSI BASIC is usually enhanced by vendors to provide greater suitability for business programming environments.

Modern business programs are characterized by their needs for: powerful random storage and retrieval mechanisms, business report formatting, high level support of interactive screen oriented user interfaces, and facilities for simultaneous updating of shared databases in multiuser environments. You don't need to calculate B to one million decimals or forecast weather in a business language. Scientific programs need to be supported by languages which offer rich mathematical manipulations, optimization of calculation processing, control over calculation precision, and access to vast memory. Most scientific programs do not require simultaneous update of shared data files, and are content to analyze data sets serially. System software programs are typically most concerned with memory management, state tables, recursion, and character stream manipulation. Languages supporting system software development must provide programmers with facilities to manipulate hardware resources in optimal ways to achieve often unique and spectacular results. System software languages do not typically have built in facilities for database storage and retrieval or complex mathematical manipulation, although a number of software companies have developed proprietary packaged routines which offer these capabilities. Business application programmers are typically expected to produce dozens of similarly operating file maintenance or reporting type programs in the same period of time that scientific or system software programmers might be working on a single program to meet their requirements.

Why Another Business Language? WB01531_.GIF (277 bytes)

COBOL was originally developed as a card oriented, batch job business language. It served its intended purpose well. COBOL facilitates use of fully spelled words and sentence like structures for easy readability, declares all data elements prior to procedure specification, and includes good facilities for record storage/retrieval and string formatting/manipulation. Because ANSI COBOL lacks many features required by modern multiuser, highly interactive environments, compiler vendors must extend their language implementations to provide these facilities. Unfortunately, this approach necessarily results in nonANSI compliant programs, reduced portability, limited selection of compilers, and sometimes growth into an all things to all people flavor language. One of the most popular implementations of COBOL in the market place is upward compatible with most of the widespread COBOL product extensions. The strategy is for easy conversion to this implementation. After a few years, however, conversion to an alternate, extended COBOL or to ANSI COBOL is very difficult, if at all possible.

PL/B is built for modern business environments. PL/B contains all the necessary ingredients to support multiuser environments, simultaneous shareddata access and updating, support for highly interactive character mode keyboard and screen handling, and powerful data storage and retrieval mechanisms (even well beyond most extended COBOL products). All PL/B compiler vendors support these features now in nearly identical fashion. The J15 committee has been able to draft a proposed standard for PL/B in a relatively short time, primarily due to the high level of similarity among all product implementations.

Probably one of the most important future features of the J15 PL/B is an SQL interface through which database systems based on the ANSI H2 standard may be accessed and updated. Many computer industry analysts now agree that most future database systems, including client/server based systems, will communicate through the H2/SQL standard. Compiler vendors of other ANSI languages are expected to add SQL interfaces each in their own way.

Many forward thinking companies are already investigating future system architectures based on client/server relationships. In this scenario, a group of powerful database engines (mainframes, minicomputers, clustered microprocessors) run an RDBMS under UNIX or any other suitable operating system, perform database manipulations, and serve results to powerful workstations for further massaging with spreadsheets, word processors, query programs, data entry forms, etc. These workstations may be running different operating systems than the servers, which themselves may be running a diversity of operating systems. Cost effectiveness of these types of systems will make them impossible to ignore in the future. The PL/B programming language has grown up in this type of environment.

PL/B is a simple easy to learn language, suitable for development of business applications such as financial accounting, inventory, bill of materials, payroll, client accounting, project tracking, order entry, sales analysis, reporting, library systems, and so forth. PL/B programmers can become productive in just a few weeks because of its simplicity and intuitive nomenclature. It is designed for easy readability and maintainability, with simple statement structures that can be easily commented. PL/B could easily be taught in trade schools and on-the-job training programs. PL/B is not an instructional language like PASCAL, designed to illustrate structured programming technique, recursion, or use of pointers. Nor is it a highly technical langugage like C, designed for guru programmers to develop extremely sophisticated system software after steep learning curves.

PL/B is designed to protect both the programmer and the programming environment. Simple mistakes do not typically compile and yield strange inexplicable run time results. Memory mapping, operating system interface, linking terminal and I/O support packages are unnecessary when using PL/B. Each program has its own virtual data and execution space. Logical design flaws are usually located easily and rarely impact other programs.

PL/B facilitates development of fast compilers. Most vendors offer program compilers which are extremely fast in comparison to typical offerings with other languages. It is not unusual for a 20,000 line program to compile in less than 10 seconds on a PC. Fast compilers are essential for lesser skilled programmers, rapid business application development, and support of numerous daily maintenance requests.

Competitive Market and Product Offerings WB01531_.GIF (277 bytes)

PL/B compilers, interpreters, translators, productivity tools, and application programs are offered by over 100 software companies on a wide variety of hardware platforms, compatible with a wide variety of operating systems. More than 200,000 workstations use PL/B as their primary or sole programming language for business applications. PL/B can be found in use in over 40 countries, in Fortune 500 companies as well as smaller corporations and partnerships, in various levels of local, state and federal governments, in military installations, and in schools.

PL/B lends itself to easy source code generation and maintenance through automated development tools. Various competitive companies offer a wide array of program generators, reporting systems, data inquiry facilities, screen painters, menu systems, and fourthgenerationlike application development tools for most PL/B programming environments. Additionally, various companies offer PL/B source code translators to C, COBOL, and BASIC.

ANSI Standard WB01531_.GIF (277 bytes)

The committee to develop an ANSI standard for the programming language PL/B was organized in December 1987 and assigned the designation J15 by the X3 Standards Planning and Review Committee (SPARC) in January 1988. The first official meeting of J15 was held in Washington D.C. in May 1988, followed by three additional meetings in 1988. Numerous meetings have been held each year since 1987, culminating in a final acceptance of the X3.238 ANSI Standard for PL/B in December 1994. Between quarterly scheduled meetings, committee members worked one to three weeks in preparation for meetings, analyzing technical proposals, reviewing drafts of the proposed ANSI standard, and researching existing PL/B practice. As a group, it is costing the companies supporting the J15 committee in excess of $100,000 annually to support the committee's efforts. A majority of PL/B compiler companies are either voting members or have been observers to the J15 committee, which also includes in its membership PL/B language endusers, academic observers, international delegates, and software consultants.

The American National Standard for PL/B specifies:

A copy of the ANSI Standard (reference ANSI X3.238-1994) can be purchased from:

310 Miller Avenue
Ann Arbor, MI 48103, USA
Telephone: 734-930-9277
Fax: 734-930-9088

The cost of the printed copy is US$ 125.00. A PDF version is available for download at a cost of US$ 25.00.

For further details regarding committee activities, contact:

Gary D. Raymond
Chairman, J15 Committee
c/o Infopro, Inc.
2920 Norwalk Court
Aurora, IL 60502-1310
phone: 630-978-9231
fax: 734-638-6139
e-mail: gary@sysmaker.com

Top of Page

Return to J15 home page

Return to INCITS home page