Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
PL/I
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===IBM PL/I F and D compilers=== PL/I was first implemented by IBM, at its [[Hursley Laboratories]] in the United Kingdom, as part of the development of [[System/360]]. The first production PL/I [[compiler]] was the PL/I F compiler for the [[OS/360]] Operating System, built by John Nash's team at Hursley in the UK: the runtime library team was managed by I.M. (Nobby) Clarke. The PL/I F compiler was written entirely in System/360 assembly language.<ref name=Krasun>{{cite web|last1=Krasun|first1=Andy|title=The first 35+ years of Hursley software 1958-1993 with some hardware asides, a personal account|url=https://apsg.bcs.org/materials/presentations/20061026krasun.pdf|access-date=May 5, 2020}}</ref> Release 1 shipped in 1966. OS/360 is a real-memory environment and the compiler was designed for systems with as little as 64 kilobytes of real storage β F being 64 kB in S/360 parlance. To fit a large compiler into the 44 kilobytes of memory available on a 64-kilobyte machine, the compiler consists of a control phase and a large number of compiler phases (approaching 100). The phases are brought into memory from disk, one at a time, to handle particular language features and aspects of compilation. Each phase makes a single pass over the partially-compiled program, usually held in memory.<ref>{{cite book|url=http://www.bitsavers.org/pdf/ibm/360/pli/Y28-6800-1_PL1(F)_PLM_Sep66.pdf|title=IBM System/360 Operating System PL/I (F) Compiler Program Logic Manual|id=Y28-6800-1|date=December 1966|publisher=IBM|at=Section 2: Compiler Phases}}</ref> Aspects of the language were still being designed as PL/I F was implemented, so some were omitted until later releases. PL/I RECORD I/O was shipped with PL/I F Release 2. The [[list processing]] functions<ref>These were designed in 1966 for an early Optimizing compiler, written in PL/I and to be bootstrapped starting with the PL/I F compiler</ref>{{snd}} Based Variables, Pointers, Areas and Offsets and [[LOCATE-mode I/O]]{{snd}} were first shipped in Release 4. In a major attempt to speed up PL/I code to compete with Fortran object code, PL/I F Release 5 does substantial [[program optimization]] of DO-loops facilitated by the REORDER option on procedures. A version of PL/I F was released on the [[TSS/360]] timesharing operating system for the [[System/360 Model 67]], adapted at the IBM Mohansic Lab. The IBM La Gaude Lab in France developed "Language Conversion Programs"<ref>There were many delays in shipping these, so a common PL/I joke at the time was that [[Charles de Gaulle|Gen de Gaulle]] forbade La Gaude from shipping them until the [[Concorde]] had its first flight</ref> to convert Fortran, Cobol, and Algol programs to the PL/I F level of PL/I. The PL/I D compiler, using 16 kilobytes of memory, was developed by IBM Germany for the [[DOS/360]] low end operating system. It implements a subset of the PL/I language requiring all strings and arrays to have fixed extents, thus simplifying the run-time environment. Reflecting the underlying operating system, it lacks dynamic storage allocation and the ''controlled'' storage class.<ref>{{cite book|url=http://www.bitsavers.org/pdf/ibm/360/pli/C28-8202-0_PLIsubsetRM_1967.pdf|title=IBM System/360 PL/I Subset Reference Manual|id=C28-8202-0|date=1967|publisher=IBM}}</ref> It was shipped within a year of PL/I F.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
PL/I
(section)
Add topic