An ESL program can communicate with multiple application programs that are local or remote applications. A local application is an executable (.EXE) program that runs on the workstation at the same time as an ESL program. Local applications are typically written in a third generation language such as C. ESL programs communicate in a similar fashion with programs running on another computer which are connected to the workstation via an asynchronous connection. These remote applications may be written in any language supported by the remote computer.
In each ESL program, you define the application programs that you will communicate with by providing the logical names of these applications in an application environment declaration (see Defining an Application).
Next, you must specify a start action statement to start the application programs before ESL can receive information from, or send information to, these applications (see Starting an Application).
You can specify a stop action statement to stop the applications, or you can allow an application to stop automatically when the ESL program exits (see Stopping an Application).
ESL communicates with application programs by sending and receiving information in the form of ASCII characters. The ESL program specifies the characters that are to be sent, using the send action statement (see Sending Information).
In the response to line or response to char response statements (see Responding to Data Received from an Application), you specify either the exact characters or the pattern of characters to which ESL is to respond. You also specify whether the characters come from a program or from the keyboard. If they come from a program, you must provide the program name. As ESL receives input from the application (or from the keyboard), it compares this input to the characters or pattern of characters provided in the response definition. When a match is detected, ESL performs the action statements within that response definition.
All applications are global. In one ESL program, you might define an application and start it running. In the other programs to which control is transferred, you simply define the application you do not restart it. The application continues to run without interruption as control is transferred between programs; the final ESL program that uses the application may stop it.