SAP ABAP dynpro programs, dialog screen programs with input fields, buttons, OO ALV grids etc..
An SAP dialog program is an ABAP development which consists of many screens which when linked together make up an application which allows the user to perform a specific piece of functionality such as creating a purchase order (ME21). These screens are referred too as dynpros (DYnamic PROgrams) and are made up of the actual user screen and its associated flow logic which are all stored within an SAP module pool. It is the flow logic via the use of the PBO and PAI that controls the process and functionality of the screen and depending on the user actions the appropriate event or relevant next dynpro is called.
The PBO module controls all events and functionality that needs to be performed before a screen is displayed to the user. i.e. populating default fields, hiding fields based on certain criteria.
The PAI module controls all the events and functionality which needs to be performed after the user performs an action. This includes things like field validation, checking the ok code to see what action the selected and performing the associated functionality etc etc...