27
PROGRAMMING LANGUAGE ONE INTRODUCTION PL/1 is a large and powerful multipurpose programming language. The intent of the designers of PL/1 was to create a language that could be used in business and in scientific applications, as well as in systems programming applications such as writing operating systems. The original design was developed in 1963 by a committee of people drawn from IBM and from SHARE, an IBM user group. For a long time the only important implementation of PL/1 were those developed by IBM on the 360 and 370 computers and the implementation of the GE 645 at the MULTICS Project at MIT. However, during the early 1970’s a number of other implementations arose. The implementation of PL/1 by other organizations was given impetus by the development of a national and international standard for PL/1 by a subcommittee of the American National Standard Institution, in conjunction with a similar subcommittee of the European Computer Manufacturers Association. There are different types of programming languages. Some are directly understandable by the computers and others that require intermediate translation steps. Programming languages can be divided into three general types. 1. Machine Language 2. Assembly Language 3. High-level Language Machine language is the natural language of a particular computer. Any computer can directly understand only its own

Programming Language One

Embed Size (px)

DESCRIPTION

This document gives u a brief description of programming language one.

Citation preview

Page 1: Programming Language One

PROGRAMMING LANGUAGE ONE

INTRODUCTION

PL/1 is a large and powerful multipurpose programming language. The intent of the designers

of PL/1 was to create a language that could be used in business and in scientific applications,

as well as in systems programming applications such as writing operating systems. The

original design was developed in 1963 by a committee of people drawn from IBM and from

SHARE, an IBM user group. For a long time the only important implementation of PL/1

were those developed by IBM on the 360 and 370 computers and the implementation of the

GE 645 at the MULTICS Project at MIT. However, during the early 1970’s a number of

other implementations arose. The implementation of PL/1 by other organizations was given

impetus by the development of a national and international standard for PL/1 by a

subcommittee of the American National Standard Institution, in conjunction with a similar

subcommittee of the European Computer Manufacturers Association.

There are different types of programming languages. Some are directly understandable by the

computers and others that require intermediate translation steps. Programming languages can

be divided into three general types.

1. Machine Language

2. Assembly Language

3. High-level Language

Machine language is the natural language of a particular computer. Any computer can

directly understand only its own machine language. As computers became more popular, it

became clear that machine language programming was very slow and tedious for the

programmers. Instead of using machine language, programmers began to use English-like

abbreviations (Assembly Language) to represent the elementary operations of the computer.

(ninjacraze, 2013) Assembly languages has translator programs caller Assemblers and

converts assembly language programs to machine language. With the help of assembly

language computer usage increased rapidly. Even though assembly language is faster than

machine languages to program, still assembly language is very slow. High-level

programming language were developed to speed the programming process.

PL/I ("Programming Language One", pronounced /piː ɛl wʌn/) is

a procedural, imperative computer programming language designed for scientific,

engineering, business and system programming uses. It has been used by various academic,

commercial and industrial organizations since it was introduced in the 1960s, and continues

Page 2: Programming Language One

to be actively used as of 2009 (Sturm, 2009). PL/I is a structured language to develop systems

and applications programs (both business and scientific). The definition of standard PL/1 was

formally released late in 1976, but the content of the standard was publicly known well

before then. The standard itself was written in a novel manner as a set of algorithms,

expressed in highly stylized English, for the operation of a hypothetical PL/1 machine

(Paul Abrahams, 1978).

HISTORY OF PROGRAMMING LANGUAGE ONE (PL/1)

In the 1950s and early 1960s business and scientific users programmed for different computer

hardware using different programming languages. Business users were moving from Auto

coders via COMTRAN to COBOL, while scientific users programmed in General

Interpretive Programme (GIP), Fortran, ALGOL, GEORGE, and others. The IBM

