Using ISPF/PDF Libraries

Application programmers often work in groups to develop application programs. In many cases, a programmer is a specialist in certain areas of application programming, such as writing assembler language subroutines to be called by programs written in high-level languages. You may be responsible for creating certain file structures for use in multiple applications.

For example, you may be asked to create and maintain the Data Division statements that define certain file structures to be used by a number of COBOL programs, written by other programmers. Or, you may need to write certain FORTRAN subprograms to be called by main programs during processing.

To help share source and object code, the Interactive System Productivity Facility (ISPF) has a companion product called Program Development Facility (PDF) that you can use to create and maintain libraries of shared source code, object code, data, or documentation. These libraries may be sets of CMS files, MACLIBs, or TXTLIBs. They are identified by project name, group name, and type of information in the library.

An ISPF/PDF library is a collection of code or data units called members. Each library generally contains members with the same type of information. For example, all the members of one library may consist of assembler source code. Another could contain COBOL Data Division definitions, or documentation files written in SCRIPT. ISPF/PDF libraries are maintained internally as CMS files. Each library may consist of a set of CMS sequential files, or it may be a MACLIB or TXTLIB. The particular organization is designated when the library is specified to PDF using the file utility (UTILITIES on the first screen and FILE on the second screen).

Each ISPF/PDF library is identified by:
Project name
is the common identifier for all libraries belonging to the same project.
Group name
is the identifier for a particular set of libraries.
Type
is the identifier for the type of information in the library.
PDF usually represents these characteristics the same way an OS partitioned data set is represented—you join them with a period. For example, if your project name is PERSONNEL, the group name is TESTLIB, and the information type is COBOL, the library would be specified as:
PERSONNEL.TESTLIB.COBOL

Most projects use a hierarchy of related libraries to maintain effective version control over the programming development process and to reduce contention in library usage. For example, there may be three levels of library for a given project: a master library for production, a test library, and multiple development libraries. The master library designator could be PRODLIB, the test library TESTLIB, and the development library DEVLIB. The development library could also be given the name of the CMS user who owns the particular library.

For the PERSONNEL project, you could have the following library names:
  • PERSONNEL.PRODLIB.COBOL
  • PERSONNEL.TESTLIB.COBOL
  • PERSONNEL.DEVLIB.COBOL

Each library is uniquely named. This gives great flexibility in accessing various members contained in them.