ABL is a both a procedural and object-oriented programming language, but this guide focuses on the procedural aspects of the language. For more information on object-oriented programming in ABL, see Develop Object-oriented ABL Applications.

Procedural programming means that you write sets of language statements that you can save in individual, named procedures. The language statements are usually executed or processed in the order in which they appear in the procedure. In a simple procedure, the statements are executed as they appear. As you move further into building event-driven applications, where the user has a variety of ways to control the application by clicking buttons or making menu selections, you will learn about how to define trigger code that sets up blocks of statements to be executed later on when a particular action occurs.

ABL is block-structured

An ABL procedure is made up of blocks. The procedure itself is the main block of the procedure. There are a number of ways to define other blocks within the main procedure block. The FOR EACH statement and its matching END statement are one example of a nested block, in this case one that iterates through a set of database records and executes all the code in between for each record in the set. There are other block statements you can use for different purposes. Some of them are also iterating, and cause the block to be executed multiple times. Others simply define a set of statements to be executed together. You learn about all of these later.