OpenEdge Advanced Business Language

Last updated
OpenEdge Advanced Business Language (ABL)
Developer(s) Progress Software Corporation
Stable release
OpenEdge 12.8 / January 21, 2024;10 months ago (2024-01-21)
Operating system Cross-platform (see below)
Type RDBMS
License Proprietary
Website https://www.progress.com/openedge

OpenEdge Advanced Business Language, or OpenEdge ABL for short, is a business application development language created and maintained by Progress Software Corporation. Typically classified as a fourth-generation programming language, it utilizes an English-like syntax to simplify software development. [1] The language was called PROGRESS or Progress 4GL up until version 9, but in 2006, PSC changed the name to OpenEdge Advanced Business Language (OpenEdge ABL), in order to overcome a presumed industry perception that 4GLs were less capable than other languages. [2]

Contents

OpenEdge ABL helps developers to develop applications optionally using its own integrated relational database and programming tools. These applications are portable across computing systems and allow access to various popular data sources without having to learn the underlying data access methods. This means that the end-user of these products can be unaware of the underlying architecture.

By combining a fourth-generation language and relational database, OpenEdge ABL allows the use of the Rapid Application Development (RAD) model for developing software.

History

The original Progress 4GL was designed in 1981 as an architecture-independent language and integrated database system that could be used by non-experts to develop business applications by people who were not computer scientists but were knowledgeable in their business domain. At that time, business applications were often written in COBOL (for machines like corporate IBM mainframes) and sometimes in C (for departmental minicomputers running the UNIX operating system). When the IBM PC became popular, it developed a need for business software that could be used on those and other inexpensive computers. The Progress system was created to be used on both IBM PC machines running DOS and on a variety of computers that could run UNIX and minicomputer operating systems such as OpenVMS.

Syntax and semantics

Progress ABL is a strongly typed, late-bound, English-like programming language. Although initially designed as a procedural language, starting with version 10.1 it was enhanced with object-oriented grammar elements, which can be mixed with the original procedural style. A block of code may have a transaction scoped to it, in which case database changes will be committed when it completes. An error raised within such a block will undo these changes. These defaults may be overridden by the programmer.

Simple programs run without a graphical user interface, but there is syntax to create one programmatically, or programmers can use the provided tools to build one.

Examples

Hello World

The following ABL code creates a window with the text "Hello, World!" and a button labelled "OK".

DEFINEVARIABLEwASHANDLENO-UNDO.CREATEWINDOWwASSIGN WIDTH =50HEIGHT =5MESSAGE-AREA =FALSESTATUS-AREA =FALSE.CURRENT-WINDOW =w.DEFINEBUTTONbtnOKLABEL "OK"SIZE12BY1.2.FORM "Hello World!"VIEW-ASTEXTATCOL20ROW2btnOKATCOL20ROW4WITHFRAMEfSIZE50BY5NO-BOXTHREE-D.VIEWFRAMEf.ENABLEbtnOKWITHFRAMEf.WAIT-FOR "CHOOSE"OFbtnOK.DELETEOBJECTw.

A message-box can be used to achieve the same effect:

MESSAGE "Hello World!"VIEW-ASALERT-BOXINFOBUTTONSOK.

The INFO parameter controls the message icons, and can be replaced with ERROR or WARNING for different looks.

The most basic "Hello, World" program is:

DISPLAY "Hello ".

SQL SELECT equivalent

The SQL statement:

SELECT*FROMcustomer;

(along with your chosen language connection and display procedures) can be expressed in Progress / ABL as:

FOREACHcustomerNO-LOCK:DISPLAYcustomer.END.

SQL UPDATE equivalent

The SQL statement:

UPDATEcustomerSETsalesman='Fred'WHEREcustno=14;

(again, along with your chosen language connection and display procedures) can be expressed in Progress / ABL as:

FOREACHcustomerWHEREcustomer.custno=14EXCLUSIVE-LOCK:ASSIGNcustomer.salesman='Fred'.END.

.. (Some assumptions have been made about indexing, locking and transaction scoping in order to keep this example simple.)

Data access in the ABL is record based as opposed to result-set based processing in traditional SQL-based languages. In SQL operations work on a set of records, in the ABL, the operation is applied to a record at a time - much like using a cursor in SQL. Record-based processing provides a clean and reliable locking mechanism which allows the developer to EXECUTIVE-LOCK, SHARE-LOCK or NO-LOCK a record when accessed by the application.

Application areas

The language is used in a wide variety of application areas, some examples:

OpenEdge can be used for: [3]

Notes

  1. Campbell, John, Programmer's Progress, a guide to the progress language. white star software, 1991
  2. Salvador Vinals, Introducing OpenEdge Advanced Business Language (ABL), PSC whitepaper, 2007
  3. "Use Cases of Progress OpenEdge 2024". www.trustradius.com. 2024-01-26. Retrieved 2024-06-26.

Related Research Articles

A fourth-generation programming language (4GL) is a high-level computer programming language that belongs to a class of languages envisioned as an advancement upon third-generation programming languages (3GL). Each of the programming language generations aims to provide a higher level of abstraction of the internal computer hardware details, making the language more programmer-friendly, powerful, and versatile. While the definition of 4GL has changed over time, it can be typified by operating more with large collections of information at once rather than focusing on just bits and bytes. Languages claimed to be 4GL may include support for database management, report generation, mathematical optimization, GUI development, or web development. Some researchers state that 4GLs are a subset of domain-specific languages.

