Progress 4GL
Encyclopedia
OpenEdge Advanced Business Language, or OpenEdge ABL for short, is a business application development language created and maintained by Progress Software Corporation
Progress Software
Progress Software Corporation , formerly Data Language Corporation, is an American software company that sells business application infrastructure software. Its best known product is the OpenEdge ABL , which was developed in the early 1980s. The best known application written in Progress is...

 (PSC). The language, typically classified as a fourth-generation programming language
Fourth-generation programming language
A fourth-generation programming language is a programming language or programming environment designed with a specific purpose in mind, such as the development of commercial business software. In the history of computer science, the 4GL followed the 3GL in an upward trend toward higher...

, uses an English-like syntax to simplify software development. The name was changed in 2006 to OpenEdge Advanced Business Language (OpenEdge ABL), by PSC, from PROGRESS, also known as Progress 4GL, in order to overcome a presumed industry perception that 4GLs were less capable than other languages. The language was called PROGRESS or Progress 4GL prior to the release of version 10.0. A subset of the language, called SpeedScript, is used in the development of web applications.

OpenEdge ABL helps developers to develop applications optionally using its own integrated relational database
Relational database
A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...

 and programming tool
Programming tool
A programming tool or software development tool is a program or application that software developers use to create, debug, maintain, or otherwise support other programs and applications...

. These applications are portable across computing systems and allow access to various popular data sources without having to learn the underlying data access
Data access
Data access typically refers to software and activities related to storing, retrieving, or acting on data housed in a database or other repository...

 methods. This means that the end-user
End-user
Economics and commerce define an end user as the person who uses a product. The end user or consumer may differ from the person who purchases the product...

 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
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

 (RAD) model for developing software. A programmer and even end users can do rapid prototyping
Rapid prototyping
Rapid prototyping is the automatic construction of physical objects using additive manufacturing technology. The first techniques for rapid prototyping became available in the late 1980s and were used to produce models and prototype parts. Today, they are used for a much wider range of applications...

 using the integrated and GUI tools of the development environment.

History

1984 First Commercial Release

1989 Version 5

1990 Version 6

1993 Version 7

1995 Version 8

1998 Version 9

December 10, 2002 Progress Dynamics 2.0 announced - the application environment for the OpenEdge business platform

February 17, 2004 OpenEdge 10 announced

2005 OpenEdge Studio packages
  • Progress Version 9
  • Progress WebClient
  • Progress Dynamics Version 2.1


February 8, 2006 OpenEdge 10.1 announced - addition of object-oriented extensions to ABL, and new auditing service

February 13, 2007 OpenEdge 10.1b announced - adds support for 64-bit data formats

April 15, 2008 OpenEdge 10.1c announced - first business application development platform to support IPv6

November 3, 2008 OpenEdge 10.2A announced -New OpenEdge GUI for .NET that allows developers to create modern WinForms-style UI's without leaving the OpenEdge environment.

December 2009 OpenEdge 10.2B release providing improved OpenEdge GUI .Net Integration and additional online database features.

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 be said to 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 programatically; or programmers can use the provided tools to build one.

Hello World

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

DEFINE VARIABLE w AS HANDLE NO-UNDO.

CREATE WINDOW w ASSIGN
WIDTH = 50
HEIGHT = 5
MESSAGE-AREA = FALSE
STATUS-AREA = FALSE.

CURRENT-WINDOW = w.

DEFINE BUTTON btnOK LABEL "OK" SIZE 12 BY 1.2.
FORM
"Hello World!" VIEW-AS TEXT AT COL 20 ROW 2
btnOK AT COL 20 ROW 4
WITH FRAME f SIZE 50 BY 5 NO-BOX THREE-D.

VIEW FRAME f.
ENABLE btnOK WITH FRAME f.
WAIT-FOR "CHOOSE" OF btnOK.
DELETE OBJECT w.


OR let OpenEdge think for you and create a simple message box:

MESSAGE "Hello World!"
VIEW-AS ALERT-BOX INFO BUTTONS OK.

also, you can use ERROR and WARNING instead of INFO
to change the message icons

OR to be most simplistic

DISPLAY "Hello World!".

SQL select equivalent

The SQL statement:

SELECT * FROM customer;

can be expressed in Progress / ABL as:

FOR EACH customer NO-LOCK:
DISPLAY customer.
END.

SQL update equivalent

The SQL statement:

UPDATE customer
SET salesman = 'Fred'
WHERE custno = 14;

can be expressed in Progress / ABL as:

FOR customer WHERE customer.custno = 14 EXCLUSIVE-LOCK:
ASSIGN customer.salesman = 'Fred'.
END.


(Some assumptions have been made about indexing, locking and transaction scoping in order to keep this example simple.)
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK