<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-os vector-sticky-header-enabled" lang="en" dir="ltr"><head>
    <meta charset="UTF-8">
    <title>IBM PL/S</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="icon" type="image/png" href="../_res_/favicon.png">
    <link rel="canonical" href="https://en.wikipedia.org/wiki/IBM_PL%2FS"> <link href="../_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
    <link href="../_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
    <link href="../_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
    <link href="../_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
    <meta name="ResourceLoaderDynamicStyles" content="">
    
    <link rel="stylesheet" type="text/css" href="../_mw_/site.styles.css">
    <link rel="stylesheet" type="text/css" href="../_mw_/noscript.css">
    <link rel="stylesheet" type="text/css" href="../_res_/footer.css">
    <link rel="stylesheet" type="text/css" href="../_res_/vector-2022.css">
  </head>
  <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-IBM_PL_S rootpage-IBM_PL_S skin-vector-2022 action-view">
    <div class="mw-page-container">
      <div class="mw-page-container-inner">
        <div class="mw-content-container">
          <main id="content" class="mw-body">
            <header class="mw-body-header vector-page-titlebar">
              <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">IBM PL/S</span></h1>
            </header>
            <a id="top"></a>
            <div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
              <div id="contentSub">
                <div id="mw-content-subtitle"></div>
              </div>
              <div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1305433154">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end   https://en.wikipedia.org/ */
</style>
<p><b>PL/S</b>, short for <b>Programming Language/Systems</b>, is  a "machine-oriented" <a href="../Programming_language" title="Programming language">programming language</a> based on <a href="../PL/I" title="PL/I">PL/I</a>. It was developed by <a href="../IBM" title="IBM">IBM</a> in the late 1960s, under the name <b>Basic Systems Language</b> (<b>BSL</b>), as a replacement for <a href="../Assembly_language" title="Assembly language">assembly language</a> on internal software projects; it included support for <a href="../Inline_assembly" class="mw-redirect" title="Inline assembly">inline assembly</a> and explicit control over <a href="../Processor_register" title="Processor register">register</a> usage.
</p><p>Early projects using PL/S were the batch utility, <a href="../IEHMOVE" class="mw-redirect" title="IEHMOVE">IEHMOVE</a>, and the <a href="../Time_Sharing_Option" title="Time Sharing Option">Time Sharing Option</a> of <a href="../Multiprogramming_with_a_Variable_number_of_Tasks" class="mw-redirect" title="Multiprogramming with a Variable number of Tasks">MVT</a>, TSO.
</p><p>By the 1970s, IBM was rewriting its flagship operating system in PL/S.   Although users frequently asked IBM to release PL/S for their use,  IBM refused, saying that the product was proprietary.   Their concern was that open PL/S would give competitors, <a href="../Amdahl_Corporation" title="Amdahl Corporation">Amdahl</a>, <a href="../Hitachi_Data_Systems_History" class="mw-redirect" title="Hitachi Data Systems History">Itel</a> (National Advanced Systems), <a href="../Storage_Technology_Corporation" class="mw-redirect" title="Storage Technology Corporation">Storage Technology Corporation</a>, <a href="../Trilogy_Systems" title="Trilogy Systems">Trilogy Systems</a>, <a href="../Magnuson_Computer_Systems" title="Magnuson Computer Systems">Magnuson Computer Systems</a>, <a href="../Fujitsu" title="Fujitsu">Fujitsu</a>, <a href="../Hitachi%2C_Ltd." class="mw-redirect" title="Hitachi, Ltd.">Hitachi</a>, and other <a href="../Plug_Compatible_Manufacturer" class="mw-redirect" title="Plug Compatible Manufacturer">PCM</a> vendors a competitive advantage. However, even though they refused to make available a compiler, they shipped the PL/S source code to large parts of the OS to customers, many of whom thus became familiar with reading it.
</p><p>Closed PL/S meant that only IBM could easily modify and enhance the operating system.
</p><p>PL/S was succeeded by PL/S II, PL/S III and PL/AS (Programming Language/Advanced Systems), and then PL/X (Programming Language/Cross Systems). PL/DS (Programming Language/Distributed Systems) was a closely related language used to develop the <a href="../IBM_8100_DPPX" class="mw-redirect" title="IBM 8100 DPPX">DPPX</a> operating system, and PL/DS II was a port of the S/370 architecture for the DPPX/370 port.
</p><p>As the market for computers and software shifted away from IBM mainframes and MVS, IBM recanted and has offered the current versions of PL/S to select customers (ISVs through the Developer Partner program.)
</p>