<span class="mw-page-title-main">HCL Notes</span> Collaborative software platform

HCL Notes is a proprietary collaborative software platform for Unix (AIX), IBM i, Windows, Linux, and macOS, sold by HCLTech. The client application is called Notes while the server component is branded HCL Domino.

Originally, the word computing was synonymous with counting and calculating, and the science and technology of mathematical calculations. Today, "computing" means using computers and other computing machines. It includes their operation and usage, the electrical processes carried out within the computing hardware itself, and the theoretical concepts governing them.

<span class="mw-page-title-main">IBM Db2</span> Relational model database server

Db2 is a family of data management products, including database servers, developed by IBM. It initially supported the relational model, but was extended to support object–relational features and non-relational structures like JSON and XML. The brand name was originally styled as DB2 until 2017, when it changed to its present form.

In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An application written using ODBC can be ported to other platforms, both on the client and server side, with few changes to the data access code.

Tandem Computers, Inc. was the dominant manufacturer of fault-tolerant computer systems for ATM networks, banks, stock exchanges, telephone switching centers, 911 systems, and other similar commercial transaction processing applications requiring maximum uptime and no data loss. The company was founded by Jimmy Treybig in 1974 in Cupertino, California. It remained independent until 1997, when it became a server division within Compaq. It is now a server division within Hewlett Packard Enterprise, following Hewlett-Packard's acquisition of Compaq and the split of Hewlett-Packard into HP Inc. and Hewlett Packard Enterprise.

Informix-4GL is a 4GL programming language developed by Informix during the mid-1980s. At the time of its initial release in 1986, supported platforms included Microsoft Xenix, DEC Ultrix, Altos 2086, AT&T 3B2, AT&T 3B5, AT&T 3B20 and AT&T Unix PC.

Adabas, a contraction of “adaptable database system," is a database package that was developed by Software AG to run on IBM mainframes. It was launched in 1971 as a non-relational database. As of 2019, Adabas is marketed for use on a wider range of platforms, including Linux, Unix, and Windows.

PROIV, also known as 'Pro-IV', is a low code development platform owned by Zellis Holdings, a British HR services company.

DataFlex is an object-oriented high-level programming language and a fourth generation visual tool for developing Windows, web and mobile software applications on one framework-based platform. It was introduced and developed by Data Access Corporation beginning in 1982.

FOCUS is a fourth-generation programming language (4GL) computer programming language and development environment that is used to build database queries. Produced by Information Builders Inc., it was originally developed for data handling and analysis on the IBM mainframe. Subsequently versions for minicomputers and such as the VAX and other platforms were implemented. FOCUS was later extended to personal computers and to the World Wide Web: the WebFOCUS product.

EGL, originally developed by IBM and now available as the EDT open source project under the Eclipse Public License (EPL), is a programming technology designed to meet the challenges of modern, multi-platform application development by providing a common language and programming model across languages, frameworks, and runtime platforms.

NOMAD is a relational database and fourth-generation language (4GL), originally developed in the 1970s by time-sharing vendor National CSS. While it is still in use today, its widest use was in the 1970s and 1980s. NOMAD supports both the relational and hierarchical database models.

LINC is a fourth-generation programming language, used mostly on Unisys computer systems.

PowerHouse is a byte-compiled fourth-generation programming language originally produced by Quasar Corporation for the Hewlett-Packard HP3000 mini-computer, as well as Data General and DEC VAX/VMS systems. It was initially composed of five components:

SheerPower 4GL is a fourth-generation programming language developed by Touch Technologies, Inc. SheerPower 4GL is the result of porting Touch Technologies' Intouch 4GL programming language that runs on OpenVMS to Windows, launching in 2000. Downloads are free from the official SheerPower 4GL website. SheerPower 4GL is similar to the BASIC programming language, and is easy to learn.

<span class="mw-page-title-main">JADE (programming language)</span> Software development and deployment platform

JADE is a proprietary object-oriented software development and deployment platform product from the New Zealand-based Jade Software Corporation, first released in 1996. It consists of the JADE programming language, Integrated development environment and debugger, integrated application server and object database management system.

Informix Corporation, formerly Informix Software, Inc., was a software company located in Menlo Park, California. It was a developer of relational database software for computers using the Unix, Microsoft Windows, and Apple Macintosh operating systems.

<span class="mw-page-title-main">Distributed Data Management Architecture</span> Open, published architecture for creating, managing and accessing data on a remote computer

Distributed Data Management Architecture (DDM) is IBM's open, published software architecture for creating, managing and accessing data on a remote computer. DDM was initially designed to support record-oriented files; it was extended to support hierarchical directories, stream-oriented files, queues, and system command processing; it was further extended to be the base of IBM's Distributed Relational Database Architecture (DRDA); and finally, it was extended to support data description and conversion. Defined in the period from 1980 to 1993, DDM specifies necessary components, messages, and protocols, all based on the principles of object-orientation. DDM is not, in itself, a piece of software; the implementation of DDM takes the form of client and server products. As an open architecture, products can implement subsets of DDM architecture and products can extend DDM to meet additional requirements. Taken together, DDM products implement a distributed file system.

References