# Service programs

A service program is a collection of runnable procedures and available data items easily and directly accessible by other ILE programs or service programs. Service programs are a means of packaging callable routines (functions or procedures) into a separately bound program and provides modularity and improves maintainability. You can use off-the-shelf modules developed by third parties or package your own modules for third-party use. Service programs are created by a compiler option that includes the Create Service Program (CRTSRVPGM) command.

Service programs provide common services that other ILE objects may need; hence the name service program. An example of a set of service programs provided by i5/OS are the run-time procedures for a language. These run-time procedures often include such items as mathematical procedures and common input/output procedures.

A service program differs from a program in several ways:

- A service program is bound to existing programs or other service programs. It cannot run independently.
- A service program does not contain a program entry procedure.
- Service programs are bound by reference. This means that the content of the service program is not copied into the program to which it is bound. Instead, linkage information about the service program is bound into the program.