Check out these articles.
As well as a plethora of other hits at:
A primary purpose of binder language is to allow multiple generations of a service program to remain linked to programs. It provides a kind of 'level check' to the programs that use its procedures.
As new procedures are added to a service program, binder language lets you add additional signatures. As long as previous signatures are maintained and the interfaces for the procedures associated with those signatures are kept stable, any program that was previously bound to the service program can trust that everything will continue working as always.
If you add three new procedures, you would add a new list of procedures to the binder language and specify one new signature. If the previous signatures are kept in the binder language, all of the old programs can keep running without having to be recreated. The existing binding will continue to work.
Without using binder language, every time you recreated a service program to add a new procedure, every program that used the service program would need to be recreated.