1845:
of constant expressions using the run-time library, reducing the maximum memory for a compiler phase to 28 kilobytes. A second-time around design, it succeeded in eliminating the annoyances of PL/I F such as cascading diagnostics. It was written in S/360 Macro
Assembler by a team, led by Tony Burbridge, most of whom had worked on PL/I F. Macros were defined to automate common compiler services and to shield the compiler writers from the task of managing real-mode storage, allowing the compiler to be moved easily to other memory models. The gamut of program optimization techniques developed for the contemporary IBM Fortran H compiler were deployed: the Optimizer equaled Fortran execution speeds in the hands of good programmers. Announced with IBM S/370 in 1970, it shipped first for the
1872:
interactive terminal, converting PL/I programs into an internal format, "H-text". This format is interpreted by the
Checkout compiler at run-time, detecting virtually all types of errors. Pointers are represented in 16 bytes, containing the target address and a description of the referenced item, thus permitting "bad" pointer use to be diagnosed. In a conversational environment when an error is detected, control is passed to the user who can inspect any variables, introduce debugging statements and edit the source program. Over time the debugging capability of mainframe programming environments developed most of the functions offered by this compiler and it was withdrawn (in the 1990s?)
3662:
typically using fields in a data structure to encode information about its type and size. The fields can be held in the preceding structure or, with some constraints, in the current one. Where the encoding is in the preceding structure, the program needs to allocate a based variable with a declaration that matches the current item (using expressions for extents where needed). Where the type and size information are to be kept in the current structure ("self defining structures") the type-defining fields must be ahead of the type dependent items and in the same place in every version of the data structure. The
196:
1716:
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.
6908:
4328:
367:(announced in 1964 and delivered in 1966) was designed as a common machine architecture for both groups of users, superseding all existing IBM architectures. Similarly, IBM wanted a single programming language for all users. It hoped that Fortran could be extended to include the features needed by commercial programmers. In October 1963 a committee was formed composed originally of three IBMers from New York and three members of
1861:. (The developers were unaware that while they were shoehorning the code into 28 kb sections, IBM Poughkeepsie was finally ready to ship virtual memory support in OS/360). It supported the batch programming environments and, under TSO and CMS, it could be run interactively. This compiler went through many versions covering all mainframe operating systems including the operating systems of the Japanese
1807:). The performance objectives set for the compilers are shown in an IBM presentation to the BCS. The compilers had to produce identical results – the Checkout Compiler is used to debug programs that would then be submitted to the Optimizer. Given that the compilers had entirely different designs and were handling the full PL/I language this goal was challenging: it was achieved.
1683:), Craig Franklin (Data General), Lois Frampton (Digital Equipment Corporation), and editor, D.J. Andrews of IBM undertook to rewrite the entire document, each producing one or more complete chapters. The standard is couched as a formal definition using a "PL/I Machine" to specify the semantics. It was the first programming language standard to be written as a semi-formal definition.
3420:
the result to a float decimal? Go ahead! Free a controlled variable procedure parameter and reallocate it before passing it back? Overlay three different types of variable on the same memory location? Anything you say! Write a recursive macro? Well, no, but Real Men use rescan. How could a language so obviously designed and written by Real Men not be intended for Real Man use?
3415:-similarities to COBOL, Fortran, and ALGOL. These were PL/I elements that looked similar to one of those languages, but worked differently in PL/I. Such frustrations left many experienced programmers with a jaundiced view of PL/I, and often an active dislike for the language. An early UNIX fortune file contained the following tongue-in-cheek description of the language:
3720:-units, allowed the program to stay in control in the face of hardware or operating system exceptions and to recover debugging information before closing down more gracefully. As a program became properly debugged, most of the exception handling could be removed or disabled: this level of control became less important when conversational execution became commonplace.
1579:, and particularly that from IBM implement many extensions over the standardized version of the language. The IBM extensions are summarised in the Implementation sub-section for the compiler later. Although there are some extensions common to these compilers the lack of a current standard means that compatibility is not guaranteed.
3686:
computer science. In addition to the problem of wild references and buffer overruns, issues arise due to the alignment and length for data types used with particular machines and compilers. Many cases where pointer arithmetic might be needed involve finding a pointer to an element inside a larger data structure. The
3336:
PL/I, took added implementation effort and additional compiler passes. A PL/I compiler was two to four times as large as comparable
Fortran or COBOL compilers, and also that much slower—supposedly offset by gains in programmer productivity. This was anticipated in IBM before the first compilers were written.
553:: each capability to be independent of other capabilities and freely combined with other capabilities wherever meaningful. Each capability to be available in all contexts where meaningful, to exploit it as widely as possible and to avoid "arbitrary restrictions". Orthogonality helps make the language "large".
2113:
The latest series of PL/I compilers for z/OS, called
Enterprise PL/I for z/OS, leverage code generation for the latest z/Architecture processors (z14, z13, zEC12, zBC12, z196, z114) via the use of ARCHLVL parm control passed during compilation, and was the second High level language supported by z/OS
1844:
The PL/I optimizing compiler took over from the PL/I F compiler and was IBM's workhorse compiler from the 1970s to the 1990s. Like PL/I F, it is a multiple pass compiler with a 44 kilobyte design point, but it is an entirely new design. Unlike the F compiler, it has to perform compile time evaluation
425:
The language was first specified in detail in the manual "PL/I Language
Specifications. C28-6571", written in New York in 1965, and superseded by "PL/I Language Specifications. GY33-6003", written by Hursley in 1967. IBM continued to develop PL/I in the late sixties and early seventies, publishing it
3407:
due to a perceived complexity of the language and immaturity of the PL/I F compiler. Programmers were sharply divided into scientific programmers (who used
Fortran) and business programmers (who used COBOL), with significant tension and even dislike between the groups. PL/I syntax borrowed from both
3419:
Speaking as someone who has delved into the intricacies of PL/I, I am sure that only Real Men could have written such a machine-hogging, cycle-grabbing, all-encompassing monster. Allocate an array and free the middle third? Sure! Why not? Multiply a character string times a bit string and assign
2956:
on System 370) and application generators became the focus of mainframe users' application development. Significant parts of the language became irrelevant because of the need to use the corresponding native features of the subsystems (such as tasking and much of input/output). Fortran was not used
1715:
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. Release 1 shipped in 1966. OS/360 is a real-memory environment and the compiler was designed for
6324:
The compiler cannot tell whether a statement is a declaration or a multiple assignment statement until encountering the "=" of the assignment or ";" of the DECLARE—which can be several lines later. The fact that DECLARE/DCL were not reserved is the proximate cause in this example –
3661:
Record I/O and list processing produce situations where the programmer needs to fit a declaration to the storage of the next record or item, before knowing what type of data structure it has. Based variables and pointers are key to such programs. The data structures must be designed appropriately,
2982:
On mainframes there were substantial business issues at stake too. IBM's hardware competitors had little to gain and much to lose from success of PL/I. Compiler development was expensive, and the IBM compiler groups had an in-built competitive advantage. Many IBM users wished to avoid being locked
2049:
and AIX. IBM continued to add functions to make PL/I fully competitive with other languages (particularly C and C++) in areas where it had been overtaken. The corresponding "IBM Language
Environment" supports inter-operation of PL/I programs with Database and Transaction systems, and with programs
1996:
compilers which supported a sequence of subsets of PL/I called SP/1, SP/2, SP/3, ..., SP/8 for teaching programming. Programs that ran without errors under the SP/k compilers produced the same results under other contemporary PL/I compilers such as IBM's PL/I F compiler, IBM's checkout compiler or
1963:, had the unusual capability of never failing to compile any program through the use of extensive automatic correction of many syntax errors and by converting any remaining syntax errors to output statements. The language was almost all of PL/I as implemented by IBM. PL/C was a very fast compiler.
1871:
The PL/I checkout compiler, (colloquially "The
Checker") announced in August 1970 was designed to speed and improve the debugging of PL/I programs. The team was led by Brian Marks. The three-pass design cut the time to compile a program to 25% of that taken by the F Compiler. It can be run from an
473:
To achieve these goals, PL/I borrowed ideas from contemporary languages while adding substantial new capabilities and casting it with a distinctive concise and readable syntax. Many principles and capabilities combined to give the language its character and were important in meeting the language's
3706:
With the prevalence of C and its free and easy attitude to pointer arithmetic, recent IBM PL/I compilers allow pointers to be used with the addition and subtraction operators to giving the simplest syntax (but compiler options can disallow these practices where safety and machine independence are
3685:
declaration can be used with a pointer into the storage to access the storage – inherently unsafe and machine dependent. However, this usage has become important for "pointer arithmetic" (typically adding a certain amount to a known address). This has been a contentious subject in
2656:
language for IBM mainframes. Almost all IBM mainframe system software in the 1970s and 1980s was written in PL/S. It differed from PL/I in that there were no data type conversions, no run-time environment, structures were mapped differently, and assignment was a byte by byte copy. All strings and
2053:
The PL/I design principles were retained and withstood this major extension, comprising several new data types, new statements and statement options, new exception conditions, and new organisations of program source. The resulting language is a compatible super-set of the PL/I Standard and of the
1880:
Perhaps the most commercially successful implementation aside from IBM's was
Digital Equipment Corporation's VAX-11 PL/I, later known as VAX PL/I, then DEC PL/I. The implementation is "a strict superset of the ANSI X3.4-1981 PL/I General Purpose Subset and provides most of the features of the new
1595:
established a "Composite Language Development Committee", nicknamed "Kludge", later renamed X3J1 PL/I. Standardization became a joint effort of ECMA TC/10 and ANSI X3J1. A subset of the GY33-6003 document was offered to the joint effort by IBM and became the base document for standardization. The
3335:
Though the language is easy to learn and use, implementing a PL/I compiler is difficult and time-consuming. A language as large as PL/I needed subsets that most vendors could produce and most users master. This was not resolved until "ANSI G" was published. The compile time facilities, unique to
2991:
This article uses the PL/I standard as the reference point for language features. But a number of features of significance in the early implementations were not in the Standard; and some were offered by non-IBM compilers. And the de facto language continued to grow after the standard, ultimately
2932:
PL/I did not fulfill its supporters' hopes that it would displace Fortran and COBOL and become the major player on mainframes. It remained a minority but significant player. There cannot be a definitive explanation for this, but some trends in the 1970s and 1980s militated against its success by
3081:
statement was in the Standard, but the rest of the features were not. The DEC and Kednos PL/I compilers implemented much the same set of features as IBM, with some additions of their own. IBM has continued to add preprocessor features to its compilers. The preprocessor treats the written source
3390:
An undeclared variable is, by default, declared by first occurrence—thus misspelling might lead to unpredictable results. This "implicit declaration" is no different from FORTRAN programs. For PL/I(F), however, an attribute listing enables the programmer to detect any misspelled or undeclared
3552:-attribute, code to set it to an initial value is executed at this time. Care is required to manage the use of initialization properly. Large amounts of code can be executed to initialize variables every time a scope is entered, especially if the variable is an array or structure. Storage for
3228:
The feature allowed programmers to use identifiers for constants – e.g. product part numbers or mathematical constants – and was superseded in the standard by named constants for computational data. Conditional compiling and iterative generation of source code,
989:
There are no reserved words in PL/I. A statement is terminated by a semi-colon. The maximum length of a statement is implementation defined. A comment may appear anywhere in a program where a space is permitted and is preceded by the characters forward slash, asterisk and is terminated by the
985:
Values are computed by expressions written using a specific set of operations and builtin functions, most of which may be applied to aggregates as well as to single values, together with user-defined procedures which, likewise, may operate on and return aggregate as well as single values. The
1678:
As language development neared an end, X3J1/TC10 realized that there were a number of problems with a document written in English text. Discussion of a single item might appear in multiple places which might or might not agree. It was difficult to determine if there were omissions as well as
4801:
Reacting to IBM's involvement, a number of manufacturers had been reluctant to endorse an effort on a Standard. The initial remit of CLDG/X3J1 was to investigate whether PL/I was a suitable candidate for standardization. The joint effort processed over 3500 proposals for language or textual
394:
IBM took NPL as a starting point and completed the design to a level that the first compiler could be written: the NPL definition was incomplete in scope and in detail. Control of the PL/I language was vested initially in the New York Programming Center and later at the IBM UK Laboratory at
3408:
COBOL and Fortran syntax. So instead of noticing features that would make their job easier, Fortran programmers of the time noticed COBOL syntax and had the opinion that it was a business language, while COBOL programmers noticed Fortran syntax and looked upon it as a scientific language.
5030:
1675:, and various government and university representatives. Further development of the language occurred in the standards bodies, with continuing improvements in structured programming and internal consistency, and with the omission of the more obscure or contentious features.
403:
user groups were involved in extending the language and had a role in IBM's process for controlling the language through their PL/I Projects. The experience of defining such a large language showed the need for a formal definition of PL/I. A project was set up in 1967 in
1790:
compiler-compiler. The influential Multics PL/I compiler was the source of compiler technology used by a number of manufacturers and software groups. EPL was a system programming language and a dialect of PL/I that had some capabilities absent in the original PL/I.
3715:
When PL/I was designed, programs only ran in batch mode, with no possible intervention from the programmer at a terminal. An exceptional condition such as division by zero would abort the program yielding only a hexadecimal core dump. PL/I exception handling, via
3314:
PL/I had been conceived in a single-byte character world. With support for Japanese and Chinese language becoming essential, and the developments on International Code Pages, the character string concept was expanded to accommodate wide non-ASCII/EBCDIC strings.
1749:
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
1802:
The PL/I Optimizer and Checkout compilers produced in Hursley support a common level of PL/I language and aimed to replace the PL/I F compiler. The checkout compiler is a rewrite of PL/I F in BSL, IBM's PL/I-like proprietary implementation language (later
818:
Names may be declared to represent data of the following types, either as single values, or as aggregates in the form of arrays, with a lower-bound and upper-bound per dimension, or structures (comprising nested structure, array and scalar variables):
2024:
In a major revamp of PL/I, IBM Santa Teresa in California launched an entirely new compiler in 1992. The initial shipment was for OS/2 and included most ANSI-G features and many new PL/I features. Subsequent releases provided additional platforms
1917:
In the late 1960s and early 1970s, many US and Canadian universities were establishing time-sharing services on campus and needed conversational compiler/interpreters for use in teaching science, mathematics, engineering, and computer science.
3082:
program as a sequence of tokens, copying them to an output source file or acting on them. When a % token is encountered the following compile time statement is executed: when an identifier token is encountered and the identifier has been
3867:
I/O statements have relatively simple syntax as they do not offer options for the many situations from end-of-file to record transmission errors that can occur when a record is read or written. Instead, these complexities are handled in the
3638:
There are several ways of accessing allocated storage through different data declarations. Some of these are well defined and safe, some can be used safely with careful programming, and some are inherently unsafe or machine dependent.
5697:
2957:
in these application areas, confining PL/I to COBOL's territory; most users stayed with COBOL. But as the PC became the dominant environment for program development, Fortran, COBOL and PL/I all became minority languages overtaken by
3382:
support (an IBM extension to the language) which add cost and complexity to the compiler, and its co-processing facilities require a multi-programming environment with support for non-blocking multiple threads for processes by the
2468:-statement executed in an ON-unit terminates execution of the ON-unit, and raises the condition again in the procedure that called the current one (thus passing control to the corresponding ON-unit for that procedure).
585:
construct is used to include text from other sources during program translation. All of the statement types are summarized here in groupings which give an overview of the language (the Standard uses this organization).
2968:
Second, PL/I was overtaken in the system programming field. The IBM system programming community was not ready to use PL/I; instead, IBM developed and adopted a proprietary dialect of PL/I for system programming. –
4643:
Control of the language was vested in a dedicated Language Control group and a Language Control Board that included representatives of the compiler groups (6 by 1973) in three countries. Daily communication was by
3891:-units. Values of variables that might otherwise be kept in registers between statements, may need to be returned to storage between statements. This is discussed in the section on Implementation Issues above.
371:, the IBM scientific users group, to propose these extensions to Fortran. Given the constraints of Fortran, they were unable to do this and embarked on the design of a new programming language based loosely on
1926:, but PL/I was a popular choice, as it was concise and easy to teach. As the IBM offerings were unsuitable, a number of schools built their own subsets of PL/I and their own interactive support. Examples are:
3370:
statements" in (unseen) callers. Together, these make it difficult to reliably predict when a program's variables might be modified at runtime. In typical use, however, user-written error handlers (the
441:
The goals for PL/I evolved during the early development of the language. Competitiveness with COBOL's record handling and report writing was required. The language's scope of usefulness grew to include
273:. It is designed for scientific, engineering, business and system programming. It has been in continuous use by academic, commercial and industrial organizations since it was introduced in the 1960s.
1686:
A "PL/I General-Purpose Subset" ("Subset-G") standard was issued by ANSI in 1981 and a revision published in 1987. The General Purpose subset was widely adopted as the kernel for PL/I implementations.
3678:
ed fields are placed ahead of the "real" data. If the records in a data set, or the items in a list of data structures, are organised this way they can be handled safely in a machine independent way.
3322:, with the introduction of the DATETIME function that returned the date and time in one of about 35 different formats. Several other date functions deal with conversions to and from days and seconds.
4648:. Changes and extensions were made through a Language Log that reached several thousand detailed points. A management level Language Review Board resolved issues escalated to it by the Control Board.
2501:
A number of vendors produced compilers to compete with IBM PL/I F or Optimizing compiler on mainframes and minicomputers in the 1970s. In the 1980s the target was usually the emerging ANSI-G subset.
2170:
in early PL/I specifications) permits several scalar variables, arrays, or structures to share the same storage in a unit that occupies the amount of storage needed for the largest alternative.
5705:
4054:
HERE(-1): PUT LIST ("I O U"); GO TO Lottery; HERE(0): PUT LIST ("No Cash"); GO TO Lottery; HERE(1): PUT LIST ("Dollar Bill"); GO TO Lottery; HERE(2): PUT LIST ("TWO DOLLARS"); GO TO Lottery;
3440:
meant PL/I was indeed quite a leap forward compared to the programming languages of its time. However, these were not enough to persuade a majority of programmers or shops to switch to PL/I.
3411:
Both COBOL and Fortran programmers viewed it as a "bigger" version of their own language, and both were somewhat intimidated by the language and disinclined to adopt it. Another factor was
3275:
PL/I F had offered some debug facilities that were not put forward for the standard but were implemented by others – notably the CHECK(variable-list) condition prefix,
2979:
Fourth, features such as structured programming, character string operations, and object orientation were added to COBOL and Fortran, which further reduced PL/I's relative advantages.
2884:
It has been widely used in business data processing and for system use for writing operating systems on certain platforms. Very complex and powerful systems have been built with PL/I:
2814:
is a real-time aerospace programming language, best known for its use in the Space Shuttle program. It was designed by Intermetrics in the 1970s for NASA. HAL/S was implemented in XPL.
2545:
Paul Abrahams of NYU's Courant Institute of Mathematical Sciences wrote CIMS PL/I in 1972 in PL/I, bootstrapping via PL/I F. It supported "about 70%" of PL/I compiling to the CDC 6600
2853:
PL/I implementations were developed for mainframes from the late 1960s, mini computers in the 1970s, and personal computers in the 1980s and 1990s. Although its main use has been on
1742:, adapted at the IBM Mohansic Lab. The IBM La Gaude Lab in France developed "Language Conversion Programs" to convert Fortran, Cobol, and Algol programs to the PL/I F level of PL/I.
566:), not part of the standard, for tailoring and combining sections of source code into complete programs. External names to bind separately compiled procedures into a single program.
2256:
New string-handling functions were added – to centre text, to edit using a picture format, and to trim blanks or selected characters from the head or tail of text,
5698:"Enterprise > Micro Focus Studio Enterprise Edition for UNIX > Welcome > Product Information > Installing Studio Enterprise Edition for UNIX > System Requirements"
6720:
2976:
Third, the development environments grew capabilities for interactive software development that, again, made the unique PL/I interactive and debugging strengths less valuable.
1881:
ANSI X3.74-1987 PL/I General Purpose Subset", and was first released in 1980. It originally used a compiler backend named the VAX Code Generator (VCG) created by a team led by
3347:
when it encounters a keyword used in an incorrect context, it often assumes it is a variable name. This leads to "cascading diagnostics", a problem solved by later compilers.
2436:
The package construct consisting of a set of procedures and declarations for use as a unit. Variables declared outside of the procedures are local to the package, and can use
1719:
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
539:
initially proved to be impossible to meet this goal). New attributes, statements and statement options could be added to PL/I without invalidating existing programs. Not even
339:
In the 1950s and early 1960s, business and scientific users programmed for different computer hardware using different programming languages. Business users were moving from
2240:
attribute for controlling date representations and additions to bring time and date to best current practice. New functions for manipulating dates include –
3008:, under the name "multitasking", was implemented by PL/I F, the PL/I Checkout and Optimizing compilers, and the newer AIX and Z/OS compilers. It comprised the data types
5726:
3860:-unit, control might pass to the operating system where a system dump might be produced, or, for some computational conditions, continue execution (as mentioned above).
517:
An extensive structure of defaults in statements, options, and declarations to hide some complexities and facilitate extending the language while minimizing keystrokes.
3658:) to allow different definitions of data to share the same storage. This was not supported by many early IBM compilers. These usages are safe and machine independent.
2133:
but in addition the name and internal values are accessible via built-in functions. Built-in functions provide access to an ordinal value's predecessor and successor.
578:
The language is designed to be all things to all programmers. The summary is extracted from the ANSI PL/I Standard and the ANSI PL/I General-Purpose Subset Standard.
5667:
1727: – 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
4657:
The Universal Language Document (ULD). Technical reports TR25.081, TR25.082, TR25.083, TR25.0S4, TR25.085, TR25.086 and TR25.087, IBM Corp Vienna Austria June 1968
331:
handling. The language syntax is English-like and suited for describing complex data formats with a wide set of functions available to verify and manipulate them.
4756:"PL/I is the first language to provide adequate facilities for scientific computations, business data processing and systems programming in a single language" -
1615:
Proposals to change the base document were voted upon by both committees. In the event that the committees disagreed, the chairs, initially Michael Marcotty of
1057:
statement. The body of a procedure is a sequence of blocks, groups, and statements and contains declarations for names and procedures local to the procedure or
3052:
files. Event data identify a particular event and indicate whether it is complete ('1'B) or incomplete ('0'B): task data items identify a particular task (or
2475:
condition handles invalid operation codes detected by the PC processor, as well as illegal arithmetic operations such as subtraction of two infinite values.
6085:
5995:
3090:
d, and assigned a compile time value, the identifier is replaced by this value. Tokens are added to the output stream if they do not require action (e.g.
6963:
3283:
option. The IBM Optimizing and Checkout compilers added additional features appropriate to the conversational mainframe programming environment (e.g. an
6239:
2403:
name for a set of structure attributes and corresponding substructure member declarations for use in a structure declaration (a generalisation of the
6162:
Open PL/I estimated that in 1995 20% of mainframe legacy applications were in PL/I, with 60% in COBOL: there were 300,000 PL/I programmers worldwide
3375:-unit) often do not make assignments to variables. In spite of the aforementioned difficulties, IBM produced the PL/I Optimizing Compiler in 1971.
2808:
is a dialect of PL/I used to write other compilers using the XPL compiler techniques. XPL added a heap string datatype to its small subset of PL/I.
4726:
Some compilers chose to reserve these identifiers, or issue warnings if they found them used as identifiers. But the subsequent introduction of a
4715:
NPL is designed to serve the needs of an unusually large group of programmers, including scientific, business, real time, and systems programmers.
2109:
Compile time preprocessor extended to offer almost all PL/I string handling features and to interface with the Application Development Environment
1973:(Student Language/1, Student Language/One or Subset Language/1) was a PL/I subset, initially available late 1960s, that ran interpretively on the
815:
are not in the Standard but are supported in the PL/I F compiler and some other implementations are discussed in the Language evolution section.)
6403:
5163:
3642:
Passing a variable as an argument to a parameter by reference allows the argument's allocated storage to be referenced using the parameter. The
6958:
6691:
3681:
PL/I implementations do not (except for the PL/I Checkout compiler) keep track of the data structure used when storage is first allocated. Any
1951:
aimed at teaching computer science basics, offered a limited subset of the PL/I language in addition to BASIC and a remote job entry facility.
1909:, who later sold it to a company named Kednos. Kednos marketed the compiler as Kednos PL/I until October 2016 when the company ceased trading.
5852:
2817:
IBM and various subcontractors also developed another PL/I variant in the early 1970s to support signal processing for the Navy called SPL/I.
2661:
option. PL/S was succeeded by PL/AS, and then by PL/X, which is the language currently used for internal work on current operating systems,
6777:
3841:
preventing a return to the point of interrupt, but permitting the program to continue execution elsewhere as determined by the programmer.
3237:
Structured programming additions were made to PL/I during standardization but were not accepted into the standard. These features were the
6294:
3650:) allows part or all of a variable's storage to be used with a different, but consistent, declaration. The language definition includes a
3343:
are not reserved so programmers can use them as variable or procedure names in programs. Because the original PL/I(F) compiler attempts
1588:
6744:
5008:
5569:
4893:
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
6943:
6938:
6933:
6928:
5299:
3354:(needed to compete with the excellent program optimization carried out by available Fortran compilers) is unusually complex owing to
6761:
6275:
2973:. With the success of PL/S inside IBM, and of C outside IBM, the unique PL/I strengths for system programming became less valuable.
2229:
option on iterative groups enabling a counter-controlled loop to be executed without exceeding the limit value (also essential for
31:
4057:
Statement label variables can be passed to called procedures, and used to return to a different statement in the calling routine.
3805:-statement. With some conditions it is possible to complete executing an ON-unit and return to the point of interrupt (e.g., the
121:
2690:
Two dialects of PL/I named PL/MP (Machine Product) and PL/MI (Machine Interface) were used by IBM in the system software of the
2567:
PL/I is an extended subset of ANSI Programming Language PL/I (ANSI X3.53-1976) for the IBM Series/1 Realtime Programming System.
6948:
6730:
3576:
storage is managed using a stack, but the pushing and popping of allocations on the stack is managed by the programmer, using
3472:
PL/I provides several 'storage classes' to indicate how the lifetime of variables' storage is to be managed –
3229:
possible with compile-time facilities, was not supported by the standard. Several manufacturers implemented these facilities.
3077:
was built by the IBM Boston Advanced Programming Center located in Cambridge, Mass, and shipped with the PL/I F compiler. The
1231:
A declaration of an identifier may contain one or more of the following attributes (but they need to be mutually consistent):
510:
Concise syntax for expressions, declarations, and statements with permitted abbreviations. Suitable for a character set of 60
6737:
6660:
6630:
6611:
6592:
6499:
5784:
4749:
4429:
4393:
1679:
inconsistencies. Consequently, David Beech (IBM), Robert Freiburghouse (Honeywell), Milton Barber (CDC), M. Donald MacLaren (
1592:
5635:
6235:
says OS/360 should have been written in PL/I not PL/S and Assembler. The article is a great summary of the OS/360 program.
6141:
2834:
2050:
written in C, C++, and COBOL, the compiler supports all the data types needed for intercommunication with these languages.
6304:
1987:, used a simplified subset of the PL/I language and focused on good diagnostic error messages and fast compilation times.
6176:
5680:
5423:
1002:
statements) or label name, and a condition prefix enabling or disabling a computational condition – e.g.
2482:
condition is provided to intercept conditions for which no specific ON-unit has been provided in the current procedure.
6204:
5126:
6256:
3770:-units established by the invoking activation are inherited by the new activation. They may be over-ridden by another
2687:, is an instructional dialect of the PL/I computer programming language, developed at Cornell University in the 1970s.
1849:
operating system in August 1971, and shortly afterward for OS/360, and the first virtual memory IBM operating systems
6546:
6527:
5540:
4346:
1984:
1943:
3630:. Data can be allocated and freed within a specific area, and the area can be deleted, read, and written as a unit.
3350:
The effort needed to produce good object code was perhaps underestimated during the initial design of the language.
5926:
1006:). Entry and label names may be single identifiers or identifiers followed by a subscript list of constants (as in
4703:
4685:
1774:, used Early PL/I (EPL), a subset dialect of PL/I, as their implementation language in 1964. EPL was developed at
6116:
2318:
attribute declares an identifier as a constant (derived from a specific literal value or restricted expression).
1771:
1624:
6026:
5240:
3723:
Computational exception handling is enabled and disabled by condition prefixes on statements, blocks (including
5593:
3425:
3355:
5048:
2924:
operating system were originally written in PL/I, but were later rewritten in C during the port of VMS to the
6236:
5192:
4341:
3529:
2949:
2126:
1783:
1640:
360:
3793:-unit is in effect when a condition is raised a standard system action is taken (often this is to raise the
2736:, so-called because it was about 80% of PL/I, was originally developed by IBM Research in the 1970s for the
6751:
4920:
4875:
4692:
3300:
3295:
Several attempts had been made to design a structure member type that could have one of several datatypes (
2830:
6375:
Enterprise PL/I for z/OS PL/I for AIX Rational Developer for System z PL/I for Windows: Language Reference
581:
A PL/I program consists of a set of procedures, each of which is written as a sequence of statements. The
30:"New programming language" redirects here. For the process of implementing new programming languages, see
6912:
6084:
J. von Buttlar; H. Bohm; R. Ernst; A. Horsch; A. Kohler; H. Schein; M. Stetter; K. Theurich (July 2002).
6051:
5979:
The result was the PL.8 language, the ".8" implying that it had about 80 percent of the richness of PL/I.
4333:
3437:
2962:
2914:
2788:
1680:
550:
463:
Improved productivity of the programming process, transferring effort from the programmer to the compiler
379:. This acronym conflicted with that of the UK's National Physical Laboratory and was replaced briefly by
4048:
The programmer can also create an array of static label constants by subscripting the statement labels.
2515:
released a UNIVAC PL/I, and in the 1970s also used a variant of PL/I, PL/I PLUS, for system programming.
6898:
6059:. SIGPLAN '82 Proceedings of the 1982 SIGPLAN symposium on Compiler construction. ACM. pp. 22–31.
5949:
4467:
2983:
into proprietary solutions. With no early support for PL/I by other vendors it was best to avoid PL/I.
2448:
storage. Procedure names used in the package also are local, but can be made external by means of the
6787:
Liant Software Corporation (1994), Open PL/I Language Reference Manual, Rev. Ed., Framingham (Mass.).
6440:
6426:
5806:
5265:
4561:
3448:
562:
Programs divided into separately compilable sections, with extensive compile-time facilities (a.k.a.
413:
324:
408:
to make an unambiguous and complete specification. This led in turn to one of the first large scale
6864:
6771:
IBM, OS/2 PL/I Version 2: Programming: Language Reference, 3rd Ed., Form SC26-4308, San Jose. 1994.
3525:
2838:
2707:
2548:
1632:
563:
500:
A wide range of computational data types, program control data types, and forms of data structure (
447:
6790:
Nixdorf Computer, "Terminalsystem 8820 Systemtechnischer Teil PL/I-Subset",05001.17.8.93-01, 1976.
6454:
6174:
Schultz, G.; D.Rose; C.West; J.Gray (April 1980). "Executable description and validation of SNA".
4851:
4365:
3674:
is used to allocate instances of the data structure. For self-defining structures, any typing and
3267:
These features were all included in IBM's PL/I Checkout and Optimizing compilers and in DEC PL/I.
2899:
was originally written for the IBM 7090 in assembler. The S/360 version was largely written using
5575:
5390:
5218:
5186:
4852:"The first 35+ years of Hursley software 1958-1993 with some hardware asides, a personal account"
2896:
2824:
2764:
2009:
1934:
1794:
The Honeywell PL/I compiler (for Series 60) is an implementation of the full ANSI X3J1 standard.
466:
6806:
6774:
5844:
3599:, but instead of a stack these allocations have independent lifetimes and are addressed through
2748:
architectures. It continues to be used for several IBM internal systems development tasks (e.g.
6826:
6298:
3570:
variables are used to retain variables' contents between invocations of a procedure or block.
2941:
521:
312:
304:
262:
258:
56:
52:
48:
3782:-statement – e.g. to help debug the exception handlers. The dynamic inheritance principle for
2542:
operating systems. A number of operating system utility programs were written in the language.
1068:
is a single statement or block of statements written to be executed when one or more of these
6953:
6860:
6822:
6726:
Fujitsu Ltd, "Facom OS IV PL/I Reference Manual", 70SP5402E-1,1974. 579 pages. PL/I F subset.
4671:
4667:
3433:
3379:
2506:
2030:
1648:
1597:
808:
405:
308:
288:
5994:
W. Gellerich; T. Hendel; R. Land; H. Lehmann; M. Mueller; P. H. Oden; H. Penner (May 2004).
3887:-units can have an effect on optimization, because variables can be inspected or altered in
2936:
First, the nature of the mainframe software environment changed. Application subsystems for
2114:
Language Environment to do so (XL C/C++ being the first, and Enterprise COBOL v5 the last.)
5996:"The GNU 64-bit PL8 compiler: Toward an open standard environment for firmware development"
5068:
4821:
4448:
3786:-units allows a routine to handle the exceptions occurring within the subroutines it uses.
3359:
3351:
3303:
in programming theory, approaches to this became possible on a PL/I base –
2870:
2527:
2523:
1728:
1700:
1601:
507:
Dynamic extents for arrays and strings with inheritance of extents by procedure parameters.
292:
266:
43:
17:
5901:
5875:
5295:
3731:. Operating system exceptions for Input/Output and storage management are always enabled.
3693:
Pointer arithmetic may be accomplished by aliasing a binary variable with a pointer as in
8:
6758:
6716:
CDC. R. A. Vowels, "PL/I for CDC Cyber". Optimizing compiler for the CDC Cyber 70 series.
6713:
Burroughs Corporation, "B 6700 / B 7700 PL/I Language Reference", 5001530. Detroit, 1977.
5099:
4480:
3094:), as are the values of ACTIVATEd compile time expressions. Thus a compile time variable
3053:
3033:
3025:
2652:, a dialect of PL/I, initially called BSL was developed in the late 1960s and became the
2621:
implemented Open PL/I for Windows and UNIX/Linux systems, which they acquired from Liant.
1739:
478:
454:
Performance of compiled code competitive with that of Fortran (but this was not achieved)
400:
3611:
variables can also be used to address arbitrary storage areas by setting the associated
3544:-unit in which they are declared. The compiler and runtime system allocate memory for a
2096:
Improvements in readability of programs – often rendering implied usages explicit (e.g.
1745:
The PL/I D compiler, using 16 kilobytes of memory, was developed by IBM Germany for the
6681:
6108:
6086:"z/CECSIM: An efficient and comprehensive microcode simulator for the IBM eServer z900"
6018:
5825:
5437:
5348:
4626:
4580:
4522:
4501:
4414:
4369:
3627:
3363:
3005:
2854:
2703:
2653:
1960:
556:
443:
320:
296:
6849:
6373:
3754:-unit. When the exception for this condition occurs and the condition is enabled, the
3548:
to contain them and other housekeeping information. If a variable is declared with an
433:
The first compiler was delivered in 1966. The Standard for PL/I was approved in 1976.
6626:
6607:
6588:
6542:
6523:
6495:
5934:
5780:
5668:"What's New in Studio and Server Enterprise Edition 6.0 Service Pack 2 - Wrap Pack 1"
5536:
4903:
4902:
There were many delays in shipping these, so a common PL/I joke at the time was that
4745:
4444:
The committee actually had 8 members at the time the report was released. They were:
4425:
4389:
3155:%procedure_name: PROCEDURE (parameter list) RETURNS (type); statements...; %END;
3065:
2862:
2042:
1919:
1672:
812:
490:
368:
72:
6112:
6022:
5441:
4630:
4584:
2933:
progressively reducing the territory on which PL/I enjoyed a competitive advantage.
2306:
and attributes were added for omitted arguments and variable length argument lists.
6885:
6348:
6185:
6100:
6060:
6010:
5964:
5930:
5829:
5815:
5579:
5526:
5455:
5427:
5244:
5167:
5108:
5077:
4616:
4570:
4038:
attribute), which can store the value of a statement label, and later be used in a
3384:
2795:
2596:
2531:
1906:
1045:) may contain declarations for names and internal procedures local to the block. A
220:
161:
2085:
Additional data types and attributes corresponding to common PC data types (e.g.
1933:
implemented the Remote Users of Shared Hardware (RUSH) time sharing system for an
6781:
6765:
6243:
5774:
5645:
4607:
4473:
2953:
2892:
was initially written in PL/I; the SAS data step is still modeled on PL/I syntax.
2770:
2303:
1868:
The compiler has been superseded by "IBM PL/I for OS/2, AIX, Linux, z/OS" below.
1862:
1779:
1724:
1720:
559:
capabilities for controlling and intercepting exceptional conditions at run time.
284:
63:
6844:
6149:
3837:
condition is raised when this is attempted. An ON-unit may be terminated with a
3121:
strings of varying length with no maximum length. The structure statements are:
105:
6891:
4727:
4523:"Datamation in Business & Science ANOTHER NEW NAME, MORE COMPILERS FOR NPL"
3456:
3258:
2784:
2778:
2757:
2741:
2699:
2578:
2551:
delivered an optimizing subset PL/I compiler for Cyber 70, 170 and 6000 series.
2155:
data type, but strongly typed to bind only to a particular data structure. The
1787:
1644:
1616:
528:
409:
364:
316:
6189:
5296:"Teaching the Fatal Disease (or) Introductory Computer Programming Using PL/I"
5210:
1990:
The Computer Systems Research Group of the University of Toronto produced the
6922:
6870:
5748:
5082:
5063:
4961:
4542:
Report II of the SHARE Advanced Language Development Committee, June 25, 1964
4461:
3520:
variables, similar to that of other block-structured languages influenced by
2702:
of these platforms, and targeted the IMPI instruction set. PL/MI targets the
1930:
1723:
functions – Based Variables, Pointers, Areas and Offsets and
1668:
1660:
1037:
part (see the sample program). The group is the unit of iteration. The begin
501:
494:
457:
388:
195:
6888:, source code in book form, by David Sligar (1977), for IBM PL/1 F compiler.
3902:
Syntax for both COBOL and FORTRAN exist for coding two special two types of
3899:
PL/I has counterparts for COBOL and FORTRAN's specialized GO TO statements.
3387:. Compiler writers were free to select whether to implement these features.
2718:. The PL/MP code was mostly replaced with C++ when OS/400 was ported to the
5631:
4552:
4454:
3943:
There are other/helpful restrictions on these, especially "in programs ...
3444:
3073:
2841:
2730:
architecture. The PL/MI code was not replaced, and remains in use in IBM i.
2564:
2519:
2125:
is a new computational data type. The ordinal facilities are like those in
1636:
1620:
967:
185:
6641:
6064:
5820:
5801:
5531:
5432:
5411:
5248:
4621:
4602:
4575:
4556:
3984:(which restricts the variable's value to "one of the labels in the list.")
3872:-units for the various file conditions. The same approach was adopted for
2913:
PL/I was used to write an executable formal definition to interpret IBM's
469:
to operate effectively on the main computer hardware and operating systems
6232:
5675:
5640:
5206:
5171:
4943:
4757:
3616:
3545:
3319:
2618:
2558:
1882:
1576:
419:
396:
6796:
Q1 Corporation, "The Q1/LMC Systems Software Manual", Farmingdale, 1978.
6702:
Information technology—Programming languages—PL/I general purpose subset
6677:
Information Systems - Programming Language - PL/I General-Purpose Subset
6671:
Information Systems - Programming Language - PL/I General-Purpose Subset
6104:
6014:
5968:
5334:
5112:
4791:
Information Systems - Programming Language - PL/I General-Purpose Subset
1885:. The front end was designed by Robert Freiburghouse, and was ported to
199:
6353:
6264:(Fifth ed.). December 1972. Chapter 15: Multitasking. GC28-8201-4.
3829:
conditions) and resume normal execution. With other conditions such as
2903:, a purpose-built subset PL/I compiler for a dedicated control program.
2889:
2745:
1704:
328:
6759:
Enterprise PL/I for z/OS Version 4 Release 1 Language Reference Manual
6283:(Fifth ed.). October 1976. Chapter 17: Multitasking. GC33-0009-4.
6083:
5993:
4965:
4877:
IBM System/360 Operating System PL/I (F) Compiler Program Logic Manual
4762:
Some Approaches to, and Illustrations of, Programming Language History
4511:. Vol. 11, no. 4. FRANK D. THOMPSON. April 1965. p. 17.
5525:. 1979 SIGPLAN symposium on Compiler construction. pp. 107–116.
4987:
4532:. Vol. 11, no. 6. FRANK D. THOMPSON. June 1965. p. 17.
4421:
4124:/* and then print every subsequent line that contains that string. */
3848:-unit needs to be designed to deal with exceptions that occur in the
3762:-units are inherited down the call chain. When a block, procedure or
3666:-option is used for self-defining extents (e.g. string lengths as in
3429:
3362:
of variables. Unpredictable modification can occur asynchronously in
2900:
2820:
2749:
2727:
2691:
2582:
2539:
1938:
1898:
1775:
1762:
Compilers were implemented by several groups in the early 1960s. The
1628:
482:
340:
300:
6907:
6745:
OS PL/I Checkout and Optimizing Compilers: Language Reference Manual
6649:. Courant Mathematics and Computing Laboratory, New York University.
6277:
OS PL/I Checkout and Optimizing Compilers: Language Reference Manual
5217:(Interview). Interviewed by Grant Saviers. Computer History Museum.
5010:
OS PL/I Checkout and Optimizing Compilers: Language Reference Manual
4327:
3290:
2722:
processor family, although some was retained and retargeted for the
6793:
Ing. C. Olivetti, "Mini PL/I Reference Manual", 1975, No. 3970530 V
4907:
4045:
LABL1: .... . . LABL2: ... . . . MY_DEST = LABL1; . GO TO MY_DEST;
3856:
statement allows a nested error trap; if an error occurs within an
3690:
function computes such pointers, safely and machine independently.
2937:
2802:, starting from version 18, and then SPL, starting from version 19.
2753:
2719:
2649:
2554:
Fujitsu delivered a PL/I compiler equivalent to the PL/I Optimizer.
2395:
as an alias for the set of built-in attributes FIXED BINARY(31.0).
2309:
2058:
New attributes for better support of user-defined data types – the
1974:
1708:
486:
169:
149:
6258:
IBM System/360 Operating System PL/I (F) Language Reference Manual
1025:
statement. Groups may include nested groups and begin blocks. The
3503:
3404:
2995:
2921:
2907:
2874:
2737:
2723:
2711:
2678:
2604:
2589:
2082:
data type, and built-in functions for manipulating the new types.
2038:
1890:
1886:
1846:
1763:
1746:
1735:
994:). Statements may have a label-prefix introducing an entry name (
427:
352:
344:
145:
6880:
5595:
IBM Series/1 PL/I Introduction Program Numbers 5719-PL1 5719-PL3
3264:
SELECT (expression) {WHEN (expression) group}... OTHERWISE group
6721:"decsystem10 Conversational Programming Language User's Manual"
6343:
Hart, Timothy P. (October 1963). "MACRO Definitions for LISP".
2792:
2761:
2715:
2695:
2662:
2535:
2512:
2248:
for converting between dates and number of days, and a general
2034:
1948:
1858:
1850:
1712:
1656:
511:
6831:
3498:
data is allocated and initialized at load-time, as is done in
2557:
Stratus Technologies PL/I is an ANSI G implementation for the
986:
assignment statement assigns values to one or more variables.
226:
6835:
4883:. IBM. December 1966. SECTION 2: COMPILER PHASES. Y28-6800-1.
4645:
3797:
condition). The system action can be reestablished using the
3521:
3510:
variables (similar to C “extern” or Fortran “named common"),
3499:
3400:
2958:
2811:
2670:
2636:
2496:
1923:
1902:
1797:
1731:
of DO-loops facilitated by the REORDER option on procedures.
1664:
372:
356:
348:
141:
6623:
Introduction to PL/I, Algorithms, and Structured Programming
6049:
5800:
Berg, William; Cline, Marshall; Girou, Mike (October 1995).
4412:
Pugh, Emerson W.; Johnson, Lyle R.; Palmer, John H. (1991).
3451:
world) in using its target language's syntax and semantics (
2159:
operator is used to select a data structure using a handle.
1587:
Language standardization began in April 1966 in Europe with
422:
is credited with ensuring PL/I had the CHARACTER data type.
32:
Programming language design § Design and implementation
6839:
6810:
2970:
2945:
2925:
2878:
2866:
2799:
2774:
2733:
2684:
2674:
2666:
2632:
2625:
2612:
2600:
2144:
s to be declared composed from PL/I's built-in attributes.
2046:
1992:
1955:
1804:
277:
231:
181:
177:
173:
165:
5273:
3906:, each of which has a target that is not always the same.
3696:
DCL P POINTER, N FIXED BINARY(31) BASED(ADDR(P)); N=N+255;
3339:
Some argue that PL/I is unusually hard to parse. The PL/I
2577:
In 2011, Raincode designed a full legacy compiler for the
6818:
6814:
6408:
6173:
5460:
5152:
Uniprise Systems, Inc., Irvine, California, 1995, p. xxi.
5097:
B. L. Marks (1973). "The design of a checkout compiler".
4699:
2858:
2805:
2608:
2131:
DEFINE ORDINAL Colour (red, yellow, green, blue, violet);
2026:
1894:
1854:
1767:
1652:
1029:
statement specifies a group or a single statement as the
270:
242:
76:
68:
5849:
Online Historical Encyclopaedia of Programming Languages
5049:"Early Language and Compiler Developments at IBM Europe"
3318:
Time and date handling were overhauled to deal with the
2054:
earlier IBM compilers. Major topics added to PL/I were:
1754:
storage class. It was shipped within a year of PL/I F.
426:
in the GY33-6003 manual. These manuals were used by the
5031:"Microsoft.CodeAnalysis.CSharp A Binder converts names"
4820:
The PL/I machine defined in the standard is covered in
2399:
applies to structures and their members; it provides a
1770:, one of the first to develop an operating system in a
383:(MultiPurpose Programming Language) and, in 1965, with
6854:
6738:
IBM Operating System/360 PL/I: Language Specifications
4502:"Datamation in Business & Science MPPL IN FOR NPL"
4051:
GO TO HERE(LUCKY_NUMBER); /* minus 1, zero, or ... */
3977:
One enhancement, which adds built-in documentation, is
3668:
DCL 1 A BASED, 2 N BINARY, 2 B CHAR(LENGTH REFER A.N.)
3536:
variables is allocated upon entry into the procedure,
3428:
to all data types (including pointers to structures),
2611:. It was based on Subset G of PL/I and was written in
2019:
6896:
6875:
6142:"Open PL/I: Liant addresses PL/I legacy applications"
5902:"RE: Dave McKenzie's UNDELete utility - a LifeSaver!"
5322:
User's Guide to PL/C - The Cornell Compiler for PL/I,
4596:
4594:
3778:-statement. The exception can be simulated using the
3232:
3056:) and indicate its priority relative to other tasks.
2698:
platforms. PL/MP was used to implement the so-called
1703:
in the United Kingdom, as part of the development of
1627:
had to resolve the disagreement. In addition to IBM,
245:
239:
5626:
5624:
5622:
5496:
SPERRY UNIVAC 1100 Series PL/I Programmer Reference,
4551:
4323:
2571:
2045:), but as of 2021, the only supported platforms are
1786:, and others. Initially, it was developed using the
520:
Powerful iterative processing with good support for
234:
223:
27:
Procedural, imperative computer programming language
6381:(Third ed.). IBM. September 2012. SC14-7285-02
2844:
supercomputer, used extensively for graphic design.
2410:
2173:
2004:by P. Grouse at the University of New South Wales,
1810:IBM introduced new attributes and syntax including
1596:major features omitted from the base document were
391:"I"). The first definition appeared in April 1964.
6604:The New PL/I ... for PC, Workstation and Mainframe
5601:(First ed.). IBM. February 1977. GC34-0084-0.
5405:
5403:
4835:1987 PL/I General-Purpose Subset (ANSI X3.74-1987)
4591:
4413:
3710:
2823:, a real-time dialect of PL/I used to program the
2493:statement is unable to obtain sufficient storage.
1959:, a dialect for teaching, a compiler developed at
982:applied to both the real and the imaginary parts.
569:Debugging facilities integrated into the language.
6775:Kednos PL/I for OpenVMS Systems. Reference Manual
6665:Information Systems - Programming Language - PL/I
6469:Digital Research PL/I Language Programmer's Guide
5948:Cocke, John; Markstein, Victoria (January 1990).
5619:
4668:"Frederick P. Brooks Jr. - IEEE Computer Society"
4411:
3750:statement enables the condition specified, e.g.,
3378:PL/I contains many rarely used features, such as
3291:Significant features developed since the standard
3185:and the simple statements, which also may have a
3098:could be declared, activated, and assigned using
2992:driven by developments on the Personal Computer.
2986:
2895:The pioneering online airline reservation system
2706:of those platforms, and is used in the System/38
2375:-statement introduces user-specified names (e.g.
1905:. During the 1990s, Digital sold the compiler to
1834:) and null argument lists to disambiguate, e.g.,
493:, using dummy variables for values where needed (
6920:
6585:PL/I: Structured Programming and Problem Solving
6492:The PL/I Machine: An Introduction to Programming
6300:Kednos PL/I for OpenVMS Systems Reference Manual
6237:"The /360 Architecture and Its Operating System"
3996:... based on a variable's subscript-like value.
3894:
3626:attribute is used to declare programmer-defined
3532:, and "local-storage" in IBM COBOL. Storage for
2379:) for combinations of built-in attributes (e.g.
2310:Program readability – making intentions explicit
1053:statement and is terminated syntactically by an
5772:
5749:"Iron Spring PL/I Compiler - Programming Guide"
5409:
5400:
5293:
4984:Series 60 (Level 66)/6000 PL/I Reference Manual
4941:
4603:"The Early History and Characteristics of PL/I"
3699:It relies on pointers being the same length as
2423:to continue with the next iteration of a loop.
2070:statement to introduce user-defined types, the
1757:
6845:Micro Focus' Mainframe PL/I Migration Solution
6576:PL/I Programming for Engineering & Science
6558:PL/I Programming in Technological Applications
5947:
5873:
5799:
5483:B 6700/B 7700: PL/I Language Reference Manual,
5042:
5040:
5003:
5001:
4999:
4997:
4906:forbade La Gaude from shipping them until the
3044:-options on the record I/O statements and the
2996:Significant features omitted from the standard
2740:architecture. It later gained support for the
2590:PL/I compilers for personal computers and Unix
2346:obviates the need for the contrived construct
6489:
6421:
6419:
5899:
5174:. Archived from the original on June 14, 2021
4937:
4935:
4773:
4771:
4034:PL/I has statement label variables (with the
3703:integers and aligned on the same boundaries.
2910:operating system was largely written in PL/I.
2760:systems) and has been re-engineered to use a
2103:Additional structured programming constructs.
1694:
978:. The mode is specified separately, with the
280:standard, X3.53-1976, was published in 1976.
6050:Marc Auslander; Martin Hopkins (June 1982).
5802:"Lessons learned from the OS/400 OO project"
5630:
5613:IBM Series/1 PL/I: Language Reference Manual
5520:
5397:2nd Ed., Paladin House, Geneva (Ill.), 1978.
5238:
3528:language, the default storage allocation in
2585:platforms, named The Raincode PL/I compiler.
1912:
6892:An open source PL/I Compiler for Windows NT
6202:
5719:
5379:Structured Programming using PL/I and SP/k,
5096:
5037:
4994:
4922:IBM System/360 PL/I Subset Reference Manual
4121:/* Read in a line, which contains a string,
3774:-statement and can be reestablished by the
3311:etc. have been added by several compilers.
2340:attributes prevent unintended assignments.
6964:Programming languages with an ISO standard
6573:
6416:
6398:
6396:
6368:
6366:
6364:
5989:
5987:
5586:
5161:
5061:
4932:
4823:The Definition Mechanism for Standard PL/I
4785:
4783:
4768:
4557:"Highlights of a New Programming Language"
4407:
4405:
3436:, string handling, and extensive built-in
2497:Other mainframe and minicomputer compilers
2275:Compound assignment operators a la C e.g.
1977:; instructional use was its strong point.
1798:IBM PL/I optimizing and checkout compilers
1699:PL/I was first implemented by IBM, at its
460:for new hardware and new application areas
6490:Neuhold, E.J. & Lawson, H.W. (1971).
6352:
6205:"Porting OpenVMS to HP Integrity Servers"
5950:"The evolution of RISC technology at IBM"
5924:
5819:
5530:
5431:
5260:
5258:
5081:
5064:"A Conversational Compiler for Full PL/I"
5046:
4960:
4845:
4843:
4841:
4811:"PL/I Language Specifications. GY33-6003"
4777:ANS Programming Language PL/I. X3.53-1976
4620:
4574:
3462:
2186:(for zero-terminated character strings),
2140:-statement (see below) allows additional
1947:, an interactive time-sharing system for
990:characters asterisk, forward slash (i.e.
6863:, a side-by-side comparison of PL/I and
6639:
6564:
6139:
5150:Uniprise PL/I for UNIX Reference Manual,
4826:. Michael Marcotty, Frederick G Sayward.
3399:Many programmers were slow to move from
3330:
2787:used two different PL/I dialects as the
1734:A version of PL/I F was released on the
6582:
6393:
6361:
6093:IBM Journal of Research and Development
6003:IBM Journal of Research and Development
5984:
5957:IBM Journal of Research and Development
5241:"PL/I Frequently Asked Questions (FAQ)"
5025:
5023:
4780:
4402:
3729:(SIZE, NOSUBSCRIPTRANGE): A(I)=B(I)*C;
3633:
3524:, like the "auto" storage class in the
3424:On the positive side, full support for
2509:announced PL/I for the B6700 and B7700.
2385:DEFINE ALIAS INTEGER FIXED BINARY(31.0)
1517:PICTURE picture-specification or PIC...
481:, with underlying semantics (including
436:
351:, while scientific users programmed in
14:
6921:
6620:
6606:. Vieweg-Teubner, Wiesbaden, Germany.
6555:
6536:
6517:
6508:
5255:
5205:
4838:
4739:
4114:
4065:
3048:statement to unlock locked records on
2657:arrays had fixed extents, or used the
2607:(PL/I-86) and Personal Computers with
1659:served on X3J1 along with major users
6959:Programming languages created in 1964
6731:"Multics PL/I Language Specification"
6601:
6140:Pearkins, Jon E. (December 1, 1995).
4600:
4383:
3758:-unit for the condition is executed.
3241:-statement to exit from an iterative
2459:
1738:timesharing operating system for the
6707:
6342:
5294:Richard C. Holt (November 5, 1972).
5020:
3883:The existence of exception handling
3516:is PL/I's default storage class for
3394:
2835:General Motors Research Laboratories
2151:locator data type is similar to the
2012:at the University of Maryland., and
1997:Cornell University's PL/C compiler.
430:group and other early implementers.
75:Language Development Committee, and
6177:IEEE Transactions on Communications
5855:from the original on August 2, 2020
5571:OpenVOS PL/I Language Manual (R009)
5424:Association for Computing Machinery
5302:from the original on April 15, 2011
5266:"Kednos PL/I for OpenVMS and Tru64"
3443:The PL/I F compiler's compile time
3270:
2252:function for changing date formats.
2201:The optional arithmetic attributes
2020:IBM PL/I for OS/2, AIX, Linux, z/OS
1941:and subsequently implemented IBM's
1013:A sequence of statements becomes a
573:
24:
6723:, DEC-10-LCPUA-A-D. Maynard, 1975.
5842:
5368:Polytechnic Institute of Brooklyn.
5016:. IBM. October 1976. GC33-0009-04.
4849:
4555:; H. Paul Rogoway (January 1965).
4060:
4000:GO TO (1914, 1939, 2140), MYCHOICE
3648:DCL A(10,10), B(2:9,2:9) DEFINED A
3615:variable, for example following a
3556:variables is freed at block exit.
3467:
3299:in early IBM). With the growth of
3207:%DECLARE identifier_attribute_list
2628:in 1994, and PL/I for AIX in 1995.
2233:s and good for documenting loops).
1689:
1582:
450:. Additional goals for PL/I were:
129:
25:
6975:
6800:
6560:. Books on Demand, Ann Arbor, MI.
5776:Inside the AS/400, Second Edition
5485:Reference 5001530, Detroit, 1977.
5324:Cornell University, Ithaca, 1977.
4730:shows the value of the principle.
4347:Timeline of programming languages
3980:GO TO IGOTTAGO (1860, 1914, 1939)
3000:
2681:for z/OS is also written in PL/X.
2572:PL/I compilers for Microsoft .NET
2419:statement to exit a loop, and an
1985:Polytechnic Institute of Brooklyn
954:, and for fixed point numbers, a
905:type comprises these attributes:
6944:Concurrent programming languages
6939:Structured programming languages
6934:PL/I programming language family
6929:Procedural programming languages
6906:
6861:Power vs. Adventure - PL/I and C
6850:OS PL/I V2R3 grammar Version 0.1
6053:An overview of the PL.8 compiler
5727:"IBM PL/I Set for AIX Version 1"
5559:1978, Publication No. 60388100A.
5494:Sperry-Univac Computer Systems,
5320:Department of Computer Science,
4326:
3591:variables is also managed using
3233:Structured programming additions
2643:
2411:Structured programming additions
2174:Competitiveness on PC and with C
2016:from the University of Toronto.
1711:was the PL/I F compiler for the
334:
219:
194:
6719:Digital Equipment Corporation,
6583:Ziegler, R.R. & C. (1986).
6461:
6447:
6433:
6336:
6318:
6287:
6268:
6249:
6222:
6196:
6167:
6133:
6077:
6043:
5941:
5918:
5893:
5867:
5836:
5793:
5766:
5741:
5690:
5660:
5605:
5562:
5549:
5514:
5501:
5488:
5475:
5448:
5384:
5371:
5359:
5341:
5327:
5314:
5287:
5232:
5221:from the original on 2021-12-11
5199:
5155:
5143:
5119:
5090:
5055:
4976:
4954:
4913:
4896:
4887:
4868:
4829:
4814:
4805:
4795:
4733:
4720:
4678:
4660:
4651:
4637:
4416:IBM's 360 and early 370 systems
4005:
3999:
3979:
3972:
3956:
3920:
3738:-unit is a single statement or
3727:-units) and procedures. – e.g.
3711:ON-units and exception handling
3670:, etc – where
3195:
3191:
3186:
3159:
3125:
3059:
2347:
2130:
991:
966:The base, scale, precision and
6303:. January 2007. Archived from
5511:Order No. 093-000204, c. 1978.
5410:Robin A. Vowels (March 1996).
5377:J. N. P. Hume and R. C. Holt,
4545:
4536:
4515:
4494:
4438:
4377:
4358:
2987:Evolution of the PL/I language
2857:, there are PL/I versions for
2833:, a PL/I dialect developed by
1929:In the 1960s and early 1970s,
1412:INITIAL(value-list) or INIT...
1271:ENVIRONMENT(options) or ENV...
13:
1:
6949:Systems programming languages
6881:PL1GCC project in SourceForge
6675:ANSI ANSI X3.74-1987 (R1998)
6669:ANSI ANSI X3.74-1981 (R1998)
6643:The PL/I Programming Language
6625:(3rd ed.). R.A. Vowels.
6478:
6345:Artificial Intelligence Memos
5874:Leif Svalgaard (2003-10-08).
5335:"SL/1 (Student Language/One)"
4483:. From the GUIDE organization
4342:List of programming languages
3947:attribute, in methods, or ..
3895:GO TO with a non-fixed target
3325:
2433:options on iterative groups.
2178:These attributes were added:
2117:
2106:Interrupt handling additions.
1641:Digital Equipment Corporation
1021:statement and followed by an
531:(although the function names
489:. Arguments are passed using
6886:PL/1 software to print signs
6688:, 1st edition, December 1976
6654:
6483:
6295:"Chapter 8: Program Control"
5900:Dave McKenzie (2004-09-01).
5272:. 2016-11-02. Archived from
5164:"RE: Dave Cutler and VMS #2"
3502:"working-storage" and early
3366:, which may be provided by "
3358:and pervasive problems with
3113:The data type supported are
3102:. Subsequent occurrences of
2489:condition is raised when an
2329:(pass by value) attributes.
1758:Multics PL/I and derivatives
1707:. The first production PL/I
1440:LIKE unsubscripted reference
7:
6752:IBM, "NPL Technical Report"
6539:PL/I Structured Programming
5679:. p. 1. Archived from
5395:PL/I Programming with PLUM,
5239:Robin Vowels (2010-04-01).
4944:"The Multics PL/1 Compiler"
4489:Bernice Weitzenhoffer, IBM.
4334:Computer programming portal
4319:
2915:System Network Architecture
2827:airline reservation system.
2789:system programming language
2669:. It is also used for some
1875:
1681:Argonne National Laboratory
974:type is encoded within the
839:PICTURE for Arithmetic data
88:; 60 years ago
10:
6980:
6696:Programming languages—PL/I
6455:"GO TO Statement in COBOL"
6146:Enterprise Systems Journal
5555:Control Data Corporation,
5509:AOS PL/I Reference Manual,
5507:Data General Corporation,
5456:"IBM PL/I Compiler Family"
5211:"Dave Cutler Oral History"
5127:"VAX-11 PL/I, Version 1.0"
4744:. R.A. Vowels. p. x.
4468:Standard Oil of California
3746:-statement. Executing the
3506:. This is the default for
3192:%ACTIVATE(identifier_list)
3063:
1695:IBM PL/I F and D compilers
1209:or one of the conditions:
1198:UNDEFINEDFILE(file) (UNDF)
844:PICTURE for Character data
29:
6857:, PL/I editor for Eclipse
6686:Programming Language PL/I
6574:Stoutemyer, D.R. (1971).
6212:OpenVMS Technical Journal
6203:Clair Grant (June 2005).
6190:10.1109/TCOM.1980.1094695
5807:Communications of the ACM
5191:: CS1 maint: unfit URL (
5162:Tom Linden (2004-05-21).
4702:. December 1964. p.
4686:"Chapter 1: Introduction"
4601:Radin, G. (August 1978).
4562:Communications of the ACM
4176:declareline_nofixedbinary
3654:attribute (later renamed
3447:was unusual (outside the
2599:sold a PL/I compiler for
2166:attribute (equivalent to
2100:attribute for parameters)
1913:Teaching subset compilers
191:
160:
155:
140:
135:
127:
120:
100:
82:
62:
42:
6784:, AA-H952E-TM. Nov 2003.
6663:ANSI X3.53-1976 (R1998)
6537:Hughes, Joan K. (1986).
6518:Hughes, Joan K. (1973).
6230:IBM Operating System/360
5925:Dan Hicks (1998-08-21).
5773:Frank G. Soltis (1997).
5498:Reference UP-8277, 1976.
5366:PLAGO/360 User's Manual,
4928:. IBM. 1967. C28-8202-0.
4789:ANSI X3.74-1981 (R1998)
4384:Sturm, Eberhard (2009).
4352:
4118:
4069:
3766:-unit is activated, the
3742:-block introduced by an
2848:
2839:Control Data Corporation
2777:for use in creating the
2708:Control Program Facility
2321:Parameters can have the
1863:plug-compatible machines
1240:Input/output attributes
992:/* This is a comment. */
448:event-driven programming
283:PL/I's main domains are
215:Programming Language One
6640:Abrahams, Paul (1979).
6565:Anderson, M.E. (1973).
6541:(3rd ed.). Wiley.
6522:(1st ed.). Wiley.
5935:comp.sys.ibm.as400.misc
5636:"The Norton chronicles"
5576:Marlboro, Massachusetts
5481:Burroughs Corporation,
5391:Marvin Victor Zelkowitz
5132:. Digital. October 1980
5062:R. N. Cuff (May 1972).
4990:. 1976. Order No. DE05.
4148:declarepatterncharacter
4096:'Hello, World!'
4028:(“go to depending on”).
3876:sub-allocation and the
2920:Some components of the
2639:was introduced in 2007.
2624:IBM delivered PL/I for
2595:In the 1970s and 1980s
2074:locator data type, the
2010:Marvin Victor Zelkowitz
1935:IBM System/360 Model 50
1600:and the attributes for
1575:Current compilers from
1077:computational condition
514:and sub-settable to 48.
269:initially developed by
6871:Softpanorama PL/1 page
6587:(1st ed.). West.
6325:consider the fragment
5906:Midrange Archive MI400
5580:Stratus Computer, Inc.
5557:PL/I Reference Manual,
5523:The CIMS PL/I compiler
5083:10.1093/comjnl/15.2.99
4740:Vowels, Robin (2001).
3463:Special topics in PL/I
3422:
2942:transaction processing
2530:platforms running the
2182:The string attributes
2149:HANDLE(data structure)
2078:data type itself, the
1395:GENERIC(criteria list)
1218:CONDITION (identifier)
1122:SUBSCRIPTRANGE (SUBRG)
972:Picture-for-arithmetic
522:structured programming
305:structured programming
253:and sometimes written
6768:, SC14-7285-00. 2010.
6621:Vowels, R.A. (1997).
6556:Groner, G.F. (1971).
6509:Barnes, R.A. (1979).
6099:(4.5). IBM: 607–615.
6065:10.1145/872726.806977
6009:(3.4). IBM: 543–556.
5876:"Re: Re: MI emulator"
5821:10.1145/226239.226253
5532:10.1145/800229.806960
5433:10.1145/227717.227724
5381:Reston, Reston, 1975.
4942:R. A. Frieburghouse.
4672:IEEE Computer Society
4622:10.1145/960118.808389
4576:10.1145/363707.363708
3417:
3331:Implementation issues
3279:on-condition and the
3261:of the general form:
3106:would be replaced by
3064:Further information:
2631:Iron Spring PL/I for
2522:provided PL/I on its
2507:Burroughs Corporation
2325:(pass by address) or
2302:Additional parameter
2264:from the right. and
1368:(dimension-attribute)
1043:BEGIN; stmt-list END;
980:picture specification
976:picture-specification
743:Assignment statement
406:IBM Laboratory Vienna
309:linked data structure
289:numerical computation
6913:Computer programming
6832:Iron Spring Software
6567:PL/I for Programmers
6511:PL/I for Programmers
6412:. 24 September 2021.
5686:on November 7, 2017.
5069:The Computer Journal
4966:"The Choice of PL/I"
4910:had its first flight
4742:Introduction to PL/I
4693:NPL Technical Report
4481:Procter & Gamble
4420:. Cambridge, Mass.:
4162:declarelinecharacter
3634:Storage type sharing
3459:'s "#" directives).
3352:Program optimization
1893:. It runs on VMS on
1729:program optimization
1701:Hursley Laboratories
1602:program optimization
1489:NONVARYING or NONVAR
1317:CHARACTER or CHAR...
1093:FIXEDOVERFLOW (FOFL)
776:Record input/output
762:Stream input/output
527:There were to be no
467:Machine independence
437:Goals and principles
293:scientific computing
267:programming language
6152:on November 3, 2012
6105:10.1147/rd.464.0607
6015:10.1147/rd.483.0543
5969:10.1147/rd.341.0004
5729:. 19 September 1995
5615:. IBM. GC34-0085-0.
5582:1995. OpenVOS PL/I.
5416:ACM SIGPLAN Notices
5113:10.1147/sj.123.0315
5100:IBM Systems Journal
4608:ACM SIGPLAN Notices
4476:, Bell Laboratories
4366:"Changes at I.B.M."
4115:Search for a string
4066:Hello world program
3940:(“altered go to”).
3455:as compared to the
2000:Other examples are
1814:, case statements (
1772:high-level language
1740:System/360 Model 67
1496:POSITION or POS...
1334:COMPLEX or CPLX...
1017:when preceded by a
709:Interrupt handling
83:First appeared
39:
6807:IBM PL/I Compilers
6780:2004-03-04 at the
6764:2020-07-28 at the
6747:, GC33-0009. 1976.
6700:ISO/IEC 6522:1992
6602:Sturm, E. (2009).
6494:. Addison-wesley.
6441:"GO TO (Computed)"
6427:"GO TO (Assigned)"
6327:DECLARE(I,J,K),L=
6242:2020-07-28 at the
5843:Pigott, Diarmuid.
5521:Paul W. Abrahams.
5047:A. Endres (2013).
4466:Bruce Rosenblatt,
4388:. Vieweg+Teubner.
4370:The New York Times
4002:(“computed go to”)
3970:(“assigned go to”)
3925:paragraph_name_xxx
3852:-unit itself. The
3364:exception handlers
3320:millennium problem
2700:Vertical Microcode
2654:system programming
2460:Interrupt handling
2381:FIXED BINARY(31,0)
2221:necessitated the
1961:Cornell University
1826:), loop controls (
1356:SEQUENTIAL or SEQL
1351:DECIMAL or DEC...
1112:STRINGRANGE (STRG)
1061:to the procedure.
807:(Features such as
557:Exception handling
444:system programming
363:, and others. The
297:system programming
37:
6876:The PL/I Language
6740:, C28-6571. 1965.
6729:Honeywell, Inc.,
6708:Reference manuals
6632:978-0-9596384-9-3
6613:978-3-8348-0726-7
6594:978-0-314-93915-9
6501:978-0-2010-5275-6
6404:"ALTER statement"
6331:DECLARE(I,J,K),L;
6228:In his slides on
5927:"UNIX vs AS/400?"
5786:978-1-882419-66-1
4751:978-0-9596384-9-3
4486:C.W. Medlock, IBM
4479:Robert Sheppard,
4431:978-0-262-16123-7
4395:978-3-8348-0726-7
3395:Programmer issues
3253:-option added to
3066:PL/I preprocessor
3038:DELAY(delay-time)
2863:Microsoft Windows
2781:operating system.
2704:Machine Interface
2561:operating system.
2295:is equivalent to
1983:, created at the
1673:Bell Laboratories
1573:
1572:
1553:UNALIGNED or UNAL
1482:PARAMETER or PARM
1361:DEFINED or DEF...
1344:CONTROLLED or CTL
1310:CONDITION or COND
1283:BINARY or BIN...
1259:AUTOMATIC or AUTO
1243:Other attributes
1207:
1206:
1149:
1148:
1136:ZERODIVIDE (ZDIV)
1117:STRINGSIZE (STRZ)
1088:CONVERSION (CONV)
964:
963:
899:
898:
813:PL/I preprocessor
805:
804:
801:
800:
694:
693:
491:call by reference
412:for development,
208:
207:
114:/pli-compiler-zos
16:(Redirected from
6971:
6911:
6910:
6902:
6754:, December 1964.
6733:, AG94-02. 1981.
6650:
6648:
6636:
6617:
6598:
6579:
6578:. Prentice-Hall.
6570:
6569:. Prentice-Hall.
6561:
6552:
6533:
6520:PL/I Programming
6514:
6513:. North-Holland.
6505:
6473:
6472:
6465:
6459:
6458:
6451:
6445:
6444:
6437:
6431:
6430:
6423:
6414:
6413:
6400:
6391:
6390:
6388:
6386:
6380:
6370:
6359:
6358:
6356:
6340:
6334:
6332:
6328:
6322:
6316:
6315:
6313:
6312:
6291:
6285:
6284:
6282:
6272:
6266:
6265:
6263:
6253:
6247:
6226:
6220:
6219:
6209:
6200:
6194:
6193:
6171:
6165:
6164:
6159:
6157:
6148:. Archived from
6137:
6131:
6130:
6128:
6127:
6121:
6115:. Archived from
6090:
6081:
6075:
6074:
6072:
6071:
6058:
6047:
6041:
6040:
6038:
6037:
6031:
6025:. Archived from
6000:
5991:
5982:
5981:
5976:
5975:
5954:
5945:
5939:
5938:
5922:
5916:
5915:
5913:
5912:
5897:
5891:
5890:
5888:
5887:
5871:
5865:
5864:
5862:
5860:
5840:
5834:
5833:
5823:
5797:
5791:
5790:
5770:
5764:
5763:
5761:
5760:
5745:
5739:
5738:
5736:
5734:
5723:
5717:
5716:
5714:
5713:
5704:. Archived from
5694:
5688:
5687:
5685:
5672:
5664:
5658:
5657:
5655:
5653:
5644:. Archived from
5634:(May 15, 1984).
5628:
5617:
5616:
5609:
5603:
5602:
5600:
5590:
5584:
5583:
5566:
5560:
5553:
5547:
5546:
5534:
5518:
5512:
5505:
5499:
5492:
5486:
5479:
5473:
5472:
5470:
5468:
5452:
5446:
5445:
5435:
5407:
5398:
5388:
5382:
5375:
5369:
5363:
5357:
5356:
5345:
5339:
5338:
5331:
5325:
5318:
5312:
5311:
5309:
5307:
5291:
5285:
5284:
5282:
5281:
5262:
5253:
5252:
5236:
5230:
5229:
5227:
5226:
5203:
5197:
5196:
5190:
5182:
5180:
5179:
5159:
5153:
5147:
5141:
5140:
5138:
5137:
5131:
5123:
5117:
5116:
5094:
5088:
5087:
5085:
5059:
5053:
5052:
5044:
5035:
5034:
5027:
5018:
5017:
5015:
5005:
4992:
4991:
4980:
4974:
4973:
4958:
4952:
4951:
4939:
4930:
4929:
4927:
4917:
4911:
4900:
4894:
4891:
4885:
4884:
4882:
4872:
4866:
4865:
4863:
4861:
4856:
4847:
4836:
4833:
4827:
4818:
4812:
4809:
4803:
4799:
4793:
4787:
4778:
4775:
4766:
4765:
4737:
4731:
4724:
4718:
4717:
4712:
4710:
4697:
4690:
4682:
4676:
4675:
4664:
4658:
4655:
4649:
4641:
4635:
4634:
4624:
4598:
4589:
4588:
4578:
4549:
4543:
4540:
4534:
4533:
4527:
4519:
4513:
4512:
4506:
4498:
4492:
4442:
4436:
4435:
4419:
4409:
4400:
4399:
4381:
4375:
4374:
4373:. June 20, 1984.
4362:
4336:
4331:
4330:
4315:
4311:
4308:
4305:
4302:
4299:
4296:
4292:
4288:
4285:
4281:
4277:
4273:
4270:
4267:
4264:
4260:
4256:
4252:
4249:
4246:
4242:
4239:
4235:
4231:
4228:
4225:
4222:
4219:
4216:
4212:
4209:
4205:
4202:
4198:
4194:
4190:
4186:
4182:
4179:
4175:
4171:
4168:
4165:
4161:
4157:
4154:
4151:
4147:
4144:
4140:
4137:
4134:
4131:
4128:
4125:
4122:
4110:
4106:
4103:
4100:
4097:
4094:
4090:
4087:
4083:
4080:
4076:
4073:
4041:
4037:
4027:
4026:
4023:
4020:
4017:
4014:
4011:
4008:
4001:
3995:
3981:
3974:
3969:
3968:
3965:
3962:
3959:
3950:
3946:
3939:
3938:
3935:
3932:
3929:
3926:
3923:
3916:
3912:
3905:
3890:
3886:
3879:
3875:
3871:
3866:
3859:
3855:
3854:ON ERROR SYSTEM;
3851:
3847:
3840:
3836:
3832:
3831:(SUBSCRIPTRANGE)
3828:
3824:
3820:
3816:
3812:
3808:
3804:
3800:
3796:
3792:
3785:
3781:
3777:
3773:
3769:
3765:
3761:
3757:
3753:
3752:ON ZERODIVIDE ON
3749:
3745:
3741:
3737:
3730:
3726:
3719:
3702:
3701:FIXED BINARY(31)
3689:
3684:
3677:
3673:
3669:
3665:
3657:
3653:
3649:
3646:attribute (e.g.
3645:
3625:
3614:
3610:
3606:
3602:
3598:
3594:
3590:
3583:
3579:
3575:
3569:
3565:
3561:
3555:
3551:
3543:
3539:
3535:
3519:
3515:
3509:
3497:
3491:
3487:
3483:
3479:
3475:
3385:operating system
3374:
3369:
3310:
3306:
3298:
3286:
3282:
3278:
3271:Debug facilities
3256:
3252:
3248:
3244:
3240:
3218:
3213:
3208:
3197:
3193:
3187:
3181:
3180:
3177:
3174:
3171:
3168:
3165:
3162:
3156:
3151:
3150:
3147:
3144:
3141:
3137:
3134:
3131:
3128:
3120:
3116:
3109:
3105:
3101:
3100:%PI='3.14159265'
3097:
3093:
3089:
3085:
3080:
3051:
3047:
3043:
3039:
3031:
3023:
3019:
3015:
3011:
2796:operating system
2660:
2597:Digital Research
2492:
2488:
2481:
2474:
2467:
2455:
2451:
2447:
2443:
2439:
2432:
2428:
2422:
2418:
2406:
2402:
2398:
2397:DEFINE STRUCTURE
2394:
2390:
2386:
2382:
2378:
2374:
2367:
2366:
2363:
2359:
2356:
2353:
2350:
2345:
2339:
2335:
2328:
2324:
2317:
2298:
2294:
2290:
2286:
2282:
2278:
2271:
2267:
2263:
2259:
2251:
2247:
2243:
2239:
2232:
2228:
2224:
2220:
2216:
2212:
2208:
2204:
2197:
2193:
2189:
2185:
2169:
2165:
2158:
2154:
2150:
2143:
2139:
2132:
2124:
2099:
2092:
2088:
2081:
2077:
2073:
2069:
2068:DEFINE STRUCTURE
2065:
2061:
1971:
1970:
1907:UniPrise Systems
1840:
1833:
1829:
1825:
1821:
1817:
1813:
1611:
1607:
1565:
1554:
1543:
1532:
1525:
1518:
1511:
1504:
1497:
1490:
1483:
1476:
1469:
1468:OPTIONS(options)
1462:
1455:
1448:
1441:
1434:
1427:
1420:
1413:
1408:
1403:
1396:
1391:
1386:
1379:
1374:
1369:
1362:
1357:
1352:
1345:
1340:
1335:
1328:
1323:
1318:
1311:
1306:
1301:
1294:
1289:
1284:
1277:
1272:
1267:
1260:
1255:
1250:
1237:Data attributes
1234:
1233:
1227:
1223:
1219:
1215:
1199:
1194:
1189:
1180:
1175:
1170:
1165:
1158:
1157:
1137:
1128:
1123:
1118:
1113:
1104:
1099:
1094:
1089:
1082:
1081:
1060:
1056:
1052:
1044:
1036:
1032:
1028:
1024:
1020:
1009:
1005:
1001:
997:
993:
981:
977:
973:
957:
953:
952:number of digits
949:
942:
938:
931:
927:
920:
916:
908:
907:
904:
893:
888:
883:
878:
869:
864:
859:
854:
845:
840:
835:
830:(expanded below)
829:
822:
821:
797:
793:
789:
785:
781:
771:
767:
757:
753:
741:
736:
732:
722:
718:
714:
698:
697:
688:
684:
680:
676:
672:
668:
663:Flow of control
658:
653:
649:
644:
640:
630:
626:
622:
618:
613:
609:
593:
592:
589:
588:
584:
574:Language summary
546:
542:
538:
534:
399:. The SHARE and
325:character string
252:
251:
248:
247:
244:
241:
237:
236:
233:
229:
228:
225:
198:
162:Control Language
116:
113:
111:
109:
107:
96:
94:
89:
64:Designed by
40:
36:
21:
6979:
6978:
6974:
6973:
6972:
6970:
6969:
6968:
6919:
6918:
6917:
6905:
6897:
6803:
6782:Wayback Machine
6766:Wayback Machine
6710:
6657:
6646:
6633:
6614:
6595:
6549:
6530:
6502:
6486:
6481:
6476:
6467:
6466:
6462:
6453:
6452:
6448:
6439:
6438:
6434:
6425:
6424:
6417:
6402:
6401:
6394:
6384:
6382:
6378:
6372:
6371:
6362:
6347:. No. 57.
6341:
6337:
6330:
6326:
6323:
6319:
6310:
6308:
6293:
6292:
6288:
6280:
6274:
6273:
6269:
6261:
6255:
6254:
6250:
6244:Wayback Machine
6227:
6223:
6207:
6201:
6197:
6172:
6168:
6155:
6153:
6138:
6134:
6125:
6123:
6119:
6088:
6082:
6078:
6069:
6067:
6056:
6048:
6044:
6035:
6033:
6029:
5998:
5992:
5985:
5973:
5971:
5952:
5946:
5942:
5923:
5919:
5910:
5908:
5898:
5894:
5885:
5883:
5872:
5868:
5858:
5856:
5841:
5837:
5798:
5794:
5787:
5771:
5767:
5758:
5756:
5747:
5746:
5742:
5732:
5730:
5725:
5724:
5720:
5711:
5709:
5696:
5695:
5691:
5683:
5670:
5666:
5665:
5661:
5651:
5649:
5648:on July 6, 2011
5629:
5620:
5611:
5610:
5606:
5598:
5592:
5591:
5587:
5568:
5567:
5563:
5554:
5550:
5543:
5519:
5515:
5506:
5502:
5493:
5489:
5480:
5476:
5466:
5464:
5454:
5453:
5449:
5412:"PL/I for OS/2"
5408:
5401:
5389:
5385:
5376:
5372:
5364:
5360:
5347:
5346:
5342:
5333:
5332:
5328:
5319:
5315:
5305:
5303:
5292:
5288:
5279:
5277:
5264:
5263:
5256:
5237:
5233:
5224:
5222:
5204:
5200:
5184:
5183:
5177:
5175:
5160:
5156:
5148:
5144:
5135:
5133:
5129:
5125:
5124:
5120:
5095:
5091:
5060:
5056:
5045:
5038:
5029:
5028:
5021:
5013:
5007:
5006:
4995:
4982:
4981:
4977:
4959:
4955:
4940:
4933:
4925:
4919:
4918:
4914:
4901:
4897:
4892:
4888:
4880:
4874:
4873:
4869:
4859:
4857:
4854:
4848:
4839:
4834:
4830:
4819:
4815:
4810:
4806:
4800:
4796:
4788:
4781:
4776:
4769:
4752:
4738:
4734:
4725:
4721:
4708:
4706:
4695:
4688:
4684:
4683:
4679:
4666:
4665:
4661:
4656:
4652:
4642:
4638:
4599:
4592:
4550:
4546:
4541:
4537:
4525:
4521:
4520:
4516:
4504:
4500:
4499:
4495:
4474:Douglas McIlroy
4443:
4439:
4432:
4410:
4403:
4396:
4382:
4378:
4364:
4363:
4359:
4355:
4332:
4325:
4322:
4317:
4316:
4313:
4309:
4306:
4303:
4300:
4297:
4294:
4290:
4286:
4283:
4279:
4275:
4271:
4268:
4265:
4262:
4258:
4254:
4250:
4247:
4244:
4240:
4237:
4233:
4229:
4226:
4223:
4220:
4217:
4214:
4210:
4207:
4203:
4200:
4196:
4192:
4188:
4184:
4180:
4177:
4173:
4169:
4166:
4163:
4159:
4155:
4152:
4149:
4145:
4142:
4138:
4135:
4132:
4129:
4126:
4123:
4120:
4117:
4112:
4111:
4108:
4104:
4101:
4098:
4095:
4092:
4088:
4085:
4081:
4078:
4074:
4071:
4068:
4063:
4061:Sample programs
4055:
4052:
4046:
4039:
4035:
4024:
4021:
4018:
4015:
4012:
4009:
4006:
3993:
3978:
3971:
3966:
3963:
3960:
3957:
3948:
3944:
3936:
3933:
3930:
3927:
3924:
3921:
3914:
3910:
3903:
3897:
3888:
3884:
3877:
3873:
3869:
3864:
3857:
3853:
3849:
3845:
3838:
3834:
3830:
3826:
3822:
3818:
3814:
3810:
3806:
3802:
3798:
3794:
3790:
3783:
3779:
3775:
3771:
3767:
3763:
3759:
3755:
3751:
3747:
3743:
3739:
3735:
3728:
3724:
3717:
3713:
3700:
3697:
3687:
3682:
3675:
3671:
3667:
3663:
3655:
3651:
3647:
3643:
3636:
3623:
3612:
3608:
3604:
3600:
3596:
3592:
3588:
3581:
3577:
3573:
3567:
3563:
3559:
3553:
3549:
3541:
3537:
3533:
3517:
3513:
3507:
3495:
3489:
3485:
3481:
3477:
3473:
3470:
3468:Storage classes
3465:
3397:
3372:
3367:
3345:auto-correction
3333:
3328:
3308:
3304:
3296:
3293:
3284:
3280:
3276:
3273:
3265:
3254:
3250:
3246:
3242:
3238:
3235:
3216:
3211:
3206:
3178:
3175:
3172:
3169:
3166:
3163:
3160:
3154:
3148:
3145:
3142:
3139:
3135:
3132:
3129:
3126:
3118:
3114:
3107:
3103:
3099:
3095:
3091:
3087:
3083:
3078:
3068:
3062:
3049:
3045:
3041:
3037:
3029:
3021:
3020:-option on the
3017:
3013:
3009:
3003:
2998:
2989:
2851:
2771:Honeywell, Inc.
2767:-based backend.
2658:
2646:
2592:
2574:
2499:
2490:
2486:
2479:
2472:
2465:
2462:
2453:
2449:
2445:
2441:
2437:
2430:
2426:
2420:
2416:
2413:
2404:
2400:
2396:
2392:
2388:
2384:
2380:
2376:
2372:
2364:
2361:
2357:
2354:
2351:
2348:
2343:
2337:
2333:
2326:
2322:
2315:
2312:
2296:
2292:
2288:
2284:
2280:
2276:
2269:
2265:
2261:
2257:
2249:
2245:
2241:
2237:
2230:
2226:
2222:
2218:
2214:
2210:
2206:
2202:
2195:
2191:
2187:
2183:
2176:
2167:
2163:
2156:
2152:
2148:
2141:
2137:
2122:
2120:
2097:
2090:
2086:
2079:
2075:
2071:
2067:
2063:
2059:
2022:
1968:
1967:
1922:was developing
1915:
1878:
1835:
1831:
1827:
1823:
1819:
1815:
1811:
1800:
1780:Douglas McIlroy
1760:
1725:LOCATE-mode I/O
1721:list processing
1697:
1692:
1690:Implementations
1609:
1605:
1585:
1583:Standardization
1563:
1552:
1541:
1530:
1523:
1516:
1509:
1502:
1495:
1488:
1481:
1474:
1467:
1460:
1453:
1446:
1439:
1432:
1426:INTERNAL or INT
1425:
1418:
1411:
1406:
1401:
1394:
1389:
1384:
1378:EXTERNAL or EXT
1377:
1372:
1367:
1360:
1355:
1350:
1343:
1338:
1333:
1326:
1321:
1316:
1309:
1304:
1299:
1292:
1287:
1282:
1275:
1270:
1265:
1258:
1253:
1248:
1225:
1221:
1217:
1213:
1197:
1192:
1187:
1178:
1173:
1168:
1163:
1135:
1127:UNDERFLOW (UFL)
1126:
1121:
1116:
1111:
1102:
1097:
1092:
1087:
1058:
1054:
1050:
1042:
1034:
1030:
1026:
1022:
1018:
1007:
1003:
999:
995:
979:
975:
971:
955:
951:
947:
940:
936:
929:
925:
918:
914:
902:
891:
886:
881:
876:
867:
862:
857:
852:
843:
838:
833:
827:
795:
794:
791:
790:
787:
786:
783:
782:
779:
769:
768:
765:
755:
754:
751:
742:
739:
738:
734:
730:
720:
719:
716:
715:
712:
690:Null statement
689:
686:
685:
682:
681:
678:
677:
674:
673:
670:
669:
666:
656:
655:
651:
647:
646:
642:
638:
628:
627:
624:
623:
620:
619:
616:
615:
611:
607:
582:
576:
544:
540:
536:
532:
479:Block structure
439:
337:
285:data processing
238:
230:
222:
218:
104:
92:
90:
87:
35:
28:
23:
22:
15:
12:
11:
5:
6977:
6967:
6966:
6961:
6956:
6951:
6946:
6941:
6936:
6931:
6916:
6915:
6895:
6894:
6889:
6883:
6878:
6873:
6868:
6858:
6852:
6847:
6842:
6829:
6802:
6801:External links
6799:
6798:
6797:
6794:
6791:
6788:
6785:
6772:
6769:
6755:
6748:
6741:
6734:
6727:
6724:
6717:
6714:
6709:
6706:
6705:
6704:
6698:
6689:
6679:
6673:
6667:
6656:
6653:
6652:
6651:
6637:
6631:
6618:
6612:
6599:
6593:
6580:
6571:
6562:
6553:
6547:
6534:
6528:
6515:
6506:
6500:
6485:
6482:
6480:
6477:
6475:
6474:
6471:. p. 103.
6460:
6446:
6432:
6415:
6392:
6360:
6335:
6317:
6286:
6267:
6248:
6221:
6195:
6184:(4): 661–677.
6166:
6132:
6076:
6042:
5983:
5940:
5917:
5892:
5882:(Mailing list)
5866:
5835:
5792:
5785:
5779:. Duke Press.
5765:
5753:ironspring.com
5740:
5718:
5689:
5659:
5618:
5604:
5585:
5561:
5548:
5541:
5513:
5500:
5487:
5474:
5447:
5399:
5383:
5370:
5358:
5353:BobsPixels.com
5349:"The IBM 1130"
5340:
5326:
5313:
5286:
5254:
5231:
5209:(2016-02-25).
5198:
5187:cite newsgroup
5154:
5142:
5118:
5107:(3): 315–327.
5089:
5054:
5036:
5019:
4993:
4975:
4970:Multicians.org
4953:
4948:Multicians.org
4931:
4912:
4895:
4886:
4867:
4850:Krasun, Andy.
4837:
4828:
4813:
4804:
4794:
4779:
4767:
4750:
4732:
4728:case statement
4719:
4677:
4659:
4650:
4636:
4615:(8): 227–241.
4590:
4544:
4535:
4514:
4493:
4491:
4490:
4487:
4484:
4477:
4471:
4464:
4458:
4452:
4437:
4430:
4401:
4394:
4376:
4356:
4354:
4351:
4350:
4349:
4344:
4338:
4337:
4321:
4318:
4119:
4116:
4113:
4070:
4067:
4064:
4062:
4059:
4053:
4050:
4044:
4032:
4031:
4030:
4029:
4003:
3991:
3990:
3989:
3988:
3987:
3986:
3985:
3973:GO TO IGOTTAGO
3954:
3953:
3952:
3896:
3893:
3801:option of the
3712:
3709:
3695:
3635:
3632:
3469:
3466:
3464:
3461:
3457:C preprocessor
3396:
3393:
3332:
3329:
3327:
3324:
3292:
3289:
3272:
3269:
3263:
3259:case statement
3234:
3231:
3226:
3225:
3219:
3214:
3209:
3204:
3198:
3183:
3182:
3157:
3152:
3070:The first IBM
3061:
3058:
3006:Multithreading
3002:
3001:Multithreading
2999:
2997:
2994:
2988:
2985:
2965:and the like.
2930:
2929:
2918:
2911:
2904:
2893:
2850:
2847:
2846:
2845:
2828:
2818:
2815:
2809:
2803:
2785:Prime Computer
2782:
2768:
2758:z/Architecture
2742:Motorola 68000
2731:
2688:
2682:
2645:
2642:
2641:
2640:
2629:
2622:
2616:
2591:
2588:
2587:
2586:
2579:Microsoft .NET
2573:
2570:
2569:
2568:
2562:
2555:
2552:
2546:
2543:
2516:
2510:
2498:
2495:
2461:
2458:
2452:option of the
2412:
2409:
2311:
2308:
2254:
2253:
2234:
2199:
2175:
2172:
2119:
2116:
2111:
2110:
2107:
2104:
2101:
2094:
2083:
2021:
2018:
1914:
1911:
1877:
1874:
1799:
1796:
1759:
1756:
1696:
1693:
1691:
1688:
1645:Prime Computer
1617:General Motors
1591:TC10. In 1969
1584:
1581:
1571:
1570:
1568:
1566:
1564:VARYING or VAR
1560:
1559:
1557:
1555:
1549:
1548:
1546:
1544:
1538:
1537:
1535:
1533:
1531:POINTER or PTR
1527:
1526:
1521:
1519:
1513:
1512:
1507:
1505:
1499:
1498:
1493:
1491:
1485:
1484:
1479:
1477:
1471:
1470:
1465:
1463:
1457:
1456:
1451:
1449:
1443:
1442:
1437:
1435:
1429:
1428:
1423:
1421:
1415:
1414:
1409:
1404:
1398:
1397:
1392:
1387:
1381:
1380:
1375:
1370:
1364:
1363:
1358:
1353:
1347:
1346:
1341:
1336:
1330:
1329:
1324:
1319:
1313:
1312:
1307:
1302:
1296:
1295:
1290:
1285:
1279:
1278:
1273:
1268:
1262:
1261:
1256:
1251:
1245:
1244:
1241:
1238:
1229:
1228:
1205:
1204:
1203:
1202:
1200:
1195:
1193:TRANSMIT(file)
1190:
1183:
1182:
1181:
1176:
1171:
1166:
1147:
1146:
1145:
1144:
1142:
1140:
1138:
1131:
1130:
1129:
1124:
1119:
1114:
1107:
1106:
1105:
1100:
1098:OVERFLOW (OFL)
1095:
1090:
1049:starts with a
962:
961:
960:
959:
944:
933:
922:
897:
896:
895:
894:
889:
884:
879:
872:
871:
870:
865:
860:
855:
848:
847:
846:
841:
836:
831:
803:
802:
799:
798:
777:
773:
772:
763:
759:
758:
749:
745:
744:
728:
724:
723:
710:
706:
705:
702:
695:
692:
691:
664:
660:
659:
636:
632:
631:
605:
601:
600:
597:
575:
572:
571:
570:
567:
560:
554:
548:
547:were reserved.
541:IF, THEN, ELSE
529:reserved words
525:
518:
515:
508:
505:
498:
485:), similar to
471:
470:
464:
461:
455:
438:
435:
410:Formal Methods
365:IBM System/360
336:
333:
327:handling, and
317:floating-point
299:. It supports
206:
205:
204:
203:
189:
188:
158:
157:
153:
152:
138:
137:
133:
132:
125:
124:
118:
117:
102:
98:
97:
84:
80:
79:
66:
60:
59:
46:
26:
9:
6:
4:
3:
2:
6976:
6965:
6962:
6960:
6957:
6955:
6952:
6950:
6947:
6945:
6942:
6940:
6937:
6935:
6932:
6930:
6927:
6926:
6924:
6914:
6909:
6904:
6903:
6900:
6893:
6890:
6887:
6884:
6882:
6879:
6877:
6874:
6872:
6869:
6866:
6862:
6859:
6856:
6853:
6851:
6848:
6846:
6843:
6841:
6837:
6833:
6830:
6828:
6824:
6820:
6816:
6812:
6808:
6805:
6804:
6795:
6792:
6789:
6786:
6783:
6779:
6776:
6773:
6770:
6767:
6763:
6760:
6756:
6753:
6749:
6746:
6742:
6739:
6735:
6732:
6728:
6725:
6722:
6718:
6715:
6712:
6711:
6703:
6699:
6697:
6693:
6690:
6687:
6683:
6680:
6678:
6674:
6672:
6668:
6666:
6662:
6659:
6658:
6645:
6644:
6638:
6634:
6628:
6624:
6619:
6615:
6609:
6605:
6600:
6596:
6590:
6586:
6581:
6577:
6572:
6568:
6563:
6559:
6554:
6550:
6548:0-471-83746-6
6544:
6540:
6535:
6531:
6529:0-471-42032-8
6525:
6521:
6516:
6512:
6507:
6503:
6497:
6493:
6488:
6487:
6470:
6464:
6456:
6450:
6442:
6436:
6428:
6422:
6420:
6411:
6410:
6405:
6399:
6397:
6377:
6376:
6369:
6367:
6365:
6355:
6350:
6346:
6339:
6321:
6307:on 2016-08-18
6306:
6302:
6301:
6296:
6290:
6279:
6278:
6271:
6260:
6259:
6252:
6245:
6241:
6238:
6234:
6231:
6225:
6217:
6213:
6206:
6199:
6191:
6187:
6183:
6179:
6178:
6170:
6163:
6151:
6147:
6143:
6136:
6122:on 2020-02-11
6118:
6114:
6110:
6106:
6102:
6098:
6094:
6087:
6080:
6066:
6062:
6055:
6054:
6046:
6032:on 2021-01-24
6028:
6024:
6020:
6016:
6012:
6008:
6004:
5997:
5990:
5988:
5980:
5970:
5966:
5962:
5958:
5951:
5944:
5936:
5932:
5928:
5921:
5907:
5903:
5896:
5881:
5877:
5870:
5854:
5850:
5846:
5839:
5831:
5827:
5822:
5817:
5814:(10): 54–64.
5813:
5809:
5808:
5803:
5796:
5788:
5782:
5778:
5777:
5769:
5754:
5750:
5744:
5728:
5722:
5708:on 2017-11-07
5707:
5703:
5699:
5693:
5682:
5678:
5677:
5669:
5663:
5647:
5643:
5642:
5637:
5633:
5627:
5625:
5623:
5614:
5608:
5597:
5596:
5589:
5581:
5577:
5573:
5572:
5565:
5558:
5552:
5544:
5542:0-89791-002-8
5538:
5533:
5528:
5524:
5517:
5510:
5504:
5497:
5491:
5484:
5478:
5463:
5462:
5457:
5451:
5443:
5439:
5434:
5429:
5425:
5421:
5417:
5413:
5406:
5404:
5396:
5392:
5387:
5380:
5374:
5367:
5362:
5354:
5350:
5344:
5336:
5330:
5323:
5317:
5301:
5297:
5290:
5276:on 2021-03-14
5275:
5271:
5267:
5261:
5259:
5250:
5246:
5242:
5235:
5220:
5216:
5212:
5208:
5202:
5194:
5188:
5173:
5169:
5165:
5158:
5151:
5146:
5128:
5122:
5114:
5110:
5106:
5102:
5101:
5093:
5084:
5079:
5076:(2): 99–104.
5075:
5071:
5070:
5065:
5058:
5050:
5043:
5041:
5032:
5026:
5024:
5012:
5011:
5004:
5002:
5000:
4998:
4989:
4985:
4979:
4971:
4967:
4963:
4962:Tom Van Vleck
4957:
4949:
4945:
4938:
4936:
4924:
4923:
4916:
4909:
4905:
4904:Gen de Gaulle
4899:
4890:
4879:
4878:
4871:
4853:
4846:
4844:
4842:
4832:
4825:
4824:
4817:
4808:
4798:
4792:
4786:
4784:
4774:
4772:
4764:
4763:
4759:
4753:
4747:
4743:
4736:
4729:
4723:
4716:
4705:
4701:
4694:
4687:
4681:
4673:
4669:
4663:
4654:
4647:
4640:
4632:
4628:
4623:
4618:
4614:
4610:
4609:
4604:
4597:
4595:
4586:
4582:
4577:
4572:
4568:
4564:
4563:
4558:
4554:
4548:
4539:
4531:
4524:
4518:
4510:
4503:
4497:
4488:
4485:
4482:
4478:
4475:
4472:
4469:
4465:
4463:
4462:Union Carbide
4459:
4456:
4453:
4450:
4446:
4445:
4441:
4433:
4427:
4423:
4418:
4417:
4408:
4406:
4397:
4391:
4387:
4380:
4372:
4371:
4367:
4361:
4357:
4348:
4345:
4343:
4340:
4339:
4335:
4329:
4324:
4058:
4049:
4043:
4004:
3998:
3997:
3992:
3983:
3982:
3976:
3975:
3955:
3942:
3941:
3937:para_name_zzz
3919:
3918:
3909:
3908:
3907:
3900:
3892:
3881:
3861:
3842:
3787:
3732:
3721:
3708:
3704:
3694:
3691:
3679:
3659:
3640:
3631:
3629:
3620:
3618:
3585:
3571:
3557:
3547:
3531:
3527:
3523:
3511:
3505:
3501:
3493:
3460:
3458:
3454:
3450:
3446:
3441:
3439:
3435:
3431:
3427:
3421:
3416:
3414:
3409:
3406:
3402:
3392:
3388:
3386:
3381:
3376:
3365:
3361:
3357:
3353:
3348:
3346:
3342:
3337:
3323:
3321:
3316:
3312:
3302:
3288:
3268:
3262:
3260:
3230:
3223:
3220:
3215:
3210:
3205:
3202:
3199:
3190:
3189:
3188:
3158:
3153:
3124:
3123:
3122:
3117:integers and
3115:FIXED DECIMAL
3111:
3076:
3075:
3072:Compile time
3067:
3057:
3055:
3035:
3027:
3007:
2993:
2984:
2980:
2977:
2974:
2972:
2966:
2964:
2960:
2955:
2951:
2947:
2943:
2939:
2934:
2928:architecture.
2927:
2923:
2919:
2916:
2912:
2909:
2905:
2902:
2898:
2894:
2891:
2887:
2886:
2885:
2882:
2880:
2876:
2872:
2868:
2864:
2860:
2856:
2843:
2840:
2836:
2832:
2829:
2826:
2822:
2819:
2816:
2813:
2810:
2807:
2804:
2801:
2797:
2794:
2790:
2786:
2783:
2780:
2776:
2772:
2769:
2766:
2763:
2759:
2755:
2751:
2747:
2743:
2739:
2735:
2732:
2729:
2725:
2721:
2717:
2713:
2709:
2705:
2701:
2697:
2693:
2689:
2686:
2683:
2680:
2676:
2672:
2668:
2664:
2655:
2651:
2648:
2647:
2644:PL/I dialects
2638:
2634:
2630:
2627:
2623:
2620:
2617:
2614:
2610:
2606:
2602:
2598:
2594:
2593:
2584:
2580:
2576:
2575:
2566:
2563:
2560:
2556:
2553:
2550:
2547:
2544:
2541:
2537:
2533:
2529:
2525:
2521:
2517:
2514:
2511:
2508:
2504:
2503:
2502:
2494:
2483:
2476:
2469:
2457:
2434:
2424:
2408:
2369:
2341:
2338:NONASSIGNABLE
2330:
2319:
2307:
2305:
2300:
2273:
2238:DATE(pattern)
2235:
2200:
2181:
2180:
2179:
2171:
2160:
2145:
2134:
2128:
2115:
2108:
2105:
2102:
2095:
2084:
2057:
2056:
2055:
2051:
2048:
2044:
2040:
2036:
2032:
2028:
2017:
2015:
2011:
2007:
2003:
1998:
1995:
1994:
1988:
1986:
1982:
1978:
1976:
1972:
1964:
1962:
1958:
1957:
1952:
1950:
1946:
1945:
1940:
1936:
1932:
1931:Allen-Babcock
1927:
1925:
1921:
1910:
1908:
1904:
1900:
1896:
1892:
1888:
1884:
1873:
1869:
1866:
1864:
1860:
1856:
1852:
1848:
1842:
1839:
1808:
1806:
1795:
1792:
1789:
1785:
1784:Robert Morris
1781:
1777:
1773:
1769:
1765:
1755:
1753:
1748:
1743:
1741:
1737:
1732:
1730:
1726:
1722:
1717:
1714:
1710:
1706:
1702:
1687:
1684:
1682:
1676:
1674:
1670:
1669:Union Carbide
1666:
1662:
1661:Eastman Kodak
1658:
1654:
1650:
1646:
1642:
1638:
1634:
1630:
1626:
1623:representing
1622:
1618:
1613:
1603:
1599:
1594:
1590:
1580:
1578:
1569:
1567:
1562:
1561:
1558:
1556:
1551:
1550:
1547:
1545:
1540:
1539:
1536:
1534:
1529:
1528:
1522:
1520:
1515:
1514:
1508:
1506:
1501:
1500:
1494:
1492:
1487:
1486:
1480:
1478:
1473:
1472:
1466:
1464:
1459:
1458:
1452:
1450:
1445:
1444:
1438:
1436:
1431:
1430:
1424:
1422:
1417:
1416:
1410:
1405:
1400:
1399:
1393:
1388:
1383:
1382:
1376:
1371:
1366:
1365:
1359:
1354:
1349:
1348:
1342:
1337:
1332:
1331:
1325:
1320:
1315:
1314:
1308:
1303:
1298:
1297:
1291:
1286:
1281:
1280:
1274:
1269:
1264:
1263:
1257:
1252:
1247:
1246:
1242:
1239:
1236:
1235:
1232:
1212:
1211:
1210:
1201:
1196:
1191:
1186:
1185:
1184:
1177:
1172:
1169:ENDPAGE(file)
1167:
1164:ENDFILE(file)
1162:
1161:
1160:
1159:
1156:
1154:
1143:
1141:
1139:
1134:
1133:
1132:
1125:
1120:
1115:
1110:
1109:
1108:
1101:
1096:
1091:
1086:
1085:
1084:
1083:
1080:
1078:
1073:
1071:
1067:
1062:
1048:
1040:
1033:part and the
1016:
1011:
987:
983:
969:
945:
934:
923:
912:
911:
910:
909:
906:
890:
885:
880:
875:
874:
873:
866:
861:
856:
851:
850:
849:
842:
837:
832:
826:
825:
824:
823:
820:
816:
814:
810:
809:multi-tasking
778:
775:
774:
764:
761:
760:
750:
748:Input/Output
747:
746:
729:
726:
725:
711:
708:
707:
703:
700:
699:
696:
665:
662:
661:
637:
634:
633:
606:
603:
602:
598:
595:
594:
591:
590:
587:
579:
568:
565:
561:
558:
555:
552:
551:Orthogonality
549:
530:
526:
523:
519:
516:
513:
509:
506:
503:
502:strong typing
499:
496:
495:call by value
492:
488:
484:
480:
477:
476:
475:
468:
465:
462:
459:
458:Extensibility
456:
453:
452:
451:
449:
445:
434:
431:
429:
423:
421:
417:
415:
411:
407:
402:
398:
392:
390:
389:Roman numeral
386:
382:
378:
374:
370:
366:
362:
358:
354:
350:
346:
342:
335:Early history
332:
330:
326:
322:
318:
314:
310:
306:
302:
298:
294:
290:
286:
281:
279:
274:
272:
268:
264:
260:
256:
250:
217:, pronounced
216:
212:
201:
197:
193:
192:
190:
187:
183:
179:
175:
171:
167:
163:
159:
154:
151:
147:
143:
139:
136:Influenced by
134:
131:
126:
123:
119:
115:
103:
99:
85:
81:
78:
74:
70:
67:
65:
61:
58:
54:
50:
47:
45:
41:
33:
19:
6954:IBM software
6701:
6695:
6685:
6676:
6670:
6664:
6642:
6622:
6603:
6584:
6575:
6566:
6557:
6538:
6519:
6510:
6491:
6468:
6463:
6449:
6435:
6407:
6383:. Retrieved
6374:
6344:
6338:
6320:
6309:. Retrieved
6305:the original
6299:
6289:
6276:
6270:
6257:
6251:
6229:
6224:
6215:
6211:
6198:
6181:
6175:
6169:
6161:
6154:. Retrieved
6150:the original
6145:
6135:
6124:. Retrieved
6117:the original
6096:
6092:
6079:
6068:. Retrieved
6052:
6045:
6034:. Retrieved
6027:the original
6006:
6002:
5978:
5972:. Retrieved
5960:
5956:
5943:
5920:
5909:. Retrieved
5905:
5895:
5884:. Retrieved
5879:
5869:
5857:. Retrieved
5848:
5838:
5811:
5805:
5795:
5775:
5768:
5757:. Retrieved
5755:. 2020-09-15
5752:
5743:
5731:. Retrieved
5721:
5710:. Retrieved
5706:the original
5701:
5692:
5681:the original
5674:
5662:
5650:. Retrieved
5646:the original
5639:
5632:Peter Norton
5612:
5607:
5594:
5588:
5570:
5564:
5556:
5551:
5522:
5516:
5508:
5503:
5495:
5490:
5482:
5477:
5465:. Retrieved
5459:
5450:
5419:
5415:
5394:
5386:
5378:
5373:
5365:
5361:
5352:
5343:
5329:
5321:
5316:
5304:. Retrieved
5289:
5278:. Retrieved
5274:the original
5269:
5249:comp.answers
5234:
5223:. Retrieved
5214:
5207:Cutler, Dave
5201:
5176:. Retrieved
5157:
5149:
5145:
5134:. Retrieved
5121:
5104:
5098:
5092:
5073:
5067:
5057:
5009:
4983:
4978:
4969:
4956:
4947:
4921:
4915:
4898:
4889:
4876:
4870:
4858:. Retrieved
4831:
4822:
4816:
4807:
4797:
4790:
4761:
4755:
4741:
4735:
4722:
4714:
4707:. Retrieved
4680:
4662:
4653:
4639:
4612:
4606:
4566:
4560:
4547:
4538:
4529:
4517:
4508:
4496:
4455:George Radin
4440:
4415:
4386:The New PL/I
4385:
4379:
4368:
4360:
4312:find_strings
4127:find_strings
4056:
4047:
4033:
3901:
3898:
3882:
3862:
3843:
3788:
3733:
3722:
3714:
3707:paramount).
3705:
3698:
3692:
3680:
3660:
3641:
3637:
3621:
3587:Storage for
3586:
3584:statements.
3572:
3558:
3512:
3494:
3471:
3452:
3445:preprocessor
3442:
3434:multitasking
3423:
3418:
3412:
3410:
3398:
3389:
3380:multitasking
3377:
3356:side effects
3349:
3344:
3340:
3338:
3334:
3317:
3313:
3294:
3287:condition).
3274:
3266:
3249:-option and
3236:
3227:
3221:
3212:%GO TO label
3200:
3184:
3112:
3074:preprocessor
3071:
3069:
3060:Preprocessor
3032:-statement (
3024:-statement (
3004:
2990:
2981:
2978:
2975:
2967:
2935:
2931:
2883:
2852:
2677:components.
2565:IBM Series/1
2520:Data General
2500:
2484:
2480:ANYCONDITION
2477:
2470:
2463:
2456:-statement.
2435:
2425:
2414:
2407:attribute).
2387:creates the
2370:
2342:
2331:
2320:
2313:
2301:
2291:were added.
2274:
2255:
2215:LITTLEENDIAN
2177:
2161:
2146:
2135:
2121:
2112:
2060:DEFINE ALIAS
2052:
2023:
2013:
2005:
2001:
1999:
1991:
1989:
1980:
1979:
1966:
1965:
1954:
1953:
1942:
1937:with custom
1928:
1916:
1879:
1870:
1867:
1843:
1837:
1809:
1801:
1793:
1761:
1751:
1744:
1733:
1718:
1698:
1685:
1677:
1637:Data General
1621:C.A.R. Hoare
1614:
1598:multitasking
1586:
1574:
1230:
1208:
1188:RECORD(file)
1153:Input/Output
1152:
1150:
1076:
1074:
1069:
1065:
1063:
1046:
1038:
1014:
1012:
1008:L(12,2):A=0;
988:
984:
968:scale factor
965:
956:scale factor
900:
817:
806:
635:Declarative
580:
577:
472:
440:
432:
424:
418:
393:
384:
380:
376:
338:
282:
275:
254:
214:
210:
209:
202:at Wikibooks
6834:, PL/I for
6354:1721.1/6111
6233:Fred Brooks
6156:February 3,
5963:(1): 4–11.
5702:Micro Focus
5676:Micro Focus
5652:January 25,
5641:PC Magazine
5215:youtube.com
5172:comp.os.vms
4758:Jean Sammet
4569:(1): 9–17.
4460:James Cox,
4447:Hans Berg,
4274:putskiplist
4042:statement.
3917:(FORTRAN):
3880:condition.
3807:STRINGRANGE
3617:linked list
3607:variables.
3546:stack frame
3540:-block, or
3196:%DEACTIVATE
2619:Micro Focus
2603:(PL/I-80),
2358:'1'
2344:DO FOREVER;
2304:descriptors
2272:functions.
1883:Dave Cutler
1778:and MIT by
1766:project at
1577:Micro Focus
1155:condition,
604:Structural
420:Fred Brooks
313:fixed-point
6923:Categories
6694:6160:1979
6479:References
6311:2017-11-05
6126:2021-02-26
6070:2021-02-26
6036:2021-02-26
5974:2022-10-05
5911:2021-05-24
5886:2021-02-26
5759:2021-02-26
5712:2017-11-05
5280:2021-03-30
5270:kednos.com
5225:2021-02-26
5178:2021-02-26
5136:2023-10-31
4709:January 1,
4698:(Report).
4530:Datamation
4509:Datamation
4016:para_Three
3815:CONVERSION
3574:CONTROLLED
3564:CONTROLLED
3482:CONTROLLED
3391:variable.
3326:Criticisms
3201:assignment
3138:statements
3108:3.14159265
2890:SAS System
2855:mainframes
2837:for their
2773:developed
2746:System/370
2710:, and the
2635:and later
2528:Eclipse MV
2518:From 1978
2446:CONTROLLED
2334:ASSIGNABLE
2246:DAYSTODATE
2118:Data types
1752:controlled
1705:System/360
1179:NAME(file)
1070:conditions
903:arithmetic
828:Arithmetic
704:Statement
599:Statement
341:Autocoders
329:bit string
311:handling,
263:imperative
259:procedural
156:Influenced
57:structured
53:imperative
49:Procedural
6655:Standards
6484:Textbooks
5931:Newsgroup
5426:: 22–27.
5245:Newsgroup
5168:Newsgroup
4988:Honeywell
4553:Radin, G.
4422:MIT Press
4133:procedure
4019:DEPENDING
3945:RECURSIVE
3913:(COBOL),
3863:The PL/I
3811:UNDERFLOW
3554:AUTOMATIC
3534:AUTOMATIC
3514:AUTOMATIC
3478:AUTOMATIC
3438:functions
3430:recursion
3285:ATTENTION
3224:statement
3203:statement
3133:iteration
3119:CHARACTER
3050:EXCLUSIVE
2901:SabreTalk
2821:SabreTalk
2750:millicode
2728:Power ISA
2714:layer of
2692:System/38
2583:.NET Core
2540:AOS/VS II
2473:INVALIDOP
2211:BIGENDIAN
1939:microcode
1920:Dartmouth
1901:, and on
1824:OTHERWISE
1776:Bell Labs
1649:Burroughs
1629:Honeywell
1542:STRUCTURE
1174:KEY(file)
1051:PROCEDURE
1047:procedure
1000:PROCEDURE
948:PRECISION
924:a scale (
834:CHARACTER
701:Category
608:PROCEDURE
596:Category
483:recursion
301:recursion
276:The PL/1
265:computer
112:/products
6778:Archived
6762:Archived
6240:Archived
6113:12745372
6023:19020943
5853:Archived
5442:24441291
5300:Archived
5219:Archived
4908:Concorde
4802:changes.
4631:13925251
4585:17133703
4470:, Chair.
4449:Lockheed
4320:See also
4013:para_Two
4010:para_One
3967:IGOTTAGO
3951:option."
3819:OVERFLOW
3593:ALLOCATE
3578:ALLOCATE
3518:INTERNAL
3508:EXTERNAL
3426:pointers
3360:aliasing
3341:keywords
3257:, and a
3217:%INCLUDE
3088:ACTIVATE
3079:%INCLUDE
2938:database
2842:STAR-100
2754:firmware
2720:IBM RS64
2665:and now
2505:In 1974
2491:ALLOCATE
2466:RESIGNAL
2431:DOWNTHRU
2383:). Thus
2250:DATETIME
2227:DOWNTHRU
2219:UNSIGNED
2203:UNSIGNED
2192:WIDECHAR
2184:VARYINGZ
2091:VARYINGZ
2087:UNSIGNED
1975:IBM 1130
1876:DEC PL/I
1865:(PCMs).
1709:compiler
1610:ABNORMAL
1524:VARIABLE
1327:CONSTANT
1059:EXTERNAL
1004:(NOSIZE)
935:a mode (
913:a base (
811:and the
731:ALLOCATE
727:Storage
583:%INCLUDE
487:Algol 60
387:(with a
375:labeled
150:ALGOL 60
130:dialects
122:Dialects
44:Paradigm
6855:Pliedit
6385:July 9,
6246:, 2001.
5933::
5859:Feb 24,
5845:"PL/MP"
5830:7492851
5306:May 30,
5247::
5170::
4964:(ed.).
4674:. 1989.
4451:Burbank
4293:line_no
4289:line_no
4278:line_no
4261:pattern
4232:getedit
4227:forever
4213:line_no
4199:pattern
4195:getedit
4183:endfile
4172:varying
4158:varying
4136:options
4091:putlist
4079:options
4025:IDECIDE
3958:ASSIGN
3931:PROCEED
3644:DEFINED
3613:POINTER
3605:POINTER
3550:INITIAL
3504:Fortran
3405:Fortran
3301:classes
3084:DECLARE
3054:process
3036:), the
3028:), the
2922:OpenVMS
2908:Multics
2875:OpenVMS
2791:of the
2738:IBM 801
2724:PowerPC
2679:IBM Db2
2605:CP/M-86
2524:Eclipse
2487:STORAGE
2454:PACKAGE
2450:EXPORTS
2421:ITERATE
2393:INTEGER
2377:INTEGER
2327:BYVALUE
2258:VERIFYR
2231:ORDINAL
2196:GRAPHIC
2188:HEXADEC
2153:POINTER
2129:, e.g.
2123:ORDINAL
2098:BYVALUE
2064:ORDINAL
2043:Windows
1891:Multics
1887:VAX/VMS
1847:DOS/360
1828:ITERATE
1812:BUILTIN
1764:Multics
1747:DOS/360
1736:TSS/360
1433:FLOAT
1293:BUILTIN
1249:ALIGNED
1072:occur:
1066:ON-unit
970:of the
941:COMPLEX
919:DECIMAL
892:POINTER
788:REWRITE
648:DEFAULT
639:DECLARE
474:goals:
428:Multics
397:Hursley
353:Fortran
345:COMTRAN
321:complex
257:) is a
146:Fortran
101:Website
91: (
6899:Portal
6629:
6610:
6591:
6545:
6526:
6498:
6111:
6021:
5828:
5783:
5733:13 May
5539:
5467:5 July
5440:
4860:May 5,
4748:
4629:
4583:
4428:
4392:
4107:Hello2
4072:Hello2
4007:GO TO
3949:THREAD
3915:ASSIGN
3865:RECORD
3833:, the
3825:, and
3799:SYSTEM
3789:If no
3780:SIGNAL
3776:REVERT
3672:LENGTH
3601:OFFSET
3560:STATIC
3530:Pascal
3496:STATIC
3488:, and
3484:, and
3474:STATIC
3413:pseudo
3251:REPEAT
3245:, the
3046:UNLOCK
3016:, the
2954:Oracle
2877:, and
2793:PRIMOS
2762:64-bit
2716:OS/400
2696:AS/400
2663:OS/390
2538:&
2536:AOS/VS
2513:UNIVAC
2438:STATIC
2427:UPTHRU
2373:DEFINE
2323:BYADDR
2281:&=
2266:SEARCH
2262:VERIFY
2223:UPTHRU
2207:SIGNED
2194:, and
2138:DEFINE
2127:Pascal
2072:HANDLE
2066:, and
2035:OS/390
1949:OS/360
1859:VM/CMS
1857:, and
1851:OS/VS1
1816:SELECT
1713:OS/360
1657:Univac
1655:, and
1606:NORMAL
1604:(e.g.
1510:STATIC
1503:OFFSET
1475:MEMBER
1447:FORMAT
1419:FIXED
1407:RECORD
1390:UPDATE
1373:STREAM
1322:OUTPUT
1254:DIRECT
1226:FINISH
1151:or an
943:), and
932:), and
921:), and
915:BINARY
887:OFFSET
877:FORMAT
796:DELETE
792:LOCATE
721:REVERT
717:SIGNAL
683:RETURN
675:SELECT
657:FORMAT
564:macros
543:, and
512:glyphs
361:GEORGE
295:, and
71:, the
6836:Linux
6757:IBM,
6750:IBM,
6743:IBM,
6736:IBM,
6647:(PDF)
6379:(PDF)
6281:(PDF)
6262:(PDF)
6208:(PDF)
6120:(PDF)
6109:S2CID
6089:(PDF)
6057:(PDF)
6030:(PDF)
6019:S2CID
5999:(PDF)
5953:(PDF)
5880:MI400
5826:S2CID
5684:(PDF)
5671:(PDF)
5599:(PDF)
5438:S2CID
5422:(3).
5130:(PDF)
5014:(PDF)
4926:(PDF)
4881:(PDF)
4855:(PDF)
4696:(PDF)
4689:(PDF)
4646:telex
4627:S2CID
4581:S2CID
4526:(PDF)
4505:(PDF)
4457:, IBM
4353:Notes
4253:index
4187:sysin
4036:LABEL
3994:GO TO
3922:ALTER
3911:ALTER
3904:GO TO
3839:GO TO
3835:ERROR
3795:ERROR
3740:BEGIN
3683:BASED
3676:REFER
3664:REFER
3656:UNION
3628:heaps
3609:BASED
3589:BASED
3568:BASED
3566:, or
3538:BEGIN
3522:ALGOL
3500:COBOL
3486:BASED
3401:COBOL
3305:UNION
3277:CHECK
3247:UNTIL
3239:LEAVE
3042:EVENT
3010:EVENT
2897:Sabre
2849:Usage
2831:Apple
2825:Sabre
2812:HAL/S
2671:z/VSE
2659:REFER
2637:Linux
2442:BASED
2417:LEAVE
2391:name
2352:WHILE
2316:VALUE
2297:A=A+1
2270:TALLY
2164:UNION
2157:=>
2080:UNION
2014:PLUTO
1981:PLAGO
1924:BASIC
1903:Tru64
1899:Alpha
1889:from
1832:LEAVE
1665:MITRE
1461:LABEL
1454:LOCAL
1385:ENTRY
1339:PRINT
1305:KEYED
1288:INPUT
1276:BASED
1222:ERROR
1039:block
1015:group
996:ENTRY
930:FLOAT
926:FIXED
882:LABEL
863:ENTRY
784:WRITE
756:CLOSE
735:ALLOC
679:GO TO
621:BEGIN
617:ENTRY
401:GUIDE
373:ALGOL
369:SHARE
357:ALGOL
349:COBOL
142:COBOL
73:SHARE
6840:OS/2
6838:and
6825:and
6811:z/OS
6809:for
6682:ECMA
6661:ANSI
6627:ISBN
6608:ISBN
6589:ISBN
6543:ISBN
6524:ISBN
6496:ISBN
6387:2023
6158:2010
5861:2021
5781:ISBN
5735:2019
5654:2010
5537:ISBN
5469:2021
5308:2010
5193:link
4862:2020
4746:ISBN
4711:2024
4426:ISBN
4390:ISBN
4282:line
4272:then
4266:>
4257:line
4236:line
4191:stop
4141:main
4084:main
4077:proc
4040:GOTO
3961:1860
3878:AREA
3874:AREA
3827:FILE
3823:AREA
3734:The
3688:ADDR
3652:CELL
3624:AREA
3622:The
3597:FREE
3582:FREE
3580:and
3490:AREA
3453:e.g.
3449:Lisp
3309:TYPE
3297:CELL
3281:SNAP
3222:null
3194:and
3176:ELSE
3173:...%
3170:THEN
3167:...%
3034:Join
3030:WAIT
3026:Fork
3022:CALL
3018:TASK
3014:TASK
3012:and
2971:PL/S
2963:Java
2952:and
2948:and
2946:CICS
2940:and
2926:IA64
2906:The
2888:The
2879:Unix
2867:OS/2
2800:PL/P
2779:CP-6
2775:PL-6
2756:for
2752:and
2744:and
2734:PL.8
2694:and
2685:PL/C
2675:z/VM
2673:and
2667:z/OS
2650:PL/S
2633:OS/2
2626:OS/2
2613:PL/M
2601:CP/M
2581:and
2526:and
2485:The
2478:The
2471:The
2464:The
2429:and
2405:LIKE
2401:TYPE
2389:TYPE
2371:The
2336:and
2332:The
2314:The
2293:A+=1
2268:and
2244:and
2242:DAYS
2236:The
2225:and
2213:and
2205:and
2168:CELL
2162:The
2147:The
2142:TYPE
2136:The
2076:TYPE
2047:z/OS
2041:and
2006:PLUM
1993:SP/k
1969:SL/1
1956:PL/C
1897:and
1836:DATE
1830:and
1820:WHEN
1805:PL/S
1619:and
1608:and
1593:ANSI
1589:ECMA
1402:FILE
1300:BIT
1266:AREA
1214:AREA
1103:SIZE
1035:ELSE
1031:THEN
998:and
937:REAL
901:The
868:FILE
853:AREA
780:READ
752:OPEN
740:FREE
733:(or
687:STOP
667:CALL
650:(or
641:(or
612:PROC
610:(or
537:TIME
535:and
533:DATE
446:and
385:PL/I
381:MPPL
343:via
278:ANSI
255:PL/1
211:PL/I
200:PL/I
182:REXX
178:PL.8
174:PL-6
170:PL/S
166:PL/M
128:See
110:.com
108:.ibm
93:1964
86:1964
38:PL/I
18:PL/1
6827:VSE
6819:MVS
6815:AIX
6692:ISO
6684:50
6409:IBM
6349:hdl
6329:vs
6186:doi
6101:doi
6061:doi
6011:doi
5965:doi
5816:doi
5527:doi
5461:IBM
5428:doi
5109:doi
5078:doi
4700:IBM
4617:doi
4571:doi
4310:end
4304:end
4167:100
4153:100
4105:end
3844:An
3603:or
3403:or
3146:END
3086:d,
2959:C++
2950:IMS
2871:AIX
2859:DOS
2806:XPL
2765:gcc
2712:XPF
2609:DOS
2559:VOS
2549:CDC
2532:AOS
2444:or
2289:||=
2260:to
2209:,
2039:AIX
2027:MVS
2008:by
2002:PL0
1944:CPS
1895:VAX
1855:MVS
1788:TMG
1768:MIT
1653:RCA
1633:CDC
1625:ICL
1612:).
1064:An
1055:END
1023:END
1010:).
939:or
928:or
917:or
858:BIT
770:PUT
766:GET
652:DFT
643:DCL
629:END
414:VDM
377:NPL
347:to
271:IBM
186:SAS
106:www
77:ISO
69:IBM
6925::
6823:VM
6821:,
6817:,
6813:,
6418:^
6406:.
6395:^
6363:^
6297:.
6214:.
6210:.
6182:28
6180:.
6160:.
6144:.
6107:.
6097:46
6095:.
6091:.
6017:.
6007:48
6005:.
6001:.
5986:^
5977:.
5961:34
5959:.
5955:.
5929:.
5904:.
5878:.
5851:.
5847:.
5824:.
5812:38
5810:.
5804:.
5751:.
5700:.
5673:.
5638:.
5621:^
5578::
5574:.
5535:.
5458:.
5436:.
5420:31
5418:.
5414:.
5402:^
5393:,
5351:.
5298:.
5268:.
5257:^
5243:.
5213:.
5189:}}
5185:{{
5166:.
5105:12
5103:.
5074:15
5072:.
5066:.
5039:^
5022:^
4996:^
4986:.
4968:.
4946:.
4934:^
4840:^
4782:^
4770:^
4760:,
4754:.
4713:.
4704:11
4691:.
4670:.
4625:.
4613:13
4611:.
4605:.
4593:^
4579:.
4565:.
4559:.
4528:.
4507:.
4424:.
4404:^
4251:if
4224:do
4181:on
4022:ON
3964:TO
3934:TO
3928:TO
3889:ON
3885:ON
3870:ON
3858:ON
3850:ON
3846:ON
3821:,
3817:,
3813:,
3809:,
3803:ON
3791:ON
3784:ON
3772:ON
3768:ON
3764:ON
3760:ON
3756:ON
3748:ON
3744:ON
3736:ON
3725:ON
3718:ON
3619:.
3562:,
3542:ON
3492:.
3480:,
3476:,
3432:,
3373:ON
3368:ON
3307:,
3255:DO
3243:DO
3179:..
3164:IF
3130:DO
3110:.
3104:PI
3096:PI
3040:,
2961:,
2881:.
2873:,
2869:,
2865:,
2861:,
2798::
2534:,
2440:,
2415:A
2368:.
2349:DO
2299:.
2287:,
2285:-=
2283:,
2279:,
2277:+=
2217:.
2190:,
2093:).
2089:,
2062:,
2037:,
2033:,
2031:VM
2029:,
1853:,
1841:.
1838:()
1782:,
1671:,
1667:,
1663:,
1651:,
1647:,
1643:,
1639:,
1635:,
1631:,
1224:,
1220:,
1216:,
1079:,
1075:a
1027:IF
1019:DO
946:a
713:ON
671:IF
625:DO
545:DO
504:).
497:).
416:.
359:,
355:,
323:,
319:,
315:,
307:,
303:,
291:,
287:,
261:,
227:iː
184:,
180:,
176:,
172:,
168:,
164:,
148:,
144:,
55:,
51:,
6901::
6867:.
6865:C
6635:.
6616:.
6597:.
6551:.
6532:.
6504:.
6457:.
6443:.
6429:.
6389:.
6357:.
6351::
6333:.
6314:.
6218:.
6216:6
6192:.
6188::
6129:.
6103::
6073:.
6063::
6039:.
6013::
5967::
5937:.
5914:.
5889:.
5863:.
5832:.
5818::
5789:.
5762:.
5737:.
5715:.
5656:.
5545:.
5529::
5471:.
5444:.
5430::
5355:.
5337:.
5310:.
5283:.
5251:.
5228:.
5195:)
5181:.
5139:.
5115:.
5111::
5086:.
5080::
5051:.
5033:.
4972:.
4950:.
4864:.
4633:.
4619::
4587:.
4573::
4567:8
4434:.
4398:.
4314:;
4307:;
4301:;
4298:1
4295:+
4291:=
4287:;
4284:)
4280:,
4276:(
4269:0
4263:)
4259:,
4255:(
4248:;
4245:)
4243:L
4241:(
4238:)
4234:(
4230:;
4221:;
4218:1
4215:=
4211:;
4208:)
4206:L
4204:(
4201:)
4197:(
4193:;
4189:)
4185:(
4178:;
4174:;
4170:)
4164:(
4160:;
4156:)
4150:(
4146:;
4143:)
4139:(
4130::
4109:;
4102:;
4099:)
4093:(
4089:;
4086:)
4082:(
4075::
3595:/
3526:C
3161:%
3149:;
3143:%
3140:;
3136::
3127:%
3092:+
2944:(
2917:.
2726:/
2615:.
2365:;
2362:)
2360:B
2355:(
2198:.
2025:(
1822:/
1818:/
1041:(
958:)
950:(
737:)
654:)
645:)
614:)
524:.
249:/
246:n
243:ʌ
240:w
235:l
232:ɛ
224:p
221:/
213:(
95:)
34:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.