In computing, Interactive System Productivity Facility (ISPF) is a software product for the z/OS operating system that runs on IBM mainframes. It includes a screen editor, the user interface of which was emulated by some microcomputer editors sold commercially starting in the late 1980s, including SPFPC.
ISPF primarily provides an IBM 3270 terminal interface with a set of panels. Each panel may include menus and dialogs to run tools on the underlying Time Sharing Option (TSO). Generally, these panels just provide a convenient interface to do tasks—most of them execute modules of IBM mainframe utility programs to do the actual work. ISPF is frequently used to manipulate z/OS data sets via its Program Development Facility named ISPF/PDF, where PDF refers to Program Development Facility.
An early version was called merely SPF and introduced in MVS system in 1974. Originally this stood for Structured Programming Facility, since it was introduced about the same time as structured programming concepts, but later the name was changed to System Productivity Facility. In 1985 IBM ported ISPF/PDF to its VM/SP operating system, where it was able to use either PDF or XEDIT as an editor.
ISPF can also be run from a z/OS batch job.
ISPF/PDF Interactive Tools 
When a user signs on to TSO they can start up ISPF/PDF. Through a menuing system this provides them access to many useful tools for application development and for administering the z/OS operating system.
Such tools include
- Browse - for viewing data sets, Partitioned Data Set (PDS) members, and Unix System Services files.
- Edit - for editing data sets, PDS members, and Unix System Services files.
- Utilities - for performing data manipulation operations, such as:
- Data Set List - which allows the user to list and manipulate (copy, move, rename, print, catalog, delete, etc.) files (termed "data sets" in the z/OS environment).
- Member List - for similar manipulations of members of PDSs.
- Search facilities for finding modules or text within members or data sets.
- Compare facilities for comparing members or data sets.
- Library Management, including promoting and demoting program modules.
ISPF As A User-Interface Development Environment 
Underlying ISPF/PDF is an extensive set of tools that allow application developers to create panel-driven applications, and a set of guidelines to promote consistent use of ISPF functions. A "panel" is a character-based "window" which can encompass all or part of a 3270 session's screen real estate. See Text-based user interfaces.
Most mainframe software vendors used ISPF functions to create their applications, so their tools are similar in appearance and operation to ISPF. Similarly, many installations write their own informal tools that use ISPF services.
ISPF services are generally available to any programmer in the shop, and can be used to write panels for either personal or shop-wide use, writing in either compiled languages such as C, COBOL, PL/I, or interpreted languages such as CLIST and REXX.
ISPF applications can be used to perform so-called "file tailoring" functions, customisation of specially crafted JCL members called "skeletons".
ISPF Editor 
The editor screen contains a command line where commands are issued. There is a six character line number column in the left margin with the remainder of the screen width being filled with the records of the dataset being edited. Line commands such as insert and delete are entered by over-typing in the line number fields.
The editor has several key functions:
- Context sensitive color highlighting for several languages and file types
- editor macro commands in rexx or compiled languages
- comparison with another dataset
- models of ISPF service calls
- editing of PC based files
- recovery from lost sessions
The editor can also be invoked in a 'view' mode. It behaves like the editor, but does not allow saving the data.
ISPF provides the 'editor interface' which lets an application program display arbitrary data in the familiar editor panel.
ISPF Customization 
ISPF is designed to be customised for each user (a fairly new concept in 1974, when it was introduced).
It supports a set of 24 Function keys which, when pressed, execute commands. These are customizable: Each user can replace the default commands assigned to any key with his own preferred command (or series of commands). User settings are stored centrally, so that the user can logon from any terminal and the session will use their previously-saved choices. Most Personal computers copied this, and have a set of 12 function keys. Even some defaults have endured: the F1 key triggers a "help" function on a large number of mainframe & PC programs.
ISPF remembers each user's choices for such things as screen colors & layout, the location of the command line and scrolling preferences. It also remembers the last-used data set names on each panel, so the next time the panel is used the names are already filled in. This is very convenient for mainframe programmers because they frequently work with the same files repeatedly.
PC use 
Many of the early users of PCs were mainframe programmers or users, who were accustomed to and liked the ISPF panel system. This led several companies to create versions of ISPF that run on Windows or Linux PC systems. In 1984 IBM introduced the EZ-VU dialog manager for DOS PCs. The SPFPC and Kedit editors are still sold currently.
ISPF for z/OS provides a built-in downloadable client program that can install and run on Windows PCs and UNIX workstations. This client program, called the ISPF Workstation Agent, communicates directly with ISPF on z/OS and provides a point-and-click graphical user interface automatically.
The ISPF Workstation Agent can be used to edit PC based files from the ISPF editor to take advantage of the editor's strengths.
See also 
- ISRLEMX, the ISPF Member Expansion utility that is used on IBM mainframes
- Time Sharing Option (TSO), usually used to run ISPF
- SMIT, the built-in menu/panels program for AIX
- Fosdick, Howard (1987). Using IBM's ISPF dialog manager. Van Nostrand Reinhold.
- Gillin, Paul (January 21, 1985). "Arrival of ISPF version: VM blessing or burden?". Computerworld. Retrieved February 10, 2013.
- Fosdick, Howard (March 30, 1987). "ISPF key in convergence". Computrworld. Retrieved October 26, 2012.
- "Why IBM Isn't King of Software". Info World. July 29, 1985. Retrieved February 6, 2013.