BT06 - PL/1 Programming Workshop
Duration5 Days (customisation)
Availability

Course Description

The course is aimed at developers' not familiar PL/1 program development. This course covers all aspects of Programming with PL/1. The course teaches the design, writing and testing of PL/1 programs. Many exercises are performed by the developer to ensure that the statements taught are fully understood and practical experience is gained.

This course can be compressed if the student only requires basic knowledge (for example - to use an Applications Generator).

Pre-requisites

Knowledge of TSO/ISPF and JCL is required. This can be gained by attending course BT02.

Objectives

Whilst covering the basics of PL/1 programming and how it is used, this course also aims to give an insight into structuring PL/1 programs, PL/1 statements, manipulating data, and testing PL/1 programs.

On completion of this course the student will be able to:

  • Develop Structured PL/1 Programs
  • Understand and Use PL/1 Statements
  • Develop PL/1 programs using the available statements
  • Develop and Test PL/1 print programs
  • Develop and Test PL/1 programs accessing different types of files

Environment

Development will be performed using:

  • IBM Mainframe

Customisation

For on-site courses (i.e. at your premises), we are more than happy to tailor the course agenda to suit your exact requirements. In many cases, we are able to build your in-house standards and naming conventions into the delivered course.

Course Details

BASIC PL/1
PL/1 Character Set
PL/1 Identifiers
Internal Names
External Names
PL/1 Statements
Labels
Procedure Statement
Comments
Variable Declaration
Coding PL/1 Statements
End Statement
Compiling and Linking
Running the Program
VARIABLES, DATA TYPES AND CONSTANTS
Declaration of Variables
Writing Constants in PL/1
Character String Constants
Defining Variables in PL/1
Declare Statement
Arithmetic Data Types
Fixed Decimal
Fixed Binary
String Data
Bit Data
Variable Initialisation
INIT With Structures
INIT With Arrays
Defined Statement
Position Statement
STRUCTURES
Structure Definition
Multi-Level Structures
Structure Assignments
Like Statement
By Name Statement
EXPRESSIONS, ASSIGNMENTS AND OPERATORS
Assignment Statement
Character Assignment
Arithmetic Operators
Bitwise Operators
Expressions
Data Type Conversion in Assignments
Relational Operators
Conditional Operators
Priority of Operators
Using Parentheses
PROGRAM FLOW AND CONTROL
Control Flow Statements
Do; and End; Statement
If Statement
Nested If Statements
Select Statement
Do While Statement
Do Until Statement
Nested Loops
Continue Statement
Goto Statement
Conditional Expressions
Comma Operator
INTERNAL AND EXTERNAL PROCEDURES
External Procedure Overview
Internal Procedure Overview
Dividing a Program Into Blocks
PROCEDURES
External Procedures
Passing Arguments to Procedures
Call Statement
Proc Statement
Entry Statement
Returning Arguments from Functions
Return Statement
Internal Procedures
Variable Scope
Call Statement
Storage Classes
FILE ACCESS
Data Input / Output
Declaring a PL/1 Sequential File
Declaring an Input File
Declaring an Output File
Declaring an Update File
File Access
File Open and Close
Open Statement
Close Statement
Reading and Writing to a File
Read Statement
Write Statement
Rewrite Statement
End of File Handling
Environment Option
Sorting Data
Locate Statement
PRINTING
Picture Variables
Pic Characters
Insertion Characters
Carriage Control Characters
ARRAYS
Basic Data Types
Declaring Arrays
Upper and Lower Bounds
Accessing Array Elements
Array Operations
Arrays and Structures
Multi-Dimensional Arrays
BIT DATA
Operations on Bit Variables
Declaring Bit Variables
Bit Alignment
Bit Operators
Bit Masks
DATA CONVERSION
Fixed Dec to Fixed Bin
Fixed Bin to Fixed Dec
Fixed Dec to Character
Character to Fixed Dec
Fixed Dec to Pic
Pic to Fixed Dec
INTERRUPTS
Begin Statement
Error
Zerodivide
Endfile
Signal
On Procedures
On Begin
On System
On Conditions
Built-in Functions
BUILT-IN FUNCTIONS
Classes of Built-in Functions
String Handling Functions
Arithmetic Functions
Array Handling Functions
Date and Time Functions
ADDRESSES AND POINTERS
Declaring Pointers
Pointer Manipulation
Pointers to Pointers
Passing Pointers to Functions
Returning Pointers from Functions
Pointers and Arrays
Pointer Comparison
Using Pointers to Pass Arrays to Functions

Course Format

Practical sessions make up a large part of the course, allowing delegates to demonstrate and reinforce the lectures given. During these sessions the delegate will gain experience of writing and testing different types of PL/1 programs using the various PL/1 statements available.

Examples are used extensively, ranging from simple code snippets to full applications with complete 'real world' functionality. These are supplied at the start of the course and it is encouraged that the delegates execute and 'experiment' with these under the instructor's guidance as they are introduced.

These examples are available to take away, along with the delegate's own work.

The comprehensive Student Guide supplied is fully indexed serving as a useful reference tool long after the course has finished. Delegates will also be able to access a free help-line with technical questions relating to topics covered on the course.