Кіріспе
IBM-нің меншікті PL/S жүйелік бағдарламалау тілі, Programming Language/Systems тілінің қысқартылған атауы, PL/I негізінде құрылған "машинаға бағытталған" бағдарламалау тілі. Ол 1960 жылдардың соңында IBM компаниясымен Basic Systems Language (BSL) деген атпен ішкі бағдарламалық жобалардағы ассемблер тілін алмастыру мақсатымен әзірленді; оған тікелей ассемблерді қолдау және тіркелімдерді пайдалануды нақты бақылау мүмкіндігі кірді. PL/S тілін қолданған алғашқы жобалар – пакеттік өңдеу құралы IEHMOVE және MVT жүйесінің TSO уақытты бөлісу опциясы болды. 1970 жылдары IBM өзінің флагмандық операциялық жүйесін PL/S тілінде қайта жазып жатты. Пайдаланушылар IBM-ден PL/S тілін өздері пайдалануға рұқсат беруді жиі сұрағанмен, IBM өнімнің меншікті екенін айтып, бас тартты. Олардың алаңдаушылығы ашық PL/S тілі бәсекелестерге – Amdahl, Itel (National Advanced Systems), Storage Technology Corporation, Trilogy Systems, Magnuson Computer Systems, Fujitsu, Hitachi және басқа PCM жеткізушілеріне бәсекелестік артықшылық береді деп санады. Дегенмен, компиляторды ұсынудан бас тартқанмен, олар PL/S бастапқы кодын операциялық жүйенің үлкен бөліктерін клиенттерге жіберді, олардың көптегені оны оқуға үйренді. Жабық PL/S тілі операциялық жүйені тек IBM ғана оңай өзгерте және жақсарта алатынын білдірді. PL/S тілінен кейін PL/S II, PL/S III және PL/AS (программалау тілі/жетілдірілген жүйелер), содан кейін PL/X (программалау тілі/қосымша жүйелер) пайда болды. PL/DS (программалау тілі/таратылған жүйелер) тілі DPPX операциялық жүйесін әзірлеу үшін қолданылды, ал PL/DS II – DPPX/370 порты үшін S/370 архитектурасының порты болды. Компьютерлер мен бағдарламалық қамтамасыз ету нарығы IBM мейнфреймдері мен MVS жүйесінен ауысқаннан кейін, IBM өз позициясын өзгертіп, PL/S тілінің қазіргі нұсқаларын таңдалған клиенттерге (ISV-лер арқылы әзірлеуші серіктес бағдарламасы арқылы) ұсынды.
PL/S, short for Programming Language/Systems, is a "machine oriented" programming language based on PL/I. It was developed by IBM in the late 1960s, under the name Basic Systems Language (BSL), as a replacement for assembly language on internal software projects; it included support for inline assembly and explicit control over register usage. Early projects using PL/S were the batch utility, IEHMOVE, and the Time Sharing Option of MVT, TSO. 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, Amdahl, Itel (National Advanced Systems), Storage Technology Corporation, Trilogy Systems, Magnuson Computer Systems, Fujitsu, Hitachi, and other PCM 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. Closed PL/S meant that only IBM could easily modify and enhance the operating system. 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 DPPX operating system, and PL/DS II was a port of the S/370 architecture for the DPPX/370 port. 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.)
PL/S үшін Rand компиляторы
IBM PL/S тілі үшін Rand RL/S компиляторы 1970-ші жылдардың басында Санта-Моникадағы Rand корпорациясының Есептеу орталығында жасалды. Ол үш Rand бағдарламашысынан (Р. Лоуренс Кларк, Джеймс С. Рейли және команда жетекшісі Дэвид Дж. Смит) тұратын команда XPL компилятор генератор жүйесін пайдалана отырып іске асырылды. Rand RL/S компиляторы IBM-ге тәуелсіз және оның көмегінсіз әзірленді. Тек қана қолжетімді, авторлық құқығы жоқ PL/S құжаттамасы және MVS операциялық жүйесі үшін IBM таратқан бастапқы файлдардан PL/S бастапқы коды мен құрастырылған код үлгілері қолданылды. RL/S IBM PL/S II тілімен толық үйлесімді. Бұл IBM жазған PL/S кодтың мыңдаған жолдарын MVS тарату файлдарынан алған талдау арқылы қамтамасыз етілді. Rand RL/S компиляторымен құрастырылған ассемблерлік тіл коды IBM PL/S компиляторымен құрастырылған кодтан өзгеше, бірақ функционалдық тұрғыдан эквивалентті. Rand ұзақ жылдар бойы компьютерлік зерттеулер мен әзірлемелерге үлес қосты (мысалы, JOSS, Rand планшеті, WYLBUR) және "пакеттік коммутация" желілік технологиясын (Baran) анықтау мен дамытуда алғашқы изашар болды. Rand сондай-ақ Арпанеттегі алғашқы түйіндердің бірі болды, ол Қорғаныс министрлігінің Интернетке дейінгісі еді. Rand-тің PL/S-ке деген қызығушылығы Есептеу орталығының IBM MVT операциялық жүйесіне енгізген кең ауқымды өзгерістерден туындады, соның ішінде IBM 360 компьютерінде Arpanet өнімділігін жақсартуға бағытталған өзгерістер. MVT желілік үзілістерді Arpanet трафигін өңдеу үшін жеткілікті жылдамдықпен өңдемегендіктен, Arpanet үзілістерін арнайы жазылған кодпен өңдеуге мүмкіндік беретін "гипервизор" әзірленді, ал қалған барлық үзілістерді MVT басқарды. IBM MVS операциялық жүйесін жариялаған кезде Rand операциялық жүйенің алғашқы "бета" сынақ алаңы ретінде гипервизорды және басқа өзгерістерді MVS-ке көшіру мақсатымен ерікті болып тіл білдірді. Алайда, IBM өзінің PL/S компиляторын клиенттерге ұсынбады, себебі бұл маңызды бәсекелестік артықшылық деп мәлімдеді. Компилятордың болмауы бәсекелестер мен клиенттерге MVS кодын PL/S бастапқы деңгейінде өзгертуге мүмкіндік бермейтінін, тек құрастырылған кодты өзгертуге мүмкіндік беретінін білдірді. Бірақ, құрастырылған деңгейде жасалған өзгерістер IBM PL/S бастапқы кодын өзгертіп, жаңадан құрастырылған кодты таратқанда оңай ескіріп қалатын. Бұл әсіресе PL/S құрастырылған дерек құрылымдарын өзгерту кезінде айқын болды. Сондықтан Rand операциялық мақсаттарға және шарттық міндеттемелерге сәйкес келетін PL/S компиляторының өзінің нұсқасын жасауды шешті. RL/S компиляторы бастапқыда PL/I тілінде жазылды, кейін өнімділікті жақсарту үшін RL/S-ке аударылды. Аз шектеулермен RL/S бағдарламаларын IBM PL/I компиляторы арқылы алдын ала өңдеу және түзету үшін жасауға болады, содан кейін соңғы код RL/S арқылы құрастырылады. Rand RL/S тілі мен компиляторы 1976 жылдың тамызында Share жиналысында жарияланды, онда RL/S тілдік анықтамалық нұсқаулықтың көптеген даналары қатысушыларға таратылды. IBM тілдің "жеке меншік" екенін мәлімдеп, дереу жауап берді. Rand RL/S-ті жасауда ешқандай қателік жасаған жоқ деп мойындағанмен, Rand басшылығы компиляторды жария етуден бас тартуға келісті. Алайда, Rand көптеген жобалар үшін RL/S тілін және компиляторын ішкі пайдалануды жалғастырды.
Фудзицу "Өндірістері"
Толық сәйкесті PL/S компиляторы 1970-ші жылдардың соңында Fujitsu Ltd компаниясы жасады, бастапқы нүкте ретінде IBM-нің PL/I Optimizer компиляторының бастапқы кодын пайдаланды. Бұл PL/S компиляторы Fujitsu компаниясының ішкі және сыртқы серіктес компаниялары қолданды. IBM өзінің лицензиялық интеллектуалдық меншігінің лицензиясыз қолданылуы туралы білді ме, білмеді ме – белгісіз. Бұл PL/S компиляторының фазалық атаулары IBM-нің PL/I Optimizer компиляторының сәйкес фазалық атауларымен бірдей болды, әр фазалық атаудағы бастапқы "I" (IBM) әрпі "J" (Жапония) әрпімен ауыстырылды. Модульдердегі IBM авторлық құқығы туралы барлық хабарламалар (код және объектілік код) олардың нақты шығу тегі мен иесін жасыру үшін жойылды.