System/360 (Emerson W. Pugh, 1991) (announced in 1964 but not delivered until 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 3 IBMers

from New York and 3 members of SHARE, 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 Algol labelled

“NPL". This acronym conflicted with that of the UK’s National Physical Laboratory and was

replaced briefly by MPPL (Multipurpose Programming Language) and, in 1965, with PL/I

(with a Roman numeral “I” ). The first definition appeared in April 1964. (Committee, 1964)

(Rogoway, 1965)

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 (Radin,

1978). Control of the PL/I language was vested initially in the New York Programming

Center and later at the IBM UK Laboratory at Hursley. The SHARE and GUIDE 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 IBM Vienna

to make an unambiguous and complete specification. This led in turn to one of the first large

scale Formal Methods for development, VDM. The language was first specified in detail in

the manual “PL/I Language Specifications. C28-6571” written in New York from 1965 and

superseded by “PL/I Language Specifications. GY33-6003” written in Hursley from 1967.

Page 3: Programming Language One

IBM continued to develop PL/I in the late sixties and early seventies, publishing it in the

GY33-6003 manual. These manuals were used by the Multics group and other early

implementers. The first compiler was delivered in 1966. The Standard for PL/I was approved

in 1976.

PL/I was developed by IBM in conjunction with representatives of two customer groups:

SHARE, the scientific users' organization and GUIDE, the commercial users' organization.

PROGRAMMING PARADIGM FOR PL/1

A programming paradigm is a fundamental style of computer programming. (Gaglani, 2010)

It’s a way of building the structure and elements of computer programs. Different

programming languages support different styles of programming. Capabilities and styles of

various programming languages are defined by their supported programming paradigms;

some programming languages are designed to follow only one paradigm, while others

support multiple paradigms. There are several kinds of major programming paradigms:

Imperative — Control flow is an explicit sequence of commands.

Declarative — Programs state the result you want, not how to get it.

Structured — Programs have clean, goto-free, nested control structures.

Procedural — Imperative programming with procedure calls.

Functional (Applicative) — Computation proceeds by (nested) function calls that

avoid any global state.

Function-Level (Combinator) — Programs have no variables.

Object-Oriented — Computation is effected by sending messages to objects; objects

have state and behaviour.

o Class-based — Objects get their state and behaviour based on membership in a class.

o Prototype-based — Objects get their behaviour from a prototype object.

Event-Driven — Control flow is determined by asynchronous actions (from humans

or sensors).

Flow-Driven — Computation is specified by multiple processes communicating over

predefined channels.

Logic (Rule-based) — Programmer specifies a set of facts and rules, and an engine

infers the answers to questions.

Page 4: Programming Language One

Structured programming is a kind of imperative programming where the control flow is

defined by nested loops, conditionals, and subroutines, rather than via goto’s. Variables are

generally local to blocks (have lexical scope). Early languages emphasizing structured

programming: Algol 60, PL/I, Algol 68, Pascal, C, Ada 83, Modula, Modula-2. Hence, PL/1

is of the Structural Programming Language Paradigm.

Imperative, declarative, functional, object-oriented, logic and symbolic programming

(Normark, 2014). Imperative / algorithmic programming paradigm has the following

programming languages: ALGOL, COBOL, Ada, C, Modula, FORTRAN, Pascal and

BASIC. In imperative paradigm, computations are performed through a guided sequence of

steps, in which these variables are referred to or changed. The order of the steps is crucial,

because a given step will have different consequences depending on the current values of

variables when the step is executed. The declarative can be divided into functional

programming and logical programming. (Leavens, n.d.) The Functional Programming

paradigm views all subprograms as functions in the mathematical sense-informally, they take

in arguments and return a single solution. The solution returned is based entirely on the input,

and the time at which a function is called has no relevance. Programming languages under the

functional programming paradigm are; Lisp, Haskell, ML, Miranda, APL. The Logical

Paradigm takes a declarative approach to problem-solving. Various logical assertions about a

situation are made, establishing all known facts. Then queries are made. The role of the

computer becomes maintaining data and logical deduction. Programming language under

Logical paradigm is Prolog. Object Oriented Programming (OOP) is a programming

paradigm in which real-world objects are each viewed as separate entities having their own

state which is modified only by built in procedures, called methods. Because objects operate

independently, they are encapsulated into modules which contain both local environments

and methods. Communication with an object is done by message passing. Examples of

Object-Oriented paradigm are; Smalltalk, Simula, C++, Java. (Leavens, n.d.).

DESIGN AND STRUCTURE OF PROGRAMMING LANGUAGE ONE (PL/1)

The design of PL/1 drew heavily on the major languages that existed in 1963: Fortran, Cobol

and Algol 60. The syntax of PL/1 most resembles that of Fortran, but without

Fortran's rigid rules for program formatting. The notion of block structure was taken from

Algol 60, while PL/1 structures were taken from the record descriptions of Cobol. However,

a great many features were added to PL/1 that have no counterpart in its ancestor languages

(Abrahams, 1978).

Page 5: Programming Language One

PL/I's main domains are data processing, numerical computation, scientific computing,

and system programming; it supports recursion, structured programming, linked data

structure handling, fixed-point, floating-point, complex, character string handling, and bit

string 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.

The building blocks of PL/1 is made up of a series of subprograms called procedures.

Program is structured into a Main Program and subprograms. Subprograms include

subroutine and functions. Every PL/1 program consists of at least one procedure, block and

groups.

A PL/1 program has three parts:

(A) Program Heading: This defines the program names and program parameters.

(B) Declaration Parts: defines the names of constants and variables.

(C) Statement Parts: Declares actions to be performed by the program.

Program Sample (Input, Output) {Program Headings}

Var {Declaration Part}

Name: string [20];

Age: integer;

Begin {Statement Part}

Writeln (‘what is your name?’);

Readln (Age);

Writeln;

Writeln {‘your name is’, Name. ‘and you are’, Age, ‘years old’}

End.

The first line is the Program Heading. The program heading shows that it takes user input and output. The second is the Declaration part, which declares variables or constants that assign memory space for that variables or constants. The third line is the statement part. It actually do the input, output and processing tasks. PL/1 programming language is a high level language that has

Page 6: Programming Language One

its own syntax rules and grammar rules. Below is an example of a simple PL/1 Program.

Program 1

Program Lesson1_Program1;Begin

Write ('Hello World. Prepare to learn PL/1!!');

Readln; End.

The program is written only to display the message: 'Hello World. Prepare to learn PL/1!!' -

An introductory message that is displayed to you whenever you are going to learn a new

programming language.

A program in PL/1 starts with the reserved or keyword word 'Program' (although it is not

explicitly required) and ends with 'End', following a full stop (this is required though). A full-

stop is never used within the program, except when dealing with records and at the end of the

program as seen in the example above.

The 'Var' statement, is used to introduce any suitable variables which will be used later in the

program. These variables are non-constant terms so that they are used in the program for

storing values. (Saliba, 2006) The terms 'Num1', 'Num2' and 'Sum' in the program are the

variables which store any numbers, except those which are real (in fact, during the execution

of the program, a runtime error may occur if a decimal number is input). As you can see in

the example above, these variables are assigned to as integers. The term 'integer' means any

whole number, i.e. a number which is not a decimal number but a positive or negative

number. The integer type ranges from -32768 to 32767. So values which are not within the

specified range cannot be stored by an integer type. There are other types which are wider in

range, but for now the integer type is enough to hold up our values. The variables 'Num1',

'Num2' and 'Sum' are terms which are not reserved words, but can be used as variables in the

program to store data in them. They could be changed more than once. Moreover, I could

have used 'number1', 'number2' and 'totalsum' (note that there must be no spaces within the

variables), instead of 'Num1', 'Num2' and 'Sum', respectively. As you can see, it is much

Page 7: Programming Language One

better to shorten the variables than writing long words, such as 'variable_number1'. (Saliba,

2006) After declaring all the variables which are required to be used later in the program, the

main program always starts with the reserved word 'Begin'. Without this word, the compiler

will display a diagnostic (error message). In the program above, both of the two types of

'write' are used. These are 'write' and 'writeln'. Both has the same function, except that the

'write' function, does not proceed to the following line when writing a statement. If you run

this program, you will notice the difference between them. When using these two terms, any

message that will be typed in between the brackets and the inverted commas '(' ')', is

displayed on the screen. However, if a variable is used instead of a message, without using

the inverted commas, the CPU will display the stored variable in the memory, on the screen.

In line 9, the CPU will not display 'Sum' on the screen, but the stored number in the memory.

Another important thing which must be noticed is the semi-colon (;). The semicolon is used

after each statement in the program, except those that you will learn later. However, in the

example above, there isn't a semicolon after a 'begin' statement. This is because the flow of

the program has just started and must not be stopped by a ';'. (Saliba, 2006) The messages in

between the braces ({ }) are called comments or in-line documentation. I guess you

consider the comments to be 'extra'. Very long programs which include thousands of lines,

have already been felt in need of describing certain functions or even complicated functions.

In my experiences, I have already met many problems, when refusing to write a program for

a long time, and then resuming again writing it! I've made a long time trying to understand

what I have done. You must keep it into your mind that comments within the braces are not

read or compiled by the compiler/interpreter. (Saliba, 2006) The 'readln' statement is another

reserved word for input purposes, which enables the user to input a number or text only i.e.:

using the keyboard. But in our case the 'readln' statement is used to input numbers only

(letters are accepted but will cause a run-time error because it is not the input we want) and

store them in the variables 'Num1' and 'Num2'. This is because both variables are assigned to

as integers, and integer variables do not store strings. A run-time error is detected by the OS

(Operating System; ex. Windows or Linux) if something goes wrong with the input. One

last thing on errors is this: there are 2 major error types which are - Runtime Errors and

Compilation Errors. Runtime errors are those which occur unexpectedly during the execution

of the program, whereas a Compilation error is one which is detected during the compilation

process. Note that a decimal number is also considered as a wrong input; a decimal number

must not be input, since it is a real number. (Saliba, 2006). After the prompts and inputs by

the user, follows the addition. i.e. 

Sum: = Num1 + Num2;

Page 8: Programming Language One

The result of the above statement is the addition of the values stored in variables 'Num1' and

'Num2'. The important thing that you should know is that one cannot make the same

statement as follows:

Num1 + Num2:= Sum;

This is another syntax error. It is the fact that transfer of information is from left to right and

not from right to left. So, mind not to make this error. The ':=' is called the assignment

statement.

HOW TO RUN A PROGRAM IN PL1

Open a text editor and add the above mention code

Save the File as hello.pas

Open a Command Prompt and go to the directory where u saved the file

Type fpc hello. at the command prompt and press enter to compile your code.

If there are no errors in your code, the command prompt will take you to the next line

and you would generate hello executable file and hello.o object file.

Now type hello at command prompt to execute your program.

You will be able to see “Hello World” printed on the screen.

TEXT EDITOR FOR PL1

Text editors are used to type your program. The following are a collection of editors and

development environments known to have support for PL/I and a link where it could be

downloaded.

GNU Emacs http://www.gnu.org/software/emacs

GNU Emacs is an extensible, customizable text editor—and more. At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing. Mark Riggle has developed a PL/I mode for Emacs that can be found here. Details of the most recent version of Emacs ported to OpenVMS can be found here.

jEdit http://www.jedit.org

  jEdit is a text editor written in Java. It runs on Windows, Unix/Linux, MacOS X and OpenVMS. Rob Watson has written a module that provides syntax highlighting for PL/I. This module thips with the editor which can be downloaded from here.

Page 9: Programming Language One

Vim http://www.vim.org

  Vim (Vi improved) is a vi-compatible text editor that runs on nearly every operating system known to humanity (including OpenVMS). Michael Fitz has written a plugin for Vim, PLI-Tools, that provides syntax highlighting and indentation. The plugin and instructions on how to install and use it can be found here.

GNU nano http://www.nano-editor.org

  GNU nano is a simple text editor designed to be a drop-in replacement for the Pico editor that is part of the Pine email suite. Tim Sneddon has written a simple syntax highlighting module that can be included in the user's .nanorc file. This can be downloaded here.

Language Sensitive Editor

http://h71000.www7.hp.com/commercial/decset/decset_index.html

The Language Sensitive Editor (LSE) is a commerical editor that ships as part of HP's DECset development tool chain for OpenVMS. It provides support for PL/I.

NetBeans http://www.netbeans.org

  PL/I integration to the NetBeans IDE will be coming soon!

Ecplise http://www.pliedit.com/

William Fenalson has developed PLIEDIT, a plugin for the Eclipse IDE. which provides a PL/I sensitive editor for the Eclipse framework.  It supports syntax checking, highly customizable syntax colouring and supports the full IBM and ANSI language features.

 

COMPILERS FOR PL1

The following are compilers used in compiling PL1 Programs:

Multics PL1 Compiler

GCC PL1 Compiler

Iron Spring PL1 Compiler for Linux

Page 10: Programming Language One

PL/1 RESERVE WORDS OR KEYWORDS

The statements in PL/1 are designed with some specific PL/1 words, which are called the

Reserve words or Keywords. The following are list of reserved words in PL/1.

input

downto

else

do

function

set

then

to

while

with

if

not

or

output

array

record

goto

unit

repeat

program

var

real

begin

readline

writeline

end

type

and

Page 11: Programming Language One

A MORE COMPLEX PROGRAM ON PL/1

This program reads in a text and counts the number of times that each alphabetic diagram occurs. A

diagram is a sequence of two adjacent characters. For instance, the diagram in ‘GRUNGE’ are GR,

RU, UN, NG and GE.

Page 12: Programming Language One

In PL/1 there must be one and only one MAIN procedure to every program, the MAIN procedure

statement consists of:

Label

The statement ‘PROCEDURE OPTIONS (MAIN)’

A semicolon to mark the end of the statement.

A PL/I program is compiled by PL/I compiler and converted into the binary, Object program file

for link editing.

Coding a Program:

Comment line(s) begins with /* and ends with */. Although comments may be embedded

within a PL/I statements, but it is recommended to keep the embedded comments minimum.

Page 13: Programming Language One

DATA TYPES

The different kinds of data in PL/1 can be classified into groups called data types, or simply types.

The available types are either aggregate types or scalar types. An aggregate is composed from

simpler types and can be grouped into printable and non-printable types, sometimes known as

computational and non-computational. For each type, there can be variables and values of that type;

for some types there can also be constants. A constant associates a name with a single unchanging

value, while a variable associates a name with a location where a value can be stored. The value of

a variable is in general time dependent. Variables are introduced into the program by DECLARE

statements, e.g.:

DECLARE LETTER_SEQUENCE CHARACTER (15) VARYING;

Which declares the variable LETTER_SEQUENCE to have character string of length from 0 to 15

as its values. Below is a table showing a brief summary of the Primitive Data Types Associated

with PL1.

PRIMITIVE DATA TYPES OF PL/1

The table below shows few of PL/1 data types.

Type Minimum Maximum Format

Integer -2147483648 2147483647 Signed 32-bit

Cardinal 0 4294967285 Unsigned 32-bit

Shortint -128 127 Signed 8-bit

Smallint -32768 32767 Signed 16-bit

Longint -2147483648 2147483647 Signed 32-bit

Int 64 -2ˆ63 2 ˆ 63-1 Signed 64-bit

Byte 0 255 Unsigned 8-bit

Word 0 65535 Unsigned 16-bit

Longword 0 4294967295 Unsigned 32-bit

ARITHMETIC OPERATOR OF PL/1

The table below shows all the arithmetic operators supported by PL/1. Assume variable A holds 10

and variable B holds 20, then:

Page 14: Programming Language One

Operator Description Example

+ Adds two operands A+B will give 30

- Subtracts second operand from the first A-B will give -10

* Multiplies both operands A*B will give 200

Div Divides numerator by denominator B div A will give 2

Mod Modulus Operator AND remainder after an integer division. B mod

A

B mod A will give 0

RATIONAL OPERATORS

Following table shows all the relational operators supported by PL/1. Assume variable A holds 10

and variable B holds 20, then;

Operators Description Examples

= Checks if the values of two operands are equal or not. If yes, then

condition becomes true.

(A=B) is not true.

<> Checks if the values of the two operands are equal or not, if values

are not equal, then condition becomes true.

(A <> B) is true.

> Checks if the values of left operand is greater than the value of

right operand. If yes, then condition becomes true.

(A > B) is not true.

< Checks if the values of the left operand is less than the value of

right operand. If yes, then condition becomes true.

(A < B) is true.

>= Checks if the value of left operand is greater than or equal to the

right operand. If yes, then condition becomes true.

(A >= B) is not true.

<= Checks if the value of left operand is less than or equal to the

value of right operand. If yes, then condition becomes true.

(A <= B) is true.

BOOLEAN OPERATORS

The following table shows all the Boolean operators supported by PL/1 language. All these

operators work on Boolean operands and produce Boolean results. Assume variable A holds true

and variable B holds false, then;

Operator Description Example

and Called Boolean AND operator. If both the operands are true, then condition

becomes true.

(A and B) is

false.

Page 15: Programming Language One

and then It is similar to the AND operator. However, it guarantees the order in which

the compiler evaluates the logical expression. Left to right and the right

operands are evaluated only when necessary.

(A and then B) is

false.

or Called Boolean OR operator. If any of the two operands is true, then

condition becomes true.

(A or B) is true.

or else It is similar to Boolean OR. However, it guarantees the order in which the

compiler evaluates the logical expressions. Left to right and the right

operands are evaluated only when necessary.

(A or else B) is

true.

<= Called Boolean NOT operator, used to reverse the logical state of its

operand. If a condition is true, then logical NOT operator will make it false.

not (A and B) is

true

FEATURES OF PL/1

PL/1 contains some significant language features that allow it to use as a powerful learning tool in

introducing structured programming techniques to students, business organizations and scientific

uses:

Built in Data Types- PL/1 contains its own built in data types of Integer, Real, Character,

and Boolean.

User defined Data Types - Has the ability to define scalar types as well as sub ranges of

those data types.

Provides a defined set of Data Structures- These data structures include Arrays, Records,

Files and Sets.

Has a strong data typing element – PL/1 compliers can diagnose an incompatible

assignment of one type to a variable to another type.

Supports Structured Programming - This is accomplished through the use of subprograms

called procedures and functions.

Simplicity and Expressivity - Because the language is simple and expressive in nature. it

allows for effective teaching of computer programming techniques.

It offers extensive error checking.

It offers several data types like arrays, records, files and sets.

It offers a variety of programming structures.

It supports structured programming through functions and procedures.

It supports object oriented programming

Page 16: Programming Language One

ADVANTAGES OF PL/1

PL/I has been designed so that any programmer, no matter how brief or extensive his experience,

can use it easily at his own level. It is simple for the beginning programmer; it is powerful for the

experienced one. A programmer need not know everything about PL/I to be able to use it. An

experienced programmer can use PL/I to specify almost every detail of every step of a highly

complicated program. A beginner can take advantage of the many automatic features of the

language to do much of his work for him. The language provides many options in statements, in

descriptions of data or files. Wherever there are alternatives, the compiler makes an assumption if

no choice is stated by the programmer. In each case, the assumption, called a default, is the

alternative that would be required. In the majority of situations. The default concept is an important

part of the simplicity of PL/I. In many cases, a beginning programmer need not even know that

alternatives exist. Some other advantages are:

1. Better integration of sets of programs covering several applications.

2. Easier interchangeability of files.

3. Fewer programs to be written in a machine oriented language.

4. Better machine utilization, greater use of channels, more flexible storage assignment, better

intercept handling.

5. The process of compiling a PL/I program and executing it in the computer’s memory takes

place through JCL.

BRIEF COMPARISON BETWEEN PL1 AND JAVA

PL1 JAVA

Exception

Handling

The concept of exception handling was

pioneered in PL1. It allows the user to

write exception handlers not only for

language-defined exceptions but also for

user-defined exceptions. The binding of

exceptions to handlers is dynamic

Java’s exception handling is

based on that of C++. Java

supports both system-defined

and user-defined exceptions.

Easy to Learn PL/I has been designed so that any

programmer, no matter how brief or

extensive his experience, can use it

easily at his own level. It is simple for

the beginning programmer; it is

Java provides many benefits as

a programming language. One

of the key benefits is, it’s easy

to learn. This is because when

developing Java, its

Page 17: Programming Language One

powerful for the experienced one.

NOTE: PL1 is not Platform

Independence.

developers (The Sun

Microsystem) took all of the

good features of the then

existing object-oriented

programming languages such

as C++, Smalltalk, Ada etc

and removed most of their

flaws and peculiarities, thus

making Java possess features

and processes that are

consistent and make sense;

and thereby make Java easier

to learn and it is Platform

Independence.

Paradigm PL/1 falls under the Structural

Programming Language Paradigm.

Java falls under the Object-

Oriented paradigm

Reliability PL1 is very reliable Java is also very reliable. Java

programs should not crash.

Platform

Independence

PL1 is not Platform Independence Java is Platform

Independence. You can write

your program once and

execute on different platform

without recompiling your

code.

Security PL1 is very reliable in the aspect of

security, PL1 is been used to develop

Operating System and it’s not

susceptible to Hacking. Example, some

segments of the code used in the

development of Linux Operating was

from PL1.

Java is also a very reliable

programming language in the

area of security. Java is design

not to be susceptible to

hackers, to code and

dangerous viruses.

Page 18: Programming Language One

REFERENCES

Committee, D. (1964). Report II of the SHARE Advanced Language Development Committee.

Retrieved from https://en.wikipedia.org/wiki/PL/I

Emerson W. Pugh, L. R. (1991). IBM's 360 and Early 370 Systems. Retrieved from wikipedia:

https://en.wikipedia.

Gaglani, J. (2010, April 14). Programming paradigm. Retrieved from SlideFinder:

http://www.slidefinder.net/p/programming_paradigms/32399652.org/wiki/PL/I

Leavens, G.T. (n.d.). Major Programming Paradigms. Retrieved from University of Central Florida:

http://www.eecs.ucf.edu/~leavens/ComS541Fall97/hw-pages/paradigms/major.html.

Ninjacraze. (2013). Types of Computer languages. Retrieved from ninjacraze:

http://ninjacraze.hubpages.com/hub/Types-of-Computer-Languages.

Normark, K. (2014, January 3). Overview of the four main programming paradigms. Retrieved

from http://people.cs.aau.dk/~normark/prog3-03/html/notes/paradigms_themes-paradigms-

overview-section.html.

Paul Abrahams. (1978). THE PL/I PROGRAMMING LANGUAGE. Retrieved from

http://www.iron-spring.com/abrahams.pdf

Radin, G. (1978). The Early History and Characteristics of PL/I. Retrieved from wikipedia :

https://en.wikipedia.org/wiki/PL/I

Rogoway, G. a. (1965). Highlights of a New Programming Language, . Retrieved from wikipedia :

https://en.wikipedia.org/wiki/PL/I