ABL (Advanced Business Language) is a high-level procedural programming language developed to enable you to build almost all aspects of an enterprise business application, from the user interface to the database access and business logic. ABL is a versatile and extraordinarily powerful tool. Not only can you use it to program applications, but you can build many of the tools that you use to help create and support those applications.
ABL includes powerful statements and keywords that are specialized for building business applications. Single programming statements in ABL can do the work of dozens or possibly hundreds of lines of code in a standard 3GL, such as Visual Basic, Java, or C++. A single ABL statement can bring data all the way from the application database to the user interface, or return a user's changes back to the database. Other statements let you program with great precision, even down to the level of extracting individual bits from a data stream. This flexibility is what gives ABL its great power as a development language. Most of the development tools you use to develop OpenEdge® applications are themselves written in ABL.
In its first releases in the early 1980s, ABL allowed developers to build character interface applications that ran on a wide variety of hardware platforms, including many varieties of UNIX, DOS, and some other operating systems no longer in use. Early OpenEdge applications were, from the very first, fully portable between platforms so that a developer could simply move application programs from one type of machine or one type of display terminal to another with confidence that they would work correctly.
With the increasing presence of Microsoft Windows as a platform for graphical interfaces, ABL evolved to support those interfaces, with all their various visual controls, as well as the event-driven programming constructs needed for a menu-and-mouse-driven application. Today ABL continues to grow, with newer extensions to provide more and more dynamic definition of application components, as well as access to open technologies such as XML, and a host of other constructs to support an open application development and deployment environment.
And all the while, ABL-based applications can be brought from one release to the next largely without change. ABL provides a degree of compatibility and upward migration from one release to the next unmatched (unattempted, really) by any other high-level programming language.
Starting with OpenEdge Release 11.0, one of the newest enhancements to ABL is the addition of classes. Classes enable you to design and implement entire applications as a collection of related and strongly-typed objects using the principles of object-oriented programming (OOP). For an introduction to OOP, see OpenEdge Development: Object-oriented Programming.