Progress DBMS
   HOME

TheInfoList



OR:

OpenEdge Advanced Business Language, or OpenEdge ABL for short, is a business application development language created and maintained by Progress Software Corporation (PSC). The language, typically classified as a
fourth-generation programming language A fourth-generation programming language (4GL) is any 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 ai ...
, uses an English-like syntax to simplify software development.Campbell, John, ''Programmer's Progress, a guide to the progress language.'' white star software, 1991 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.Salvador Vinals, Introducing OpenEdge Advanced Business Language (ABL), PSC whitepaper, 2007 A subset of the language, called ''SpeedScript'', is used in the development of web applications.Crawford, G. ''WebSpeed Complete'', Innov8 Computer Solutions, OpenEdge ABL helps developers to develop applications optionally using its own integrated
relational database A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
and
programming tool A programming tool or software development tool is a computer program that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs, that can b ...
. 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 is a generic term referring to a process which has both an IT-specific meaning and other connotations involving access rights in a broader legal and/or political sense. In the former it typically refers to software and activities relat ...
methods. This means that the
end-user In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ultimately use a product. The end user stands in contrast to users who support or maintain the product, such as sysops, system administrat ...
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 (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to ...
(RAD) model for developing software. A programmer and even end users can do
rapid prototyping Rapid prototyping is a group of techniques used to quickly fabricate a scale model of a physical part or assembly using three-dimensional computer aided design (CAD) data. Construction of the part or assembly is usually done using 3D printin ...
using the integrated and GUI tools of the development environment. OpenEdge can be used for: * Microsoft Windows GUI (Graphical User Interface) * WWW Programming (UNIX and Windows) * CHUI (CHaracter User Interface) (UNIX and Windows) * JSON and XML appserver programming (UNIX and Windows) * as well background process programming (UNIX and Windows).


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 the 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 A minicomputer, or colloquially mini, is a class of smaller general purpose computers that developed in the mid-1960s and sold at a much lower price than mainframe and mid-size computers from IBM and its direct competitors. In a 1970 survey, ...
operating systems such as
OpenVMS OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Ope ...
.


Syntax and semantics

Progress ABL is a strongly typed, late-bound,
English-like programming language Natural-language programming (NLP) is an ontology-assisted way of programming in terms of natural-language sentences, e.g. English. A structured document with Content, sections and subsections for explanations of sentences forms a NLP documen ...
. 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". 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. A message-box can be used to achieve the same effect: 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. The simplest "Hello, World" program, though, is this: DISPLAY "Hello ".


SQL SELECT equivalent

The SQL statement: SELECT * FROM customer; (along with your chosen language connection and display procedures) 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; (again, along with your chosen language connection and display procedures) can be expressed in Progress / ABL as: FOR EACH 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 language is record based other than set of records based. 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.


Application areas

The language is used in a wide variety of application areas, some examples: * Loan Origination at US Banks * Rental Car Reservation Systems * Wholesale Distribution * Warehouse Systems * Transportation Systems * Commercial Service Force Dispatching * Security Card Systems * Gaming Systems (think Las Vegas, not video) * Retail
Point-of-Sale The point of sale (POS) or point of purchase (POP) is the time and place at which a retail transaction is completed. At the point of sale, the merchant calculates the amount owed by the customer, indicates that amount, may prepare an invoice f ...
Systems (notably, that of
Micro Center Micro Center is an American computer retail store, headquartered in Hilliard, Ohio. It was founded in 1979, and , has 25 stores in 16 states. History Micro Center was founded in Columbus, Ohio in 1979 by John Baker and Bill Bayne, two forme ...
)


Notes


References

* Sadd, J. ''OpenEdge Development: Progress 4GL Handbook'', Progress Software Corporation, , * Kassabgi, G. ''Special Edition : Using Progress'', Que Publishing, {{ISBN, 0-7897-0493-5


External links


Official Website

Progress 4GL Documentations

OpenEdge Community

OpenEdge Resource Hub

What’s New in OpenEdge

Getting started with progress-4gl
Object-oriented programming languages Fourth-generation programming languages Data-centric programming languages Articles with example code Database-related software for Linux