Conversational Programming System or CPS was an early Time-sharing system offered by IBM which ran on System/360 mainframes circa 1967 through 1972. CPS was implemented as an interpreter, and users could select either a rudimentary form of BASIC or a reasonably complete version of PL/I. A third option provided remote job entry (RJE) features allowing users to submit JCL job streams for batch processing. A fourth option was called control mode. Normally, only the system operator would be permitted to use control mode. The available features in control mode included:
CPS provided a highly interactive user experience. It accomplished this by giving an immediate syntax error (when necessary) as soon as each line of a program was entered.
CPS was also offered with a firmware-assisted interpreter, on the IBM System/360 Model 50, only, but few Model 50 installations elected to install this RPQ. This RPQ executed the EVAL function of CPS's programming stack using a firmware assist.
The IBM-released version of CPS was designed to run on the IBM 1050 terminal and the IBM 2741 terminal with the "break feature". User groups later added support for the IBM 2260 video display terminal.
CPS support for the IBM 2741 "break feature" most likely influenced the eventual user group support for the "break feature" and the IBM 1050 terminal on IBM Administrative Terminal System (ATS/360), as many IBM customers which operated CPS also operated ATS/360.
CPS was ultimately superseded by TSO. An IBM program product was offered which provided limited CPS functionality under TSO, intended mainly as a "bridge" between CPS and TSO.