<div class="mw-heading mw-heading2"><h2 id="Rand_Compiler_for_PL/S"><span id="Rand_Compiler_for_PL.2FS"></span>Rand Compiler for PL/S</h2></div>
<figure class="mw-halign-left" typeof="mw:File/Thumb"><img src="../_assets_/0c70a452f799bfe840676ee341124611/%22Our_Pleasure%22_button.png" decoding="async" width="125" height="123" class="mw-file-element" data-file-width="500" data-file-height="492" loading="lazy"><figcaption><small>RL/S announcement button distributed by Rand at Share 1976</small></figcaption></figure>
<p>The <b>Rand RL/S compiler for IBM’s PL/S language</b> was developed in the early 1970s by the Computation Center of the Rand Corporation in Santa Monica, CA.&nbsp; It was implemented using the <a href="../XPL" title="XPL">XPL</a> compiler generator system by a team of three Rand programmers (<b>R. Lawrence Clark,</b> <b>James S. Reiley</b>, and the team leader <b>David J. Smith</b>).&nbsp; The Rand RL/S compiler was developed independently of and without any assistance from IBM.&nbsp; Only publicly available, non-copyrighted PL/S documentation and PL/S source and generated assembler code examples from IBM distributed source files for the <a href="../MVS" title="MVS">MVS operating system</a> were used.
</p><p>RL/S is fully compatible with IBM’s <a rel="nofollow" class="external text" href="http://www.bitsavers.org/pdf/ibm/360/pls/GC28-6794-0_PLSIIguideMay74.pdf">PL/S II</a> language.&nbsp; This was assured by parsing many thousands of lines of IBM written PL/S code taken from the MVS distribution files.&nbsp; The assembler language code produced by the Rand RL/S compiler is not identical to the code produced by IBM’s PL/S compiler, but it is functionally equivalent.
</p><p>Rand has been a long-time contributor to computer research and development (e.g., <a href="../JOSS" title="JOSS">JOSS</a>, the <a href="../RAND_Tablet" title="RAND Tablet">Rand tablet</a>, <a href="../ORVYL_and_WYLBUR" title="ORVYL and WYLBUR">WYLBUR</a>) and was an early pioneer in the definition and development of “packet switching” network technology (<a rel="nofollow" class="external text" href="https://www.rand.org/about/history/baran.html">Baran</a>).&nbsp; Rand was also one of the early nodes on the <a href="../ARPANET" title="ARPANET">Arpanet</a>, the Defense Department’s precursor to the <a href="../Internet" title="Internet">Internet</a>.
</p><p>Rand’s interest in PL/S derived from extensive modifications that the Computation Center had made to IBM’s <a href="../OS/360_and_successors" title="OS/360 and successors">MVT operating system</a>, including modifications to improve the performance of the Arpanet on its IBM 360 computer.&nbsp; Because MVT did not process network interrupts quickly enough to handle the Arpanet traffic, a “<a href="../Hypervisor" title="Hypervisor">hypervisor</a>” was developed to allow Arpanet interrupts to be handled by specially written code while all other interrupts were handled by MVT.&nbsp; When the MVS operating system was announced by IBM, Rand volunteered as an early “beta” site for the operating system with the intent of porting the hypervisor and other modifications to MVS.
</p>
<figure typeof="mw:File/Thumb"><img src="../_assets_/0c70a452f799bfe840676ee341124611/%22Please%22_button.png" decoding="async" width="125" height="123" class="mw-file-element" data-file-width="500" data-file-height="491" loading="lazy"><figcaption><small>PL/S "please" button distributed by Share attendees</small></figcaption></figure>
<p>As is well <a rel="nofollow" class="external text" href="https://www.washingtonpost.com/archive/business/1987/09/20/ibm-seen-as-loser-in-truce-with-fujitsu-over-software/a94ea5ba-17b0-41f1-ae98-93a2107cbb8f/">documented</a>, IBM, however, refused to provide its PL/S compiler to customers, claiming it was a significant competitive advantage.&nbsp; Not having the compiler meant that neither competitors nor customers could modify the MVS code at the PL/S source level, and could only modify the generated assembler code.&nbsp; However, modifications made at the generated assembler level were easily obsoleted when IBM modified the PL/S source code and distributed re-generated assembler code. This was particularly true of modifications to PL/S generated data structures.&nbsp; Rand, therefore, decided to develop its own version of a PL/S compiler to meet both operational objectives and contractual commitments.
</p><p>The RL/S compiler was initially written in <a href="../PL/I" title="PL/I">PL/I</a> and later converted to RL/S to improve performance. With few restrictions, RL/S programs could be developed using IBM’s PL/I compiler for preprocessing and debugging, with the final code then compiled by RL/S.
</p><p>The Rand RL/S language and compiler were publicly announced in August, 1976, at a Share meeting where numerous copies of the <i><a href="https://archive.org/details/rand-rl-s-language-reference-manual-1977/mode/2up" class="extiw external" title="iarchive:rand-rl-s-language-reference-manual-1977/mode/2up"><b>RL/S Language Reference Manual</b></a></i> were distributed to attendees.&nbsp; IBM quickly responded claiming the language was “proprietary”.&nbsp; While Rand admitted no wrong doing in developing RL/S, Rand management agreed not to distribute the compiler publicly.&nbsp; Rand, however, continued to use the RL/S language and compiler internally for many projects.
</p>
<div class="mw-heading mw-heading2"><h2 id="Fujitsu's_Implementation"><span id="Fujitsu.27s_Implementation"></span>Fujitsu's Implementation</h2></div>
<p>A fully compliant PL/S compiler was developed by Fujitsu Ltd in the late-1970s, adapting IBM's PL/I Optimizer compiler source code as its starting point. This PL/S compiler was used internally by Fujitsu, and also by Fujitsu's external affiliates. Whether or not IBM was aware of this unlicensed use of its intellectual property is not known. The phase names of this PL/S compiler were the same as the corresponding phase names of IBM's PL/I Optimizer compiler, with the initial "I" (IBM) in each phase name being replaced by an initial "J" (Japan). All IBM copyright notices (source and object) within the modules were deleted to hide their true origin and ownership.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="../PL360" title="PL360">PL360</a></li>
<li><a href="../High-level_assembler" title="High-level assembler">High-level assembler</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://bitsavers.org/pdf/ibm/360/bsl/Z28-6642-0_BSL_langSpec.pdf"><i> BSL Language Specifications</i></a>, International Business Machines Corp., 1968, Z28-6642-0. Note that BSL was renamed PL/S and replaced by PL/S II</li>
<li>W.R. Brittenham, "PL/S, Programming Language/Systems", <i>Proc GUIDE Intl</i>, GUIDE 34, May 14, 1972, pp.&nbsp;540–556</li>
<li>W.R. Brittenham and B.F. Melkun, "The Systems Programming Language Problem", Proceedings of the IFIP Working Conference on Machine Oriented Higher Level Languages, Trondheim, Norway, August 29–31, 1973, pp.&nbsp;29–47. Amsterdam: North-Holland Publishing Co.; New York: American Elsevier, 1974.  This paper explores the technical and psychological problems encountered in implementing PL/S. The language and compiler are described. The discussion that followed presentation of the paper is included.</li>
<li><a href="../Gio_Wiederhold" title="Gio Wiederhold">Gio Wiederhold</a> and <a href="../John_Ehrman" title="John Ehrman">John Ehrman</a>, "Inferred SYNTAX and SEMANTICS of PL/S", <i>Proceedings of the SIGPLAN symposium on Languages for system implementation 1971</i>, in <i><a href="../SIGPLAN_Notices" class="mw-redirect" title="SIGPLAN Notices">SIGPLAN Notices</a></i> 6(10) October 1971</li>
<li><i>Guide to PL/S II</i>, International Business Machines Corp., 1974. GC28-6794-0 Note that this manual is very out of date with respect to the PL/X language in use today.</li>
<li><a href="https://archive.org/details/rand-rl-s-language-reference-manual-1977/mode/2up" class="extiw external" title="iarchive:rand-rl-s-language-reference-manual-1977/mode/2up"><i>RL/S Language Reference Manual</i></a>, The Rand Corporation, The Rand Computation Center, R-1555/11 1977</li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
    This article is issued from <a class="external text" title="Last edited on 2025-12-24" href="https://en.wikipedia.org/wiki/?title=IBM_PL%2FS&amp;oldid=1329274263">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
            </div>
          </main>
        </div>
      </div>
    </div>
     <script src="../_webp_/webpHandler.js"></script>
  

</body></html>