ESD TR 68 452_JOVIAL_Evaluation_Project_Oct68 452 JOVIAL Evaluation Project Oct68

ESD-TR-68-452_JOVIAL_Evaluation_Project_Oct68 ESD-TR-68-452_JOVIAL_Evaluation_Project_Oct68

User Manual: ESD-TR-68-452_JOVIAL_Evaluation_Project_Oct68

Open the PDF directly: View PDF PDF.
Page Count: 296

DownloadESD-TR-68-452_JOVIAL_Evaluation_Project_Oct68 ESD-TR-68-452 JOVIAL Evaluation Project Oct68
Open PDF In BrowserView PDF
ESD RECORD COPY
c.
i cite o

ESD-TR-68-452

RETURN TO
SCIENTIFIC X, TECHNICAL INFORMATION DIVISION

£3

fa f*.
in

JOVIAL EVALUATION PROJECT

William M. O' Brien

ESD ACCE!

;iQN USlT

ESTl Call No.__
Copy No.

/—

of

')

cys

15 October 1968

COMMAND SYSTEMS DIVISION
ELECTRONIC SYSTEMS DIVISION
AIR FORCE SYSTEMS COMMAND
UNITED STATES AIR FORCE
L. G. Hanscom Field, Bedford, Massachusetts

This document has been
approved for public release and
sale; its distribution is
unlimited.

(Prepared under Contract No. AF I9628-68-C-0II0 by Data Dynamics, Inc.,
9800 S. Sepulveda Boulevard, Los Angeles, California 90045.)
1

/\U W •' #

LEGAL NOTICE
When U. S. Government drawings, specifications or other data are used for any
purpose other than a definitely related government procurement operation, the
government thereby incurs no responsibility nor any obligation whatsoever; and
the fact that the government may have formulated, furnished, or in any way supplied the said drawings, specifications, or other data is not to be regarded by
implication or otherwise as in any manner licensing the holder or any other person
or conveying any rights or permission to manufacture, use, or sell any patented
invention that may in any way be related thereto.

OTHER NOTICES

Do not return this copy.

Retain or destroy.

ESD-TR-68-452

JOVIAL EVALUATION PROJECT

William M. O' Brien

15 October 1968

COMMAND SYSTEMS DIVISION
ELECTRONIC SYSTEMS DIVISION
AIR FORCE SYSTEMS COMMAND
UNITED STATES AIR FORCE
L. G. Hanscom Field, Bedford, Massachusetts

This document has been
approved for public release and
sale; its distribution is
unlimited.

(Prepared under Contract No. AF 19628-68-C-0H0 by Data Dynamics, Inc.,
9800 S. Sepulveda Boulevard, Los Angeles, California 90045.)

FOREWORD

This report is the result of an extensive evaluation of Air Force Manual 100-24,
Standard Computer Programming Language for Air Foce Command and Control Systems.
The evaluation centered on user experience with operational JOVIAL systems. It was
accomplished by the use of both interview and questionnaire techniques.
The work has been performed as part of Project 6917 Task 04 under contract
number F19628-68-C-011 0 for Electronic Systems Division U.S. Air Force Systems
Command. The project monitor was Capt. Martin J. Richter, Hq ESD (ESLFE).
The report contains detailed recommended changes to AFM 100-24 in Section 3.
This report has been reviewed and is approved.

MARTIN J. RIC
Project Moni

ER, Capt., USAF

WILLIAM F. HEISLER, Col., USAF
Chief, Command Systems Division
Directorate of Planning & Technology

ii

ABSTRACT

The results of the evaluation of the JOVIAL Language as specified in Air Force
Manual (AFM) 100-24 are contained in this report. This evaluation was based
primarily on experience of users of JOVIAL Language dialects. The goal of this
evaluation was to recommend deletions, retentions, modifications, and extentions
to the JOVIAL language as specified in AFM 100-24 based on the users experience.
The methodology of the evaluation consisted of collecting user experience data by
means of a "JOVIAL Application Questionnaire" and interviews; and evaluating this
data based on criteria established and documented in the "Approach for Change". This
report contains a list of JOVIAL features recommended for deletion and retention and
detailed specifications of recommended modifications and extentions to the JOVIAL
language. In addition, the report contains the detailed interview notes and
questionnaire responses which were the basic data used to arrive at the recommendations.

•<•
in

TABLE OF CONTENTS

Page
FOREWORD
ABSTRACT
SECTION I

*>•
in

SECTION

SECTION

SECTION IV

APPENDIX
APPENDIX
APPENDIX
APPENDIX

I
II
III
IV

INTRODUCTION
1 .1
Project Overview
1 .2
List of Features and Concepts Considered
1.3
Method of Analysis
1.3.1
Philosophy of Language and Language
Standardization
1.3.2
Method of Analysis of JAQ Responses
1.3.3
Method of Analysis of Inter Responses
CONCLUSION
2.1
JOVIAL Language Extention
2.1 .1
List of Extentions
2.1 .2
Remarks on Extentions
2.2
Deletions
2.3
List of Nucleus Features
2.4 List of Optional Features
2.5
Observations
EXTENSION SPECIFICATIONS
3.1
General
3.2
Recommendations
3.2.1
Deletions
3.2.2
Additions and Modifications
3.2.3
Nucleus Features
3.2.4
Optional Features
ADDITIONAL RECOMMENDATIONS
4.1
Specific Study Topics
4.2
General Concepts
4.3
Specific Concepts
4.4
Language/Compiler Design Goals
Interviewee Directory and Notes
JAQ Feature Resolution and Analysis
Interview Questions
Interview Response Analysis

IV

1
1

2
6
6
8
10
11
11
11
12
13
14
16
17
19
19
19
19
20
77
79
81
81
81
81
82
83
127
235
253

SECTION
INTRODUCTION

1 .1

Project Overview

The JOVIAL Evaluation Project consisted of a study of the Standard Computer
Programming Language for Air Force Command and Control System (J3 dialect),
as specified in AFM 100-24. The goal of this study is to recommend deletions,
retentions, modifications, and propose extensions to the features of the Standard
JOVIAL language dialect as specified in AFM 100-24 on the basis of command and
control programming requirements.
The study has been carried out by soliciting information from a community of users
of JOVIAL. Members of this community were selected to obtain as broad a crosssection of those JOVIAL command and control programming groups as possible.
There are thirteen members in the community canvassed — they are identified
in Appendix 1 . It is important to note that several of the military members are nonAir Force and that the list also includes two industrial groups using JOVIAL for
non-military applications. It is felt that the information obtained from such a diverse
community has produced a blueprint for a "globally" useful command and control
programming language.
Information was solicited from the members of the community by two means:
(1)
a JOVIAL Application Questionnaire (JAQ), ESD-TRand
(2)
an in-person interview conducted by DDL
The JAQ contained comprehensive descriptions of the features defined by
AFM 100-24 with questions designed to determine
(1)
deviations of the JOVIAL dialects currently in use from the
standard, and
(2)
the degree of usage of those features which did not deviate
significantly from their standard counterparts. (Respondents could
either estimate the number of usages of the feature in their application
or give an exact number.)
Information pertaining to hardware configuration, operating procedures, programmer
experience levels, etc., were also solicited in the JAQ. One or more copies of the
JAQ were sent to each member of the community. In most cases, each of many
sub-groups of a given user group responded to a JAQ. Such responses were made
with respect to the particular program subsystem for which the sub-group was
responsible. In some instances, different sub-groups used aifferent compilers (dialects);
1

in other instances, the same compiler (dialect) was used by many or all of the
sub-groups. (Note that "members of the community" or groups and sub-groups are
alternately referred to in this document as "applications".)
Interviews were conducted by DDI personnel with each of the members of the
community to determine the need for additional features to the language and the
need for modifications and extensions to certain existing features. Some questions
at the interviews were asked in order to gain insight into broad command and control
programming requirement areas. The typical interview lasted for approximately three
hours. A list of the questions asked at each interview may be found in Appendix 3.
Respondents to the JAQ and the interview questions were generally enthusiastic and
dilligent in providing the great amounts of information requested of them. We wish
to acknowledge the cooperative efforts of all of those who participated in this study.
1 .2

List of Features and Concepts Considered

This paragraph contains a list of those features and concepts which were considered
in the study and about which information was solicited. The word "concept" as used
here refers to functions performed by command and control programmers rather than
explicit language facilities or features. Concepts were explored during the interviews
along with certain additional features. An example of a concept is "Dynamic Storage
Allocation". It was the point of the interviews to identify and develop features —
explicit language facilities — from those concepts which the members of the
community thought relevant to the solution of their problems.
Selection of features and concepts is relatively subjective. No claim is made that
those chosen for investigation are exhaustive. In the interest of economy, certain
Standard JOVIAL features were deliberately left out of the list because it was felt
that little utility could be gained from their study.
The features and concepts have been organized into "function modules" and sub modules
in order to clearly point up functional relationships between them. This organization
serves to impose a perspective on the large number of features and concepts being
evaluated.
In the following list of features and concepts the notation "(Q)" denotes a feature
about which information was solicited in the JAQ and "(I)" denotes a feature or
concept about which information was solicited at the interviews.
(1)

Function Module: Data
a)
Item Data (Non-Structured Data)
•
Literal Items
Standardized Expanded Character Set (I)
(Expanded JOVIAL sign set)

(2)

(3)

Item Type Hollerith (Q)
Item Type Standard Transmission Code (Q)
Character Data Size Attribute (Q)
User Definable
Character Set/Encoding Scheme (I)
•
Status Items (Q)
•
Status Formulas (Q)
•
Explicit Status Size Attribute (Q)
•
Item Type Bit String (I)
b)
Data Structures (Aggregates of Items)
•
Structure Array (Q)
•
Structure Table (Q)
Table Variability Attribute - Rigid (Q)
Table Variability Attribute - Variable (Q)
NENT(Q)
NWDSEN (Q)
Structure String
Structure GROUP (I)
Structure SET (I)
c)
Dynamic Allocation of Data (I)
Function Module: Referencing Data
BIT (Q)
BYTE (Q)
CHAR/MA NT (Q)
Subscripting
Subscripting Expressed as Complex Numeric Formula (Q)
Nested Subscripting (Q)
Table Entry Referencing (ENTRY/ENT) (Q)
Table Entry Referencing Notation - ENT (Q)
Function Module: Representing Data in the Standard JOVIAL J3 Memory
Computer Representation of Data (Q)
Importance of Storage Allocation Facilities (I)
Importance of Machine Independence (I)
Memory "Model" (Q)
Signed Magnitude Representation of Numbers (I)
Octal Constant (Q)
Hexadecimal Constants (I)
Basic Table Structure Attribute - Parallel (Q)
Basic Table Structure Attribute - Serial (Q)
Generalized Packing (I)
Ordinary (Table) Packing - Medium and/or Dense (Q)
Ordinary Packing - Medium (Q)
Ordinary Packing - Dense (Q)
"No Packing" Notation - " N" (Q)

(4)

(5)

(6)

(7)

(8)

•
Defined (Table) Packing (Q)
•
Independent Overlay Declaration (Q)
•
Subordinate Overlay Declaration (Q)
•
'LOC (Q, I)
•
Absolute addresses (OVERLAY, PROGRAM)
(I)
Function Module: Numeric Items and Arithmetic Operations
•
Item Type Integer (Q)
•
Item Type Fixed Point (Q)
•
Item Type Fixed Point
Scale in Declaration Blank or Zero (Q)
•
Range Attribute (Q)
•
Item Type Floating Point (Q)
•
Sign Attribute (Signed and Unsigned) (Q)
•
Double Precision
(also called Extended Precision) (I)
•
Parenthesized Numeric Formulas (Q)
•
Mixed Item Types in Numeric Formulas (Q)
•
Prefix + and - (Q)
•
Precedence of Prefix + and - (I)
•
Exponentiation Operator (Q)
•
Exponentiation Notation - ( * * ) (Q)
•
Absolute Value Operator (Q)
•
Absolute Value Notation - (//) (Q)
•
REM (Q)
•
REMQUO (Q)
Function Module: Dual Items and Dual Arithmetic Operations
•
Item Type Dual (Q)
•
Dual Arithmetic Operations (Q)
•
Structure Operators - Arrays, Tables (I)
•
Structure Operator - Matrix (I)
•
Structure Operator - Complex (I)
Function Module: Testing Operations
•
Hollerith Comparisons (I)
•
Relational Formulas (excluding chained) (Q)
•
"Chained" Relational Formulas (Q)
•
ODD (I)
Function Module: Boolean Items and Logical Operators AND, OR, and
NOT
•
Boolean Formulas-with AND, OR, NOT (Q)
•
Boolean Items (Q)
Function Module: Assignment
•
Numeric Item Type Conversion in Assignment Statements (Q)
•
Rounded Numeric Assignment (I)

(9)

Round Attribute (Q)
Boolean Assignment Statement (Q)
Item Preset (Q)
Array Preset (Q)
String Preset (Q)
Exchange Statement (Q)
Function Module: Program Structure and Execution of Program Structure
a)
Parallel Processing (I)
b)
Compound Statement (Q)
c)
GOTO Statement (Q)
d)
Stopping and Pausing
STOP (Q)
STOP (Modification) (I)
STOP Statement'label (Pausing) (Q)
Pausing (I)
e)
Conditional Transfer of Control
IF Statement (Q)
IFEITH/ORIF (Q)
Index Switch (Q)
Item Switch (Q)
Label Items (I)
Switch Names within Switch Declarations (Q)
Close Names within Switch Declarations (Q)
Parallel "Monitoring" (I)
f)
FOR Statements (Iteration)
FOR Loop - One Factor (Q)
FOR Loop - Two Factor (Q)
FOR Loop - Three Factor (Q)
FOR Loop - Decrementing (Q)
Test Statement (Q)
g)
Closed Subprograms and their Execution
Program (Q)
Procedure (Excluding Function) (Q)
Alternate Procedure Entrances (Q)
Close in Parameter List (Q)
Statement Label in Parameter List (Q)
Function (Q)
Close (Q)
Closed Subprogram (Delete Close in Favor of Proc?) (I)
Return Statement (Q)
'PROGRAM Declaration (Q)
Recursive Subprograms (I)
h)
Direct Code (Q)

(10)

(11)

(12)

1 .3

Function Module: Input/Output
Structure File
Structure File — Hollerith or Binary (Q)
Structure File — Record Length Variability (Q)
Input/Output - POS (Q)
Input/Output - OPEN Statement with Operand (Q)
Input/Output - OPEN Statement without Operand (Q)
Input/Output - SHUT Statement with Operand (Q)
Input/Output - SHUT Statement without Operand (Q)
Input/Output - Input Statement (Q)
Input/Output - Output Statement (Q)
Stream Oriented I/O (I)
Functional Files (I)
Device Oriented I/O (I)
Functiion Module: Naming Data and Program Structures
Proc-•like Name Scopes (I)
Multiple Statement Labels (Q)
Defini on Facilities
Define Directive (Q)
Extended Define Directive (I)
Mode Directive (Q)
Extended Mode Directive (I)
Like Table Declaration (Q)
Macro Facilities (I)
Method of Analysis

This subsection describes the philosophy of language and language standardization
which is central to the methods of this analysis. In addition, the method of analysis
of the JOVIAL Application Questionnaire and Interview Responses is described.
1.3.1

Philosophy of Languages and Language Standardization

Very briefly, a
structure of the
both
•
a
•
a

language is a notational system with a community of users. The
language "sentences" and the meanings associated with them reflect
set of problems shared by members of the community, and
set of tools which make the problems tractable.

To standardize a language means to determine the problems faced by all, or a
substantial subset, of the members of the community and to obtain a consensus as to
the tools to be employed in solving the common problems. Clearly, a language
standard should not support tools designed for coping with problems peculiar to a
small subcommunity nor should the standard support a variety of different sets of

tools designed to handle the same set of common problems. The importance of
standardizing a language lies in the fact that more efficient communication of
problems and problem solution will, in general, ensue. Standardization creates a
common frame of reference for the members of the community of users.
The language which is the object of this study is, of course, the JOVIAL J3 dialect
of JOVIAL specified in AFM 100-24. The community of users consists of all those
applications personnel who are employing JOVIAL in computerized command and
control systems. The problem solving tools are the JOVIAL language features
themselves and, equally important, sets of features which in this document are referred
to as function modules. It is felt that evaluation of individual features in an isolated
fashion is insufficient because many related features, or tools, are generally brought
to bear in concert to solve command and control problems. Thus, the significance of
fixed point items, say, can be meaningfully understood only in the context of the other
numeric items (integer and floating point), since the numeric items are functionally
connected.
Similarly, the significance of numeric items can be better understood when examined
in the context of arithmetic operations. "Numeric Items and Arithmetic Operations"
constitute a subsystem of individual JOVIAL features which address the general problem
of representing numeric entities and doing arithmetic with them. This study then relies
heavily on the concept of problem solving subsystems, or function modules, to clarify
command and control programming processes and to aid in the evaluation of individual
features.
The analysis techniques employed in the evaluation of the JOVIAL language resulted
in the partitioning of the JOVIAL features into three subsets:
•

•

•

A Nucleus subset which includes features used to deal with the
problems faced by a substantial majority of the members of the
community,
An Optional subset which includes the features used to deal with
the problems faced by a significant number of members of the community,
and a
Deleted subset consisting of those features which are used infrequently
or not at all by all but a very few members of the community.

It is our intention that all implementations of Standard JOVIAL J3 contain the
features of the Nucleus subset; that implementors select all or none of the features
in the Optional subset — depending on their requirements; that no implementation
of Standard JOVIAL J3 contain any of the Deleted subset features.

The technique used to determine if a feature is to be in the Nucleus, Optional, or
Deleted subsets is called the "resolution". Concepts may be thought of as placed in
Nucleus or Optional concept subsets. Features — explicit language facilities —
are then placed accordingly in the Nucleus or Optional feature subset. The word
"resolution" will be used to describe the process of disposition of concepts as well
as features. With respect to both JAQ and interview response analysis, retention
as nucleus will be recommended if two thirds or more of the (effective) respondents
show a high degree of appreciation for the feature/concept; retention as optional will
be recommended if fewer than two thirds but not fewer than one third show a high
degree of appreciation. "High degree of appreciation" is defined separately for
JAQ and Interview Analysis.
1.3.2

Method of Analysis of JAQ Responses

The Standard JOVIAL J3 features about which information was collected in the
JAQ's has been divided into two classes:
•

Class 1

the features in this class have been "Accepted as
nucleus" features a priori; they are deemed so
important that retention without question is recommended
and they are automatically placed in the Nucleus feature
subset.

•

Class 2

the features in this class are all those features not
in Class 1 . Their placement in the Nucleus, Optional,
or Deleted subsets must be determined on the basis of
the JAQ responses.

In almost every case, the function performed by a Class 2 feature can be performed
by one or more Class 1 features. The resolution of each Class 2 feature is performed
using a cost-effectiveness technique based upon a "usage rate", or resolution equation,
and comparison of the usage rate with a "usage rate threshold". It should be noted
that a distinct usage rate and usage rate threshold have been defined for all of the
Class 2 features considered in the study. The usage rate is either the number of
times the feature was reported used in the JAQ or it is a function of this number.
In most cases the function is a simple ratio with the number of uses appearing as the
numerator. Ratios of this kind serve to measure the fraction of times a feature was
used, where it could have been used to satisfy a certain application requirement. For
example, in those cases where some "recurrent" data structure is required to fulfill
an application requirement, the utility of using tables, given that both tables and arrays
will satisfy this requirement, may be measured by the usage rate,
N(TABLES)
N(TABLES) + N(ARRAYS)

Q78
Q78 + Q74

where
N(TABLES) represents the number of occurences of a TABLE
declaration in an application as contained in JAQ question Q78, and
N(ARRAYS) represents the number of occurences of an ARRAY
declaration in an application as contained in JAQ question Q74.
If the usage rate for tables, when evaluated with JAQ response data for a specific
application, is greater than one half, say, we infer that the application programmers
find their "recurrent" data structure problems more readily tractable in terms of tables
than arrays in more than one half of the instances in which a recurrent data structure
is required. Two facts regarding usage rate evaluation must be noted.
(1)
(2)

In cases where both the numerator and denominator are 0,
the usage is taken as 0 by convention
Because the JAQ permits usage responses which are estimates
rather than exact counts, such ratios as the one in the example
above may yield values greater than one on evaluation. In such
cases the evaluated usage rate may be thought of as a "preference
indicator".

The usage rate threshold is a number against which usage rates, evaluated for a
given application, are compared. With respect to a given feature, the usage
rate threshold is constant for each application. If the usage rate for a given
application is greater than or equal to the threshold specified for the feature,
we infer that the application programmers obtain a reasonable degree of utility
(i.e., a high degree of appreciation) from the feature; otherwise, we infer that the
utility gained does not offset the "cost" of the feature. It must be noted that it is
impossible to arrive at precisely accurate thresholds since no accurate means exist
to measure costs and utilities. Indeed, DDI has specified thresholds subjectively, based
upon our own experience with command and control applications and knowledge of the
compilation process. Where we have specified a high threshold, we feel that the cost
outweighs the utility; a low threshold indicates that the utility is worth the cost. Usage
rate thresholds, then, have been arrived at subjectively by weighing the cost of each
Class 2 feature against its effectiveness or utility. Examples of characteristics which
drive up the cost of a feature are:
(1)

(2)

The feature is redundant — its function can be performed by other
(Class 1) features. The redundancy requires a more complex compiler
and more learning (with possibly more errors made) by the programmer.
The feature is context sensitive, introducing certain levels of complexity
into the compilation process (e.g., status constant).

A Class 2 feature is, in general, effective in that it provides a programmer convenience.
Thus the exchange statement
AA = = BB $
is more convenient to the programmer than
TEMP = BB $
BB = AA $
AA = TEMP $
though an expense is incurred in the implementation of the exchange feature.
Because of the subjectivity involved in specifying thresholds, we have deliberately
leaned toward low values for thresholds. The low values of thresholds reflects
an underlying philosophy maintained throughout this study, namely that the error incurred
by accidently deleting or making optional a useful feature was far more serious than the
error of retaining a non-useful features.
The usage rates and thresholds for each feature are given with the response summaries
for the feature in Appendix 2. There, usage rate threshold is denoted by Tl .
1 .3.3

Method of Analysis for Interview Responses

A concept or proposed new feature was retained as nucleus if more than two thirds of the
members of the community responding responded positively. Tht concept or proposed
new feature was retained as optional if there were from one third to two thirds positive
responses and it was deleted if less than one third responded positively. The Interview
Response Analysis may be found in Appendix 4.

10

SECTION
CONCLUSION

This section contains recommendations, based on both the JAQ and Interview
Response Analysis, for alteration of the Standard JOVIAL (J3) language dialect.
The recommendations include a list of JOVIAL language extensions along with
a list of deletions of features currently specified in AFM 100-24. Additionally,
all current and extended features are classified as either Nucleus or Optional . Finally,
this section contains a discussion, in general terms, of our observations on command and
control programming language requirements.
2.1

JOVIAL Language Extensions

2.1 .1

List of Extensions

DDI recommends that the following extensions, described fully in the indicated
subsections of Section 3, be incorporated into the Standard JOVIAL J3 language
as Nucleus or Optional features:
(1)

(2)

(3)

(4)

(5)

(6)

Hexadecimal Constants (3.2.2.1)
(Optional — User may implement hexadecimal, or octal, or
both, but either hexadecimal or octal must be implemented.)
Simplified Hollerith Constant Form (3.2.2.2)
(Optional — Removes the requirement to count the number of
hollerith characters.)
User Definable Character Encoding (3.2.2.3)
('CHARCODE Directive)
(Optional — Provides facility for defining a character set and
encoding scheme for each character in it.)
Operations on Literal Data (3.2.2.4)
(Nucleus — Establishes facility for Hollerith and other Literal
Comparisons as well as conversion between Literal item types on
assignment.)
Computer Representation of Numeric Constants and Variables (3.2.2.5)
(Nucleus — loosens the machine dependent restrictions on representation
of numeric data.)
Precedence of Unary Operators (3.2.2.6)
(Nucleus — Changes the precedence of prefix + and - to next
highest after exponentiation.)

11

(7)

(8)

(9)
(10)

(11)

(12)

(13)
(14)

(15)
(16)

(17)

2.1 .2
2.1.2.1

Extended Define Directive (3.2.2.7)
(Optional — Allows "arguments" to be included with a DEFINE
identifier.)
Extended Mode Directive (3.2.2.8)
(Optional — Allows mode directive to select item description on basis
of first letter of name.)
Alternate Entrances to Procedures and Functions (3.2.2.9)
(Nucleus)
Extended Precision Numeric Items and Constants (3.2.2.10)
(Optional, with hardware — Permits declaration of double precision
floating point numbers.)
Device Oriented Input/Output Module (3.2.2.11.1)
(Optional — Provides framework for commanding and responding
to I/O devices.)
Functional File Input/Output Module (3.2.2.11 .2)
(Optional — Provides framework for functional (("logical")) file
processing.)
Data Editing and Conversion (Formatting) (3.2.2.11 .3)
(Nucleus - - provides FORTRAN-like formatting capability.)
Stop Statement (3.2.2.12)
(Nucleus — Alters the meaning of STOP to suspend processing
wherever executed.)
Pause Statement (3.2.2.13)
(Optional — Provides pausing facility.)
Rounded Assignment Statement (3.2.2.14)
(Optional — Provides the facility for declaring rounding in an
assignment statement, not in the item declaration.)
Extension to Program (3.2.2.15)
(Optional — Allows the ability to declare a procedure as a "standalone" subrouti ne.)

Remarks on Extensions
Input/Output

The proposed (optional) Device Oriented I/O module and Functional File module
are intended to supercede the File Structure and Operators currently specified in
AFM 100-24. The two modules proposed, force a separation of hardware considerations
from function or logical file elements with the intent of providing much greater
flexibility and power than that offered by the current file system of the standard. It
must be pointed out, however, that the Functional File Module is very loose and
therefore highly "participational" in nature. The applications programmer must write
his own set of support programs to do all the real file manipulation work; however,

12

it is anticioated that user installations fix on a standard set of suDport orograms which
would be used by all aoplications programmers. The Functional File Module is loose
for the reason that we are unable at this time to fully identify functional file oroperties,
This was due to the fact that the Inout/OutDut information obtained in the study was
SDarse , and the latter fact may be true because I/O at this level tends to be comolex.
We recommend that this area be studied further, in the light of command and control
aoplications.
The formatting module has been made independent of the other I/O modules, since it
is nucleus, while the others are optional .
2.1.2.2

Overriden Extensions

Certain features and conceDts were well received at interview and should, by all
rights be oroDOsed as either nucleus or optional extensions now. These features and
conceots are:
Item Type Bit String
(Data) Structure GROUP
Structure SET
Dynamic Storage Allocation Facilities
Generalized Packing
Label Item
Recursive Suborograms
Our action — to make no recommendation at this time — is based on arguments
discussed under observations (sub-section 2.5, below) and also on the fact that the
addition of these new structures would result in some complex ramifications which
are unresolved at this time involving currently available structures.
2.2

Deletions

The criteria utilized to determine which JOVIAL features should be deleted is given
in Section 1 (1 .3). Based on these criteria and the data summarized in the JOVIAL
Feature Resolution Analysis contained in Appendix 2 as qualified by the Interview
Resoonse Analysis contained in Appendix 4, Data Dynamics recommends that the
following features be deleted from the JOVIAL Soecifications AFM 100-24.
The number in oarenthesis in the list below is the Aoproach for Change (AFC) reference
number which references the Resolution Analysis of each SDecific feature.

1)
2)
3)
4)
5)

Item Type Standard Transmission Code
Standard Transmission Code Formulas
Structure String
CHAR/MANT
Table Entry Referencing Notation - ENT
(ENTRY only may be used)
13

AFC §
(Al .1.1. 2)
(Al .1.1 2)
(Al .2.5)
(A 2 .3)
(A 2 •6)

AFC'

6)
7)
8)
9)
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

26
27
28
29
2.3

Ordinary Packing - Medium
(Only Dense Packing is allowed)
Ordinary Packing - No packing specified
Subordinate OVERLAY Declaration
Round Numeric Assignment Range Attribute
Exponentiation Notation - (* *)
(Only ** may be used)
Absolute Value Notation (//)
(Only ABS may be used)
REM
REMQUO
Item Type Dual
Dual Formulas
String Preset
Round Attribute
Stop Statement Label
Switch Names within Switch Declarations
Close Names within Switch declarations
Structure File
Structure File - Hollerith or Binary
Structure File - Record Length Variability
Open Statement with Operand
Open Statement without Operand
Shut Statement without Operand
Shut Statement with Operand
Input Statement
Output Statement

7AX47
(A3.4)
(A3.6)
(A4.3)
(A4.6)
(A4.8)
(A4.9)
(A4.9)
(A5)
(A5)
(A8.1)
(A8.2)
(A9.3)
(A9.4.3)
(A9.4.3)
(A10)
(A10)
(A10)
(A10)
(A10)
(A10)
(A10)
(A10)
(A10)

List of Nucleus Features

Based on the criteria and data as indicated in sub-Section 2.2, the features listed
below are recommended for inclusion in the Nucleus. The numbers in parenthesis
reference the AFC number in the JOVIAL feature resolution analysis in Appendix 2
and references to sub-Sections of Section 3.
1)
2)
3)
4)
5)
6)
7)
8)

Item Type Hollerith (Al. 1.1.1)
Hollerith Formula (Al. 1.1.1)
Character Data Size Attribute (Al .1 .1 .3)
Operations on Literal Data (3.2.2.4)
Explicit Size Attribute (Al .1 .3)
Structure Table (Al .2.2)
Table Variability Attribute - Rigid (Al .2.3)
Table Variability Attribute - Variable (Al .2, 3)

14

9)
10)
11)
12)
13)
14)
15)
16)

17)
18)
19)
20)
21)
22)
23)
24)
25)
26)
27)
28)
29)
30)
31)
32)
33)
34)
35)
36)
37)
38)
39)
40)
41)
42)
43)
44)
45)
46)
47)

NENT (Al.2.3)
BYTE (A2.2)
Subscripting - Expressed as Complex Numeric Formula (A2.4)
Subscripting - Nested (A2.4)
Table Entry Referencing (A2.5)
(ENTRY only may be used)
Computer Representation of Data (A3)
Computer Representation of Numeric Items and Constants (3.2.2.5)
Octal Constants (A3.1, 3.2.2.1)
Hexadecimal Constant (Must implement one or the other,
may implement both)
Basic Table Structure Attribute - Parallel (A3.3)
Basic Table Structure Attribute - Serial (A3.3)
Defined (Table) Packing (A3.5)
Independant Overlay Declaration (A3.6)
'LOC (A3.8)
Parenthesized Numeric Formulas (A4)
Mixed Item Types in Numeric Formulas (A4)
Item Type Integer (A4)
Item Type Fixed Point (A4)
Item Type Fixed Point - Scale in Declaration Blank or Zero (A4)
Item Type Floating Point (A4)
Sign Attribute (A4.4)
Prefix + and - (A4.5)
Precedence of Unary Operators (3.2.2.6)
(Alteration of precedence of +, -)
Exponentiation Operator (A4.5)
(Notation ** only)
Relational Formulas (excluding chained) (A6.1)
Boolean Formulas - with AND, OR, NOT (A7.1)
Item Type Boolean (A7.2)
Numeric Item Type Conversion in the Assignment Statement (A8)
Boolean Assignment Statement (A8)
Item Preset (A8.1)
Table Preset (A8.1)
Compc jnd Statement
GOTO Statement (A9.2)
STOP Statement (A9.3, 3.2.2.12)
IF Statement (A9.4.1)
FOR-loop-One Factor (A9.5)
FOR-loop-Two Factor (A9.5)
FOR-loop-Three Factor (A9.5)
FOR-loop-Decrementing (A9.5)
Test Statement (A9.5.4)

15

48)
49)
50)
51)
52)
53)
54)
55)
56)
57)
58)
2.4

Program (A9.6, A9.7)
Procedure (Excluding Function) (A9.6.1)
Function (A9.6.1)
Alternate Entrances to Procedures and Functions (3.2.2.9)
CLOSE (A9.6.2)
Return Statement (A9.6.3)
Direct Code (A9.8)
Data Editing and Conversion (3.2.2.11 .3)
Multiple Statement Labels (Al 1 .2)
ALL (A 12.5)
COMPOOL (A12.6)

List of Optional Features

Based on the criteria and data as indicated in sub-section 2.2, the following features
are recommended to be included as optional features:
1)
2)
3)
4)
5)

6)
7)
8)
9)
10
11
12
13
14
15
16
17
18

19
20
21
22
23
24
25

26
27

Hexidecimal Constants (3.2.2.1)
Simplified Hollerith Constant Form (3.2.2.2)
User Definable Character Encoding Scheme ('CHARCODE) (3.2.2.3)
Item Type Status (Al .1 .2)
\
Status Formulas (Al .1 .2)
> (Must be implemented together)
Explicit Status Size Attribute (Al .1 .3) )
Structure Array (Al.2.1)
NWDSEN(A1.2.4)
BIT (A2.1)
Ordinary Packing (Dense only is allowed) (A3.4)
Absolute Value Operator (ABS only is allowed) (A4.7)
Extended Precision Numeric Items and Constants (3.2.2.10)
Chained Relational Formulas (A6.2)
Array Preset (A8.1)
Exchange Statement (A8.3)
IFEITH/ORIF Statements (A9.4.2)
Index Switch (A9.4.3)
Item Switch (A9.4.4)
CLOSE in Parameter List (of Procedure) (A9.6.1)
Statement Label in Parameter List (of Procedure) (A9.6.1)
'PROGRAM Declaration (A9.7)
Item Declaration (Al 1.1)
Define Directive (A12.1)
Extended Define Directive (3.2.2.7)
MODE Directive (A12.2)
Extended MODE Directive (A12.2, 3.2.2.8)
Like Table Declaration (A12.4)

16

28)
29)
30)
31)

Device oriented I nput/Output Module (3.2.2.11.1)
Functional File Input/Output Module (3.2.2.11.2)
Pause Statement (3.2.2.13)
Extension to Program ("Stand-alone" procedure) (3.2.2.15)

2.5

Observations

2.5.1

Array

The only feature accepted as nucleus originally in the Approach for Change which did not
find reasonable user support was the Array. We have therefore made Array an optional
feature. Users found Table far more useful.
2.5.2

Data Structures

Interview responses regarding proposed new data structures (GROUP, SET, etc.) together
with the heavy use of Tables inclined us toward the belief that command and control
programmers require the ability to manipulate highly complex data structures. We feel
that it is unwise to simply pile on new structures at this point. Rather, we believe, the
command and control language should contain structure building primitive operators
which would allow for the definition and creation, either at compile time or execution
time, of a wide variety of complex structures, these structures taking a form specified
by the applications programmer. We are not currently able to identify these primitives
but feel that the task of such identification should be pursued.
2.5.3

Resource Allocation

Because of the enthusiasm of interviewees for packing capabilities, and the proposed
generalized packing, it has become clear that the command and control programmer
requires the ability to manage the memory space resouces available to him. We note
the remark of ADPAC, requesting a special "fast-executing" subset of JOVIAL for
real time application, and conclude that management of execution time resources is
probably important as well. We feel that a command and control language should
probably have even more resource management facilities than JOVIAL and that these
should be connected with ease to the data structure building primitives described
in sub-section 2.5.2.

17

SECTION
EXTENSION SPECIFICATIONS

3.1

General

This section contains a complete description of the deletions, modifications, and
additions to the JOVIAL J3 language as specified in AFM 100-24 resulting from the
analysis phase of this project. In addition, the section contains a complete list of
all recommended nucleus and optional features along with a cross reference of each
feature to the appropriate section in the "JOVIAL Application Questionnaire" and
the "Approach Fcr Change" documents.
During this project many JOVIAL language requirements evolved which DDI was
unable within the scope of the project to investigate in detail. An example of
such a requirement includes language features which would allow constructing new
types of data structures and allocating these structures and computer programs in
terms of a specified optimizalion of time and space. Other examples as included
in Section 4 below, such as including real time concepts and list processing
capabilities, were also not within the scope of the project. However, considering
these limitations, DDI is confident that JOVIAL Extention Specifications, described
in this section, is a significant improvement over the current JOVIAL J3 (AFM 100-24)
Specifications.
3.2

Recommendations

The following are DDI's recommendations for modifications to JOVIAL Specifications
as contained in AFM 100-24.
3.2.1

Deletions

The following features are recommended for deletion from the JOVIAL Language. The
criteria used for deletion of these features is described in Section 1 and the specific
resolution analysis of each feature is contained in Appendix 2. The references for each
feature is to the sub-section relating to the feature in the JOVIAL Application Questionnaire
(JAQ) and to the Approach For Change (AFC) documents. As the JOVIAL Feature Resolution
Analysis in Appendix 2 is organized by AFC numbers, the referenced AFC can be utilized
to find the specific resolution or justification for deletion of each of the following features:
Features
1)
2)

Item Type Standard Transmission Code
Standard Transmission Code Formulas
19

JAQ

AFC

J3.5.1.1 1.2
J3.5.2.5

Al.1.1.2
Al .1 .1 .2

Features
3)
4)
5)

6)
7)
8)
9)

11
12
13
14
15
16
17)
18
19
20
21
22
23
24
25

26
27
28
29

JAC*

Structure String
CHAR/MA NT
Table Entry Referencing Notation-ENT
(ENTRY only may be used)
Ordinary Packing - Medium
(Only Dense Packing is allowed)
Ordinary Packing - No packing specified
Subordinate OVERLAY Declaration
Range Attribute
Exponentiation Notation - (* *)
(Only * * may be used)
Absolute Value Notation (//)
(Only ABS may be used)
REM
REMQUO
Item Type Dual
Dual Formulas
String Preset
Round Numeric Assignment-Round Attribute
Stop Statement Label
Switch Names within Switch Declarations
Close Names within Switch Declarations
Structure File
Structure File - Hollerith or Binary
Structure File - Record Length Variability
Open Statement with Operand
Open Statement without Operand
Shut Statement without Operand
Shut Statement with Operand
Input Statement
Output Statement

AFC'

J3.5.1.4
Al.2.5
J3.5.2.2.2.3-4 A2.3
J3.5.2.2.1
A2.6
J3.5.1.3.6.1

A3.4

J3.5.1.3.6.
J3.5.1.7.2
J3.5.1 .1.8
J3.5.2.3.3

A3.4
A3.6
A4.3
A4.6

J3.5.2.3.4

A4.8

J3.5.4.9
J3.5.4.7
J3.5.1.1.7
J3.5.2.4
J3.5.1.6.4
J3.5.1.1.10
J3.5.5.7
J3.5.5.2
J3.5.5.2
J3.5.1 .5
J3.5.1.5
J3.5.1.5
J3.5.3.3
J3.5.3.3
J3.5.3.3

A4.9
A4.9

jo.o.o.o.

J3.5.3.3
J3.5.3.3

A5
A5
A8.1
A8.2
A9.3
A9.4.3
A9.4.3

A10
A10
A10
A10
A10
A10
A10
A10
A10

3.2.2 Additions and Modifications
3.2.2.1

Hexadecimal Constants

For some computers, the specification of address or "bit pattern" information is more
conveniently expressed by use of the hexadecimal (base 16) number system than by the
octal system. Depending on their needs, implementors may incorporate hexadecimal
constants, octal constants, or both.

20

A hexadecimal:constant is composed of hexadecimal:numerals. A hexadecimal:numeral
is one of the following sixteen JOVIAL numerals or letters:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
The correspondence between hexadecimal numerals and bit patterns is:
Hexadecimal Numeral

Bit Pattern

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

A hexadecimal :constant is formed by the letter X, followed by a left parentheses,
followed by a string of hexadecimahnumerals, followed by a right parentheses:
X(string:of:hexadeci ma I: numerals)
Examples of hexadecimahconstants are:
X(777)
X(F)
X(01A9)
X(FAD)
A hexadecimal :constant is represented as a string of bits, equal in length to four times
the number of hexadecimahnumerals making up the string:of:hexadecimal:numerals in th e
constant form; four bit groups making up the bit string correspond to and have the same
ordering as the hexadecimal:numerals making up the hexadecimal:constant as shown in the
table above.

21

Hexadecimal:constants may be used in the same places as octal constants and have
corresponding meanings. More specifically: Hexadecimal:constants rrcy be used in
machine address specifications (as in OVERLAY), preset specifications in numeric:
or litcrahitem, array:/ or table :ite redeclarations, and in literal assignment statements.
3.2.2.2

Simplified:Hollerith:Constant Form

A hoi lerith constant is either a regular:hollerith:constant or a simplif?ed:hollerith:
constant. A regular:hollerith:constant has the form number H(string:of:hollerith:
characters) (see CED 2418, AFM 100-24 under hollerithconstant). A simplified:
hollerith:constant has the form
H(string:of:hol lerith characters)
with the restrictions on the string:of:hollerith:characters that, in scanning from left to
right through string, the number of r?ght:parentheses encountered at any given position
must never exceed the number of I eft: parentheses encountered, and the total number of
left-parentheses included in the string must equal the total number of right:parentheses.
Examples of simpl if ?ed:hol lerith constants are
H(NO MORE COUNTING WITH MOST HOLLERITH CONSTANTS)
and
H(NO MORE COUNTING WITH (MOST) HOLLERITH CONSTANTS)
3.2.2.3

User Definable Character Encoding ('CHARCODE)

This facility allows the programmer to define a variety of character sets and encoding
schemes, and is a compiler directive in the sense of the JOVIAL MODE and DEFINE
features. A 'CHARCODE directive shows a correspondence between each member of
a user selected set of characters and a user determined "bit pattern" memory representation
for that character.
The set of all characters from which the programmer may choose in building a
character set/encoding scheme contains at least the JOVIAL signs, and possibly
some implementation dependent characters as well; additionally this "set of all
characters" has an implementation dependent "bit pattern" memory representation or
encoding scheme. In JOVIAL terminology, this character set/encoding scheme is
referred to by the adjective hoi lerith.

22

It is anticipated that the two major uses for 'CHARCODE will be
•

•

to provide a means for interfacing with many kinds of I/O devices
(each of which may have different bit pattern representations for a
character set), and
to permit the specification of user defined collating sequences.

A charcode:direct?ve is:
'CHARCODE 9* charcode :letter 0 fill character 6
BEGIN 0 char:code:correspondence:list 6 END 0 $
Chorcode:letter means any of the letters excluding I, A, F, H, B, S, O, X, or V;
char:code:coiTespondenee:list means either: Char:code:correspondenee or char:code:
correspondenee:Iist 9; char:code correspondence means:
Hollerith:character 0 = 0 hex:or:octal:constant
hex:or:octal:constant means an octal constant, if the implementation supports octal:
constants, hexadecimal:constant if the implementation supports hexa:decimalconstants,
or either if the implementation supports both octal and hexadecimal. Fill character
and holler?th:character are single hollerith characters expressed as hollerith:constants one
character in length. The meaning of fill:character will be explained in connection with
l?teralxiss?gnment:statements and literal comparisons in sub-section 3.2.2.4. It is
required that fill character appear in the char :code correspondence: I ist.
The charcode:direct?ve serves to define a new item type with a name "abbreviation"
specified by charcode:letter, in the same sense that "H" is the (built-in) literal.-item
type hollerith-! The adjective literal will henceforth be applied to items, constants,
arrays, etc., for which either the adjective hollerith applies, or where the data involved
are defined with respect to a charcode:directive.
While a charcodedirective is active, it is possible both to declare items and to express
constants for the literal:item type defined by that charcode:directive. ltem:declarations
and constants for literahitem types defined by charcode:directives are formed precisely
as hollerith:item:declarations and constants, except that "H" in such declarations and
constants is replaced by charcode:letter; also the string of characters appearing in such
constants must be made up only of those characters which appear in the directive.

"0 means that a space is required or permitted.

23

Regarding the computer memory representation of charcode defined character sets,
these character set are represented in byte strings in the same manner as Hollerith
characters, each byte being t*i bits in length (see AFM 100-24, Figure 24-1 and
CED 2419.6). Further, the encoding of characters within bytes is, of course, as
specified in the charcode:directive.
Regarding the char;code;correspondence;li5t;
•
•
•

A given hollerith character may appear once and only once in any
charcode:directive.
A given hexadecimal or octal encoding may appear once and only
once in any charcode :directive«
If a hex:or:octal:constant has a size (number of bits in length)
greater than the implementation specific u> bits per byte, only the
rightmost bits of the byte are used to define the encoding; if the size
is less than t*> , as many bits with value 0 are added to the left to
make a bit pattern u> in length.

Regarding the scope of a charcode:directive: The effect begins at that point in the
source code where the directive appears and terminates at the TERM statement or at
the next charcode:directive with the same charcoae:letter, whichever comes first.
An example of a charcodeidirective will be given in which Standard Transmissam Code
is defined in terms of hollerith:
•CHARCODE
BEGIN

T
1H(
)
1H( ) = 0(0), 1H(A)=0(6),
1H(B)= Q{7), lH(C) = O(10),
1H(D) = 0(11), 1H(E)=0(12),
1H(F) = 0(13), 1H(G)=0(14),
1H(H) = 0(15), 1H(.I) = 0(16),
1H(J) = 0(17), lH(K) = O(20),
1H(L) = 0(21), 1H(M) = 0(22),
1H(N) = 0(23), 1H(0) = 0(24),
1H(P) = 0(25), 1H(Q) = 0(26),
1H(R) = 0(27), lH(S) = O(30),
1H(T) = 0(31), 1H(U) = 0(32),
1H(V)=0(33), 1H(W) = 0(34),
1H(X) =0(35), 1H(Y) = 0(36),
1H(Z) = 0(37), 1 H()) = 0(40),
1H(-)=0(41),
lH(+) = 0(42), 1H(=) = 0(44),
1H($) = 0(47), lH(*) = O(50),
lH(0 = O(51), 1H(,)=0(56),

24

1H(0)
1H(2)
1H(4)
1H(6)
lH(8)
1H(')
1H(.)

= 0(60), 1H (1) = 0(61),
= 0(62), 1H(3) = 0(63),
= 0(64), 1H(5) = 0(65),
= 0(66), 1H(7) = 0(67),
= O(70), 1H(9) = 0(71),
= 0(72), lH(/) = 0(74),
= 0(75) END $

The above example shows how a chare ode: directive may be used to define a
"standardized" character set and encoding scheme for interchange between both
human and mechanical processors — another example might have shown a definition
for the ASCII code. The following brief example shows a charcode:directive for
defining an "inverted" collating sequence for the digits 0 through 9:
'CHARCODE
BEGIN

Q
1 H(0)
1H(0) = O(ll), 1H(1) = 0(10),
1H(2) = 0(7), 1H(3) = 0(6),
1H(4)=0(5), 1H(5) = 0(4),
1H(6) = 0(3), 1H(7) = 0(2),
1H(8) = 0(1), 1H(9) = 0(0) END $

3.2.2.4

Operations on Literal Data

3.2.2.4.1

Literal :Assign me nt Statements

Literal:assignment:statements have the form:
literal:variable

6 = 8 literal:formula

0

$

where literal:formula is either a literal :variable, a literahconstant, a literal function,
an octal:constant or a hexadeci mal :constant. Note that a literal:variable or a literaiT
constant means either a hollerith:variable or hollerith:constant or a variable or constant
defined with respect to a charcode:directive .
If, in a literal :assignment:statement, both l?teral:variable and the evaluated literal:
formula have the same length, the following facts apply:
•

•

No conversion of one literal:item type to another takes place if
literahvariable and literal :formula are either both hollerith or both
defined with respect to the same ch~arcode:directive, or if literal:formula
is a hexadecimal:constant or an octahconstant.
Otherwise, a conversion takes place, byte by byte, according to the
one or more charcode directives which may be involved.

25

A literahformula byte is converted to a literal:variable byte in the following way:
First, it is determined if the bit string content of the literal :formula byte is a member
of the bit string set of the encoding scheme associated with the literahformula. If not,
the corresponding literal:var?able byte is filled with the bit string representation of
the filhcharacter associated with the literal: variable. If the bit string content of the
literahformula byte is a member of the encoding scheme associated with the literal:
formula, it is determined if the character from the character set associated with the
literahformula which correspondes to this bit string is also a member of the character
set associated with the literal:variable. If so, the literahvariable byte is filled
with that bit string from the encoding scheme associated with the literahvariable which
corresponds to this character. If not, the literahvariable byte is filled with the
fill character bit string associated with the literahvariable. Note that, by definition,
the filhcharacter associated with the hollerith character set/encoding scheme is a space,
If, in l?terahassignment:statements, a literahvariable is shorter than the evaluated
literahformula, excess bytes are truncated starting at the left for the purposes of
assignment. (Conversions are made as required.) If, in literahassignment:statements,
literahvariable is longer than the evaluated literahformula, excess bytes of literal:
variable are filled with the filhcharacter associated with the literahvariable.
(Conversions are then made, as required.)
Note that in procedure:calI.-statements, assignments of literahformulas used as
actuahinput:parameters to formahinpuhparameters takes place according to the
above rules, as do assignments of literahformulas to actuahoutpuhparameters.
3.2.2.4.2

Literal Comparisons

Comparisons of literal data are effected by means of literahrelationahformjlas of the
form:
literahformula

0

relational :operator

6

literahformula

(Note that "chained" relational formulas may also be used — the description above
is used for simplicity and applies to the chained case by extension.)
When a literahrelationahformula is evaluated, first the literahformulas are evaluated.
Then, if one of the literahformulas is of a literal type different from the other, both are
converted to hollerith character strings, and the literahrelationahformula is evaluated by
comparing the hollerith strings. Otherwise, no conversion is made. (No conversion takes
place if either literahformula is an octal: or a hexadecimal:constant.) The literahformulas
so evaluated are compared, in effect, byte by byte from left to right. This is not meant
to imply that implementations are required to perform actual byte by byte comparisons,
but a given implementation's means of comparison must yield the same result'.

26

One byte is

equal to
j less than
greater than

bit pattern of the first byte is

another byte according as the
equal to
less than
greater than

the bit pattern of

the second byte, where both bit patterns are treated as unsigned:integers, ...o
bits in length.
Two literal:formulas of the same length are compared from left to right, a byte
at a time. The two formulas are equal if all bytes are equal . Otherwise, the
literahformula on the left of the relational:operator is i less than
\)
the
an
I greate r than f
literal :formula on the right of the relational roperator, if the byte by byte comparison
finds at some byte position, that a byte in the left literahformula is ( less than
) the
(.greater than >
corresponding byte in the right literahformula.
If the two literahformulas are of differing lengths, the following rules apply:
•

•

If the shorter literahformula is an octahconstant or hexadecimahconstant,
it is made to be the same size as the larger by adding the appropriate
number of zero bits at the left of the shorter literahformula.
If the shorter literahformula is not an octahconstant or a hexadecimal:
constant it is made to be the same size as the larger by adding one or more
fill characters of the associated character set/encoding scheme at the
left of the shorter literahformula.

Once the two literahformulas are made the same size, they are compared according
to the scheme described above for literahformulas of the same length. When evaluated,
a literahrelationahformula yields the value "true" if and only if the relationahoperator is
EQ
NQ
LS
. s~
LQ
GR
GQ

, .
....
and the comparison
yields
r
'

equal to
less than, greater than
less than
.
.
.
equal to, less than
greater than
equal to, greater than

Otherwise, the literahrelationahformula yields the value "false".
3.2.2.4.3

Byte

When BYTE operates on a named:literahvariable a literahvariable is produced with the
same type as the named:literahvariable operand. If the named:literahvariable is of type

Hollerith, so is the BYTE literal:var!able . If the namedrliteral :variable is of a
type declared in a charcodedirective, the BYTE literal:variable is of the same type.
3.2.2.5

Computer Representation of Numeric Constants and Variables

The functional characteristics of all manipulations involving numeric constants and
variables are described in terms of a signed magnitude representation. The implementor's
representation need not be signed magnitude, but the implementor's representation
should, in essence, cause the program and the computer to impinge upon the environment
in the same way as would occur if the actual representation were signed magnitude.
However, it is recognized that it is infeasible in practice to ensure a signed magnitude
equivalent effect in all areas. For example, an implementor using a one's complement
fixed point representation may decide that the cost of guaranteeing that
BIT($1,5$) (ALPHA)
will produce the magnitude of the integer ALPHA as declared by
ITEM ALPHA I

6 S

$

is not warranted by the compatability which would be gained Implementors, then, may
depart from a total signed magnitude simulation, but in doing so must publish warnings
where these departures are concerned.
3.2.2.6

Precedence of the Unary Operators

The precedences of the arithmetic:operators in the evaluation of a numericrformula,
from highest to lowest will be changed as follows:
Current

New

Unary**

**
Unary -

V

V

+-

+ -

Note that this means that -x**2 = -4 when x = 2 not + 4.
The precedences
of the arithmetic:operators complies with the conventions of algebra.
3.2.2.7

Extended:define:directive

This facility extends the capability of the define:directive in that it allows the
programmer to include a parameter list with the defined name.

28

3.2.2.7.1

Form of the Extended:define:directive

An extended:define:directive means either:
DEFINE

0

name

0

"symbols"

0

$

DEFINE

0

name

0 (0 formal:define:parameter:list 0) 0 "symbol" 0 $

or

A formal :def?ne:parameter:list is either a forma I: define: para meter or a formal: define:
parameter:!ist 0 , 0 formal:define:parameter. A formal :define:parameter is a name.
Symbols denotes a string of one or more of the JOVIAL symbols and space or spaces. Note
that two consecutive primes are not allowed in the symbols string; also the last symbol
before the second set of primes must not be a prime.
Note that no comment may appear in the extended:def?nedirective between the right:
parenthesis and the first " . The names making up the formal:define:parameter:list must be
unique within the formal: define: para meter: I ist but may appear anywhere else in the program
in any context whatever.
A name appearing in a formal:define:parameter:list serves no other purpose than to
define an argument for the extended:define:direct?ve. Formal:define:parameter:!ist
names may each appear any number of times (or not at all) inside the quoted string of
symbols appearing with the formal:def?ne:parameter:!ist in the extended:define:directive.
3.2.2.7.2

Scope of the Definition

The scope of the definition of an extended:define:directive begins at that point in the
source text where it occurs and ends at the end of the program (TERM) or at some subsequent
point where another extended:define:directive with the same defined:name occurs, or where
a define:directive with the same defined:name occurs. Note that the scope of a define:
directive terminates at a subsequent point in the program where an extended:def?ne:d?rect?ve
for the same name occurs.
3.2.2.7.3

Extended:define invocation

An extended:define:invocation has the form
defined:name 0 (0 actual:defined:parameter:list 0)
or
defined:name 0 (0)
29

and may appear anywhere within the scope of the extended:define:directive with
which defined:name is associated except within another extended:define:directive.
Note that the extended:define:invocation is not recognized as such when it appears
within a status:constant, a cerement, or literaltconstant.
An actual :define;parameter:list is actual :define:parameter or, actual :define:parameter:list
0 , 9 actual :define:parameter.
An actual :define:parameter is "symbols".
Symbols denotes a string of one or more of the JOVIAL symbols and space or spaces.
Note that two consecutive primes are not allowed in the symbols string; also the last
sign before the second set of primes must not be a prime.
If the actual:formal:parameter:l?st contains a larger number of actual;define:parameters
than there are formal;define:parameters in the formal:define:parameter:list, the right
most excess actual:define:parameters are ignored. If the number of formal:define:
parameters exceeds the number of actual :define:parameters, the right most missing
actual :define: para meters are assumed to be "space". In either case a warning to the
programmer will be generated.
The effect produced by an extended:define:invocation is as follows:
1)
2)
3)

A copy of the quoted symbol string associated with the extended:
define:directive is made,
Each formal:define:parameter appearing in the copy is replaced with
the symbols of its correspondent actual:define:parameter, and
The extendedrdefine:invocation is replaced by the expanded copy.

At this point the compiler will process the expanded copy at its leftmost space, spaces,
or symbol in exactly the same way as if it were part of the source text being input from
the source text input unit. A name which followed DEFINE in a (currently active)
define:directive which now appears in the expanded copy is treated at the time it is
encountered in exactly the same manner as it would be treated had it appeared in the
source text input stream. The same is true for extended:define:invocations, define:
directives, and extended:definedirectives which may have appeared in the expanded
copy.
Note that names appearing after DEFINE in a define:directive, extended:define:
invocations, define:directives, and extended:define:directives may appear in the
expanded copy produced by an extended:definedirective" A~s~with the use of a define:
directive, the use of an extended:definedirective must not result in circular definitions.

30

Note that the symbols making up an actual:define:parameter, as well as the symbols
in the symbols string of an extended:definedirective, may contain names which appeared
after DEFINE in a (currently active) definerdirective, or definerdirectives, or extended:
define:directives, or extended:define:invocations. These names, directives, or invocations
are treated simply as symbols in this context and do not produce replacements or expanded
copies until after the expanded copies replace the extended:define:invocations which
produced them.
Example:
The extended:define:directive
DEFINL AA (XX, YY, ZZ) " BB (S SIN(ZZ), YY,XX$) + XX " S
causes
CC = BETA +AA ("PI", "P2", "P3+P4") $
to be "read" by the compiler as
CC = BETA +
BB ($SIN (P3+P4), P2, PI $)+ PI $
3.2.2.8

Extended Mode Directive

This facility extends the mode:directive of AFM 100-24 in that it allows the
programmer to select an item:description for an undeclared name on the basis of the
first letter of that name. The form of an extended:mode:directive is MODE 9
extended:mode:list 6 $.
An extended:mode:list is
extended:mode:list:element 9,0

extended:mode:list:element

or
extended:mode:list 9, 9 extended:mode:list:element
An extended:mode:list:element is either a letter:mode:specification or a simple:mode:
specification; the latter must appear as an extended:mode:list:element in the extended:
mode:list but it must appear only once.

31

A simple:mode:specification is either itemtdescription or item:description 8 P 8
optional ly:signed:constant.
A letter:mode:specificat?on is letter 6 = 8 simple:mode:specification.
If more than one letter:mode:specif?cation appears as an extended:mode:list:element,
the letters in these letter:mode:specifications must be distinct.
The scope of effect of an extended:mode:directive beings at the place in the source
text where it appears and ends as the end of the program (TERM) or at the next
mode:d?rect?ve or extended:mode:directive. Any name appearing within the scope of
the extended:mode:directive, which has not been formally declared elsewhere is acted
on by the extended:mode:directive in the following ways: If the first letter of the name
matches a letter appearing in one of the letter:mode:specifications, the name is
automatically declared as an item with the associated simple:mode":specification, otherwise,
"free standing" simple:mode:specification.
Note that an extended:modedirective serves to terminate the scope of effect of any
mode:directive which occurred previously in the source text.
Example:
The following extended:modedirective will mode declare all undeclared names in its
scope beginning with I, J, K, L, M, or N as integerritems and all other undeclared
items in its scope as floating.
MODE

I = I 48 S, J = I 48 S, K = I 48 S
L =1 48S,M = I 48 S, N = I 48 S,
F$

The following two examples are equivalent to the extended:mode:directive above:
MODE

F, I =1 48 S, J = l 48 S
K =1 48 S, L = 1 48 S,
M = l 48 S, N = l 48 S $

MODE

I = I 48 S, F, J = I 48 S,
K = I 48 S, L = I 48 S,
M = I 48 S, N = I 48 S $

3.2.2.9

Alternate Entrances to Procedures and Functions

Frequently it is desirable to enter a procedure (or function) at some point other than the
beginning. This facility provides such a capability.

32

3.2.2.9.1

Alternate: Procedure: Entrance: Declaration

An alternate:procedure:entrance:declaration has the form
'ENTRANCE 6 alternate:entrance:name 0 $
or
'ENTRANCE 0 alternate:entrance:name 0
(0 optional:formal:input:parameter:list 0) 0 $
or
1

ENTRANCE 0 alternate:entrance:name 0
(0 optional:formal:?nput:parameter:l?st 0 = 0 formal :output:parameter:
list 0) 0 $

An alternate .-entrance: name is a name.
An alternate:procedure:entrance:declaration is meaningful only if it appears in a
procedure:declaration or a function^eclaration, either in the procedure sheading or
procedure:body of those declarations. (The containing procedureror function:declaration
is called the mastendeclaration.)
As many a I ternate: procedure :entra nee :declarat?ons as desired may be made within
a mastendeclaratiorT!
For each name declared as an alternate entrance by an alternate:procedure:entrance:
declaration, there must be a matching statement:name within the procedure: or function:
body part of the mastendeclaration. The position of this statement:name in the body
defines the point of entry into the body when the procedure or function is invoked by its
alternate:entrance:name.
Any a I ternate: procedure :entra nee declaration must occur prior to its associated
state me nhlabel.
Note that there must not be a statement:name in the body of the master:declarat?on
which is the same as the name defined as a procedure: or function:name of the master:
declaration.
Formal :parameter:names associated with an alternate:procedure:entrance:declaratIon may
appear as formal:parameter:names in the master:declarat?on or in any other alternate":
rocedure:entrance:declaration; formal:input:parameters in any one such declaration may
e formal:output:parameters in any other such declaration, and vice-versa.

I

33

However, as with procedure zdeclarations, names appearing as formal; para meters in any
alternate:procedure:entrance:declaration may be formal:input:parameters or formal;
output:parameters, but not both.
All formal:parameter:names (other than statement or close:names) whether they appear
in the master:declaration or in a I ternate:procedure;entra nee zdeclarations, must appear
in data zdeclarations prior to their first reference in the body of the masterzdeclaration.
Note that, with respect to the mainzprogram, an alternatezentrancezname is a
global Category 3 name. That is, it may only be referenced in an alternatezprocedure:
call or in an alternatezfunctionzcalI and is not regarded as a statementzname.
From within the body of the masterzdeclaration, a statementzname which matches an
alternatezentrancezname is treated as a local statementzname when it appears as a
switchzdesignator or as the object of a GOTO.
(Note that a I ternatezprocedurezentra nee zdeclarations can be embedded in function:
declarations as well as procedurezdeclarations.)
3.2.2.9.2

Alternate Procedure Calls

The form of an alternatezprocedurezcall is precisely like that of a procedure zeal I,
and the same restrictions as to the matching of number, position, and type of
formalzparameters with actualzparameters apply. Prior to entry, actualzinputzparameters
are evaluated as required and bound to formalzinputzparameters. Then, control is passed
to the associated statementzname within the body of masterzdeclaration.
At this p )int, execution takes place in exactly the same manner as occurs when a procedure
with no a I ternatezprocedurezentra nee zdeclarations embedded in its declaration is invoked.
If the flow of execution causes reference to be made to a formal zpara meter which is not
a formal zpara meter of the al ternatezprocedurezentra nee zdeclarati on associated with an
alternatezprocedurezcall, then such a reference is undefined.
On normal exit (exit achieved by other than a direct or indirect transfer to a mainzprogramz
statementzname not an actual zpara meter), forma I zoutput zparameters associated with the
entrance invoked are bound to their actual zoutputzparameters, and control is returned as
it would be from a procedure or a function with no alternatezprocedurezentrancezcalls
embedded in its declaration.
3.2.2.9.3

AI ternatezFunctionzEntra nee z Declaration

An alternatezfunctionzentrancezdeclaration has the same form as an a I te mate: proce du re:
entrancezdeclaration except that no formalzoutputzparameterzlist is allowed; also an item
with the same name as the alternatezfunctionzentrancezname must be declared prior to its first

34

reference. Otherwise, all the rules applying to alternate:procedure:entrance:declarations
apply to alternate:function:entrance:declarations.(Note that alternate:function:entrance:
declarations may be embedded in procedure:declarations as well as function:declarations.)
3.2.2.9.4

Alternate Function Calls

The form of an alternate:function:call has the same form as a function.-call. All remarks
regarding actions initiated by an alternate:function:ca!l parallel the remarks made regarding
alternate:procedure:calls except those involving the binding of output: para meters; exit
in this case results in the "replacing" the alternate:function:call with the value output
as a result of that call.
3.2.2.9.5

Example

PROC CFM (FEET = MILES) $ "CONVERT FEET TO MILES"
ITEM FEET F $
ITEM MILES F $
'ENTRANCE CMF (MILES = FEET) $ "CONVERT MILES TO FEET"
BEGIN
ITEM FEET 'PER* MILE F P 5280.0 $
MILES = FEET/FEET 'PER' MILE $
RETURN $
CMF.

FEET = MILES * FEET 'PER' MILE $
END
3.2.2.10

Extended Precision

Many computers programmed with JOVIAL have "double" precision hardware capabilities.
In Standard J3, no means exist for making use of such capabilities. The feature described
in this paragraph permits specification of an extended precision floatingpoint:item. It is
expected that the great majority of command and control extended precision computational
requirements can be met by an extended precision floatingpoint facility and, therefore, no
extended precision fixed:point or integer capabilities are proposed; further, it is assumed
that the exrad of an extended precision floating:point:number is the same size as the exrad
of an ordinary floating point number.
/> is used to denote the implementation dependent number of bits in the signicand of the
extended precision floating:point:number. cf is used to denote f> -1 . The number of
35

bits per exrad of both ordinary and extended precision floating numbers is represented by
S . The adjective extended:prec?sion will be used to describe extended precision
float!ng;point data and the adjective ordinary will be used to describe floatingpoint data
which are not of extended precision.
Descriptions for all ordinary:floating attributes will be found in AFM 100-24 wherever the
floating adjective is used in that document.
Neither adjective will be used if it is clear from the context which kind of floatingpoint
is meant nor will adjectives be used if it is clear from the context that either or both
kinds are meant.
3.2.2.10.1

Constant Form

The form of an extended:prec?sion:floating:constant is ordinary:floating:constant D.
Examples are:
3.D
3.14159D
.14159D
3.14159E-10D
.14159E-10D
3.E-10D
3.2.2.10.2

Declaring Extended:precis?o.i:float?ng;iterns

Extended:precision:flooting:!terns are declared in item:, array:, and table:
declarations by means of the extended:precision:floating:item:description, the form
which is either
F 6 D
or
F 9 D 9 R
(Where R specifies rounding on assignment to the declared datum.)
3.2.2.10.3

Computer Representation of Extended:Floating Constants and Variables

Extended:precision:f looting constants and extended:floating:items are represented as two
signed numbers. The signicand is represented in /» bits; the exrad in "J bits.

36

3.2.2.10.4

Numeric:formulas and Numeric:assignment

A unary arithmetic:operator (unary minus, absolute value) operating on an extended:
precision floating variable produces an extended: precisi on :f looting result. A binary
arithmetic:operator between two operands, one of which is extended:precision:flooting
produces an intermediate result which is extended:precis?on:floating. Thus, an
extended: precisi on floating result is generated if one operand is ordinary:floating and the
other extended:precision:flooting.
All calculations in extended:precision:floating form are truncated to O" significant
bits unless the statement calls for rounded assignment. Then, each calculation is carried
out to p significant bits and rounded by adding the extra bit into bit u> , discarding the
extra bit, and renormalizing if necessary. The result of the rounding must be to produce
the same effect as ordinary floating rounding requirements, i.e., rounding must either
produce the same value as would be obtained by truncation or else put the value further
from zero.
Necessary conversions between extended floating integer and fixed data are carried
out automatically when these data appear as operands in a numeric:formula or
numeric:assignment statements.
All remarks applying to ordinary floating data in numeric:formulas and numeric:
assignment statements not specifically contradicted by the remarks above apply to
extended:precision:flooting data as well.
3.2.2.10.5

Relational Operations

When a fixed, integer, or ordinary floating operand appears on either side of a
relational :operator and the other operand is extended:precision:flooting, the fixed,
integer or ordinary:floating operand is converted to extended:precision:floating for
the purposes of the comparison.
3.2.2.10.6

Allocation of Extended:precision:floating:items

Simple:extended:precision:floating:items are allocated as many full S bit consecutive
words as are required to contain the items (* + *>f bits. Any remaining bits in the
container are set to zero.
Each element of an extended:prec?sion:floating:array is allocated space in the same
manner as for simpleTextended:precision:floating:items. Extended:precision:flooting:
items which appear in a non-packed ordinary:table are allocated space in the same manner
as si mple:extended:precisi on floating: items. Medium-packed and dense-packed ordinary:
tables may cause extended:precision:floating:items to cross word boundaries. This is true
for defined:entry:tables as well. Parallel structuring of tables may, of course, cause parts
of exte nded: precisi on :f looting: items to be placed in non-consecutive words.
37

3.2.2.11

JOVIAL Input/Output Module

The proposed standard JOVIAL Input/Output MODULE (JIO) consists of four
submodules: A file manipulation submodule (JFILE), a submodule which permits
I/O devices to be controlled by the programmer (JDEV), a formatting submodule
(JFORMAT), and a service routine submodule (JSERVICE). All submodules except
JSERVICE consist of formal language features. JSERVICE is composed of a set of
routines prepared to satisfy the requirements of a specific application by the programmers
of that application.
In the descriptions of the submodules given below, reference is made to processors
called DPEP, PFILE, and PFORM. These processors serve only as an aid in the
description of actions taken by the execution of certain JIO statements; descriptions
of them are not intended to be taken as specifications for subroutines which must be
included in any implementation of the standard.
3.2.2.11.1

JDEV

The features in JDEV consist of:
•
•
•

device procedures
device tprocedu re :execution:statements
a device:procedure execution processor (DPEP)

Devices are external equipments or other processor/memory configurations and are
labeled by unique non-negative numbers. Device procedures are actions or set of
action which devices may be commanded to perform. "Rewinding" and "initiating a
read operation" are examples of device procedures which a tape transport device may
be commanded to perform, for example. The commanding process will be described
subsequently as "assigning a device procedure to a device for execution".
Device procedures are implementation dependent. A given device procedure defined
for a given installation may be assigned to more than one device for execution. "Rewind"
and "initiate read" will typically be executable by all or most tape drive devices in a
particular installation.
Device procedures may have both input and output parameters associated with them
much in the same manner as the ordinary JOVIAL procedures defined by procedure;
declarations.
Note that formal:input:parameters and formal:output:parameters associated with a
device procedure are of the same type as formal:intput:parameters and formaltoutput:
parameters associated with ordinary procedures.

38

A device procedure is assigned to a device for execution by means of a devicerprocedure:
execution:statement the form of which is
'EXECUTE

device:procedure:call
($ devicetnumber $)
optional :completion:call S

A device .-procedure :cal I has exactly the same form as a procecurercall statement
except that the terminating "$" of the procedure:cal Irstatement does not appear;
all rules relating formal: para meters to actual: para meters in a procedure:cal I statement
apply correspondingly to a device:procedure :ca11. A device:procedure:name is a global
Category 1 name. (Category 1, in fact, contains only device:procedure:names.)
Dev?ce:number is a numeric:formula. A complet?on:call is either a close:name or
procedure :ca 11 where procedure :ca 11 takes the form of a procedure :ca 11 statement without
the terminating "$" . All rules relating formal .-parameters to actual :parameters in a
procedure :ca 11 :state me nt apply correspondingly to procedure :cal Is.
DPEP is a mechanism which provides an interface between devices and the execution
of device procedures by means of device:procedure:execution:statements. DPEP must
be able to determine:

•

The status of each device at any time.
The set of device procedures which may be executed by a given
device (This set is in general a subset of the set of all possible device
procedures).
The set of device procedures which may be executed on a device when
any given device procedure is currently being executed by that device.
A device procedure is "currently being executed" from that moment
when step (d), below, is entered until the device signals completion of
execution of the device procedure as indicated in step (g) below. (Note
that it may be possible to execute a device status checking device procedure
ori a device, while the device is executing another device procedure, for
example.) A device is said to be "available" to a device procedure if that
device procedure is a member of such a set as described above; otherwise,
the device is "unavailable" to the device procedure.

Associated with each device procedure is an "execution time" property. Some device
procedures (such as device status checking) may have an execution time of zero — they
execute "instantaneously". Other device procedures have a non-zero execution time —
they execute "non-instantaneously". DPEP is designed in such a way as to allow the
programmer to perform processing in parallel with the execution of non-instantaneous
device procedures and to perform interruption processing when these device procedures
have signaled completion. It is the implementor's decision which of the device procedures
are defined to be instantaneous and which are to be non-instantaneous.
39

A device :procedure:execut?on:statement causes the following operations to be
performed:
1)

2)
3)

Any actual;input:parameters associated with the device:procedure:calI will
be evaluated in precisely the same manner as actual tinput:parameters are
evaluated in a procedure:call:statement.
The devIce:number:numer?c:formula will be evaluated exactly as if the
numerictformula were being used as subscript.
The DPEP mechanism will perform the following operations in the order
indicated:
(a)
If the dev?ce:number does not correspond to any of the device:numbers
allowed, DPEP ceases processing and returns control to the next statement
following the device procedure :execution:statement. (Attempt to execute
the device procedure results in a no-operation)
(b)
DPEP determines if the device procedure specified in the device:procedure:
call may be executed by the device specified by device:number. (A device
procedure for backspacing a tape record cannot be executed on a card
reader, for example) If the device procedure cannot be executed on the
device, DPEP returns control to the next statement following the device:
procedure:executionstatement. (Attempt to execute the device:procedure
results in a no-operation.)
(c)
DPEP determines if the device is "available" to the specific device procedure.
If not, DPEP returns control to the next statement following the device:
procedure execution:statement. (Attempt to execute results in a no-operation.)
(d)
If the device procedure specified is non-instantaneous, DPEP takes all
necessary steps to regain control from any program segment which may be
operating when the device signals that it has terminated execution of the
device procedure.
(e)
DPEP assigns the device procedure to the device for execution. If the
device procedure executes instantaneously on the device, control is returned
to the statement following the device:procedure:execution:statement. Then,
steps (g) - (i) are never entered. If the device procedure is non-instantaneous,
control is passed to step (f).
(f)
DPEP returns control to the statement following the device procedure:
execution:statement.
(g)
On the signal (interruption) from the device that it has completed processing
of the device procedure, execution of the program segment currently
op rating is suspended, DPEP ensures that any actual :output:parameters
associated with the device procedure are evaluated, and control is passed
to step (h) below,
(h)
DPEP evaluates any actual :input:parameters associated with the completion:
call, if a completion:call was supplied. (Evaluation takes place exactly as
if the completion:call were an ordinary procedure:call.) If no completion:
call was specified, DPEP resumes processing at step (i). Otherwise, the

40

(i)

•
•
•

•

close or procedure specified by the completiomcall is invoked and
DPEP awaits its termination. Upon termination of the completion:call
execution, DPEP passes control to step (i).
DPEP returns control to that point immediately following the last
execution which occurred prior to regaining control on the termination
signal from the device. Note that:
A complet?on:call associated with an instantaneous device procedure
is never operated (see step "e").
If the completionzcall procedure or close does not return control to DPEP
at step (g), further DPEP processing is undefined.
If the complet?on:call specified invocation of a close which was
declared within a FOR statement which does not contain the device:
procedure:executIon:statement, and if that close manipulates the loop:
variable defined by the FOR statement, the complet?on:call invocation
step (g) is undefined.
If the completion:call specifies invocation of a procedure, and if one or
more of the actual:parameters contains a loop:variable then the device:
procedure:execution:statement must appear within the scope of definition
of the loop:variables.

Examples of device:procedureexecution:statements are:
'EXECUTE REWIND ($23$) $
'EXECUTE REWIND ($1+7$) $
"THE ABOVE TWO STATEMENTS WILL REWIND THE TAPES ON DEVICES 23 AND
1+7."
'EXECUTE DISKREAD (DISKADDRESS, MEMORY 'BUF, BUF'LENGHT
= DISKREAD 'STATUS)
($ DISKA $) INTRUPT'L() $
"THE ABOVE STATEMENT CAUSES A READ FROM DISKADDRESS TO BE INITIATED. THE
DISKREAD DEVICE PROCEDURE WILL FILL DISKREAD 'STATUS WITH A VALUE DESCRIBI NG
THE STATUS OF THE READ ON COMPLETION. THEN THE PROC INTRUPT'L IS OPERATED."
3.2.2.11.2

JFILE

The file processing submodule, JFILE, consists of the following features:
•
•
•
•

the file:declaration
file manipulation statements
a control mechanism, the File Processor (PFILE)
two built-in interface procedures, TLB and TBL

41

•
•

the functional :modifier POS
the functional:modifier 'FILENUM.

These features described fully in 3.2.2.11 .2.4 have been designed and organized
in such a manner as to reflect a point of view founded on a specific definition of
file, and on the notion that files so defined have both "functional" and "representational" characteristics which can, and should be separated. The definition of file
is:
•
a collection of distinguishable objects, or records, called a
record set, and
•
the processes by which records in the record set are stored into
and retrieved from storage media.
A file characteristic is "functional" if it applies to a record set or storage/retrieval
processes independently of particular storage media and transmission devices. A file
characteristic is "representational" if it applies to particular properties of a record set
in some specific, physical storage medium or if it describes storage/retrieval processes
in terms of some specific, physical transmission device. JFILE is so structured as to
separate the functional characteristics of a file as completely as possible from the
representational characteristics, thus rendering functional processes and representation
characteristics independent.
3.2.2.11.2.1
3.2.2.11.2.1.1

The Functional File
The Functional Record Set

Each record in the functional record set is thought of as a "logical" or functional
entity independently of its relationship to any other information group; functional
records are generally defined by the programmer on the basis of certain functional
characteristics of his program. Each (functional) record in the record set has no
particular structure and is composed of no particular type of information as such. The
programmer gives structure and information type to a record by the manner in which his
program deals with its "main memory" image.
A record set contains n functional records, where n is some finite positive
integer or 0. If n=0, the record set is called "empty". (In practice, the programmer
does not ordinarily know the value of n.) Associated with each record in a (nonempty) record set is a unique non-negative integer k which comes from the set
k ( k = 0,.. ,,n-l) where n is the number of records in the record set. This set of
numbers is called the functional "reference set".
3.2.2.11.2.1.2

The Functional Storage/Retrieval Processes

This paragraph describes the referencing process consisting of four basic storage/retrieval
processes (Input, Output, Insert, Delete), and two processes (Open, Shut) which serve
42

to initialize and terminate other storage/retrieval processes. When "transmission"
is used below it means only the movement of information and implies no alteration of
that information. Thus, transmission of a record image from the main memory to an
external storage medium, followed by transmission of the same record back to main
memory, should produce an identical record image in main memory if the transmission
in each case is performed under the same set of conditions. ("Main memory" refers to
the storage medium which contains the invocation command for a storage/retrieval
process.)
Note that no notions of transmission initiation, transmission occurring in parallel
with computation, and interruption on completion of transmission are associated with
the functional storage/retrieval and initialization/termination processes, though, indeed,
any representation of these functional processes will have to deal with such notions.
From the point of view of the programmer, the execution of any functional process
involving a transmission causes the transmission to take place and does not terminate
before the transmission is completed; also, when a functional storage/retrieval or
initialization/termination process completes execution, program control is passed
to the statement following the process invocation. Further, this should be true for
any representation of the functional processes.
A record in a record set is "referenced" by specifying the appropriate integer k
from the reference set. A record is referenced when it is desired to use it as an
operand in a storage/retrieval process. If a record k is referenced with k(0)
or k(n-l)the result of the reference is, in general, undefined. (With respect
to the basic functional storage/retrieval processes described below, this will be
true unless explicitly stated as otherwise.) The following paragraphs describe the
functional processes:
a)

b)

c)

"Input record k" is a retrieval process which causes the record referenced
by k in the record set to be transmitted to the main memory. "Input
record k" is undefined if n=0, i.e., if the record set is empty.
"Output as record k" is a storage process which causes information to be
transmitted from the main memory to a storage medium. If the record
set in the storage medium already contains a record k, it is replaced
by the transmitted information; the transmitted information is then
established as record k of the record set. If k=n, the transmitted
information is appended to the record set and the number of records in
the record set is increased to n + 1 .
"Insert as record k" is a storage process which causes information to be
transmitted to the storage medium. If k = n, "Insert as record k" has
the same meaning as "Output as record k". Otherwise, the transmitted
information is established as record k of the record set. All those records
of the record set which were referenced by j *k prior to the invocation
of "Insert" are referenced by j + 1 subsequent to the invocation of "Insert".
"Insert" causes the number of records in the record set to be increased from
n to n + 1 .
43

d)

e)

f)

"Delete record k" is a storage process which causes record k of the
record set to be removed from the record set. Records of the record
set which were referenced by j > k prior to the invocation of "Delete"
are referenced by j-1 after invocation of "Delete". If n = 1, "Delete"
causes the record set to be made empty.
"Open file" is an initialization process which causes the record set and
the storage/retrieval processes of the file to be readied for processing. The
storage/retrieval processes "Input", "Output", "Insert", and "Delete"
may be invoked only after "Open file" has been invoked.
"Shut file" is a termination process which causes the record set and the
storage/retrieval processes to be brought to a state of inactivity. Once
"Shut file" has been invoked, "Input", "Output", "insert", or "Delete"
may not be invoked until "Open file" is invoked once again.

3.2.2.11.2.2
3.2.2.11.2.2.1

The Representational File
The Representational Record Set

Each record in the representational record set is an information group the attributes
of which reflect properties peculiar to a particular storage medium and transmission
(e.g., parity mode). Such information group attributes may also reflect the programmer's
desire to conserve space in the storage medium, as when he blocks many functional
records together into one representational record.
Representational records will have a structure and information type peculiar to the
associated storage medium and transmission device. A representational record set
may contain greater or fewer records than the number of records in the functional
record set being represented. A representational record set has an associated reference
set that is peculiar to the particular storage medium and transmission device being
used. Such a reference set may consist of disk or drum addresses, or it may contain
"position" numbers which specify where the record is on a tape, in a card reader, or
on a printer.
It is important to note that a given functional record set may have associated with
it a wide variety of representational record sets if the functional record set is to
be represented in a variety of different storage media and transmitted by a variety of
different transmission devices.
3.2.2.11.2.2.2

The Representational Storage/Retrieval Processes

"Transmission", as used in this paragraph may involve some alteration of information, as
for example, conversions between internal and external hollerith encoding techniques.

44

The actual transmission associated with an Input or Output typically requires initiation
of an Input or Output Operation and processing of theinterrupt signal returned by the
transmission device when it has completed the transmission. Thus, representational storage/
retrieval processes may allow other forms of processing to occur between transmission
initiation and completion. Device manipulations of all kinds may be required to effect
the transmission; these manipulations may indeed be commanded by device rprocedure:
executionrstatements, (JDEV).
A representational record is referenced by specifying its associated reference set element.
This element may be an explicit disk or drum address or it may appear implicitly in a
command, as in "read the next tape block". The following describes the representational
storage/retrieval processes.
a)

b)
c)

To "Input" or "Output" a representational record will involve commanding
some transmission device to move the representational record between
main memory and a storage medium. Device commanding requires, of course,
the specification of a variety of device specific parameters. "Outputing"
a record may involve "Inputing" other records of the record set, as when
dealing with disk records which are "linked" by disk addresses embedded
in each record as part of the data of that record. Representational
"Inputing" and "Outputing" may also involve commanding devices to
perform non-transmission processes, e.g., backspacing, rewinding,
positioning read/write heads, etc.
"Inserting" representational records may involve both "Inpuling" and
"Outputing" as may "Deleting" representational records.
"Opening" a representational file may involve securing a device,
allocating main memory buffer space, initiating the "Input" of a
physical record, and the like. "Shuting" a representational file may
involve releasing a device and main memory buffer space.

It is clear that different representational storage/retrieval processes will need to be applied
against the same functional record set represented in different storage media and transmitted
by different devices. Also, it is clear that certain functional processes will be feasible
for one file representation and not for another so that a functional file may be limited
in the number of representations that can be defined for it. For example, a file requiring
"Output" to "rewrite" a record cannot usually be represented feasibly where magnetic
tape is a storage medium.
3.2.2.11.2.3

Functional and Representational Specifications and Interfaces in JFILE

JFILE allows for the manipulation of files in both a functional and a representational manner.
Explicit language features are provided to deal with files functionally (see 3.2.2.11 .2.4,
below). The functional record set and reference set as well as the functional storage/retrieval
processes of paragraph 3.2.2.1 1 .2.1 are embodied in these language features. The

45

representational particular file aspects are dealt with in terms of "Service Routines" which
are tailored to the specific storage media and transmission devices of a particular application.
Service Routines are either closes or procedures which are written by the programmers for
a specific application.
A Service Routine is associated with each of the functional storage/retrieval processes
which will be carried out during the processing of the file; the association of Service
Routine with functional process is effected by means of the file;declaration.
Service Routines handle all representational aspects of the file. In general, embedded
within their structure will be facilities for effecting the following:
device assignment
recording modes and densities
record set labelling
internal buffering
initiation of device procedure executions
interrupt processing
external storage media allocation and management
transmission error checking and recovery procedures
sequential or random access
(Note that device manipulations might typically be handled by device:procedure:
execution:statements)
The set of all Service Routines is referred to as the JSERVICE submodule of JIO. It is
anticipated that a given application will fix on a set of (application) standard Service
Routines, or use such Service Routines as are provided by an operating system. A Service
Routine specified for a given functional storage/retrieval process should simulate and
preserve all the functional characteristics of files as described in 3.2.2.11 .2.1, though
there is no way to guarantee that this be so. (For example, the Service Routine associated
with "Input record k" should be so written as to make the correspondence between the
functional reference k and any physical reference, and cause transmission of functional
record k to occur as described in 3.2.2.11 .2.1 .2(a) regardless of any (representational)
device manipulations or internal buffering techniques which may be required to do so).
The syntactic entity, serv?ce:call, is the mechanism provided for specifying the invocation
of a Service Routine when performing a functional file operation. A service:call is a
close:name or a procedure:call. A procedure: call is the same as a procedure: call statement
except that it does not contain a terminal "$". When a service:call is said to be "operated"
in paragraph 3.2.2.11.2.4, the effect obtained is exactly that obtained by either
GOTO close:name $
or
procedure:calI $

46

Note that any actual :input:para meters of the procedure real I are evaluated in the usual
way at the time the service:call is operated, and not before. If the operation of a
service:call causes a close to be invoked which was declared in a FOR statement and
which references the loop:variable of the FOR statement, the effect of the close
invocation is undefined.
If the service :ca 11 is a procedure: call and if one or more of the actua I: para meters
contains a loop:variable, the file:declaratiort containing the service:call must also
be within the scope(s) of definition of the loop:variable(s). Also any open:, input:,
output:, insert:, delete:, or shuhstatement which, when executed, will cause such a
serv?ce:call to be operated must be within the scope(s) of definition of the loop:variable(s);
otherwise the operation of the service:call is undefined.
3.2.2.11.2.4

The File:Declaration and File Statements

3.2.2.11.2.4.1

The File:Declaration

A file:declaration is
FILE 8 file:name 9 file:process:!ist 0 $
Flle:name is a Category 3 name which serves to identify the file.
is either
file:process
or
file:process:list 9 file:process

A file:process:llst

A file:process is
MODE 9

mode:integer 6
open:process:clause 9
optional:pos:process:clause 9
optional:input:process:clause
optional:output:process:clause
optional:insert:process:clause
opt?onal:delete:process:clause
shut:process:clause 0

9
9
9
9

Note that at least one of the optional clauses in a file:process must be included in file:process,
Mode:integer is an unsigned:integer which servies to identify the f?le:process in which it is
contained; if more than one file:process appears in the file: process: I ist, the mode:integer
of any one must be different from the mode:integer of any other.
A flle:process is, in effect, a specification for a particular "mode" of file initialization,
storage/retrieval and termination processes which will be carried out together; the

47

file:process:list allows as many such "modes" as desired to be specified in the
file:declaration.
The purpose of the clauses in file:process is to show a correspondence between the
functional file operators OPEN, POS, INPUT, OUTPUT, 'INSERT, 'DELETE, and
SHUT, and the representational service:calls by which they are realized as indicated
below.
Open:process:clause
pos:process:clause
input: process: clause
output :process:c I ause
insert :process:clause
delete :process:clause
shut:process:clause

OPEN e
POS 9
INPUT 9
OUTPUT 9
'INSERT 6
'DELETE 6
SHUT 6

service:cal I
service:call
service:call
service:call
service :call
service :call
service:call

Service:calls are not operated at the time a file:declaration is made, but rather at the
time a file statement is executed, as described below. Note that at execution time, PFILE,
the file processing mechanism, has access to all information declared by a filetdeclaration.
3.2.2.11.2.4.2

File Statements

Statements performing file processing are:
>pe n:statements
inpuhstatements
ipu
output statements
inse restatements
delete statements
shut:statements
Additionally,file processing operations may take place whenever a value is assigned
to the functional:modifier POS.
Open:, input:, output:, insert:, delete:, and shut statements are the JOVIAL features
provided for effecting the functional file processes "Open", "Input", "Output", "Insert",
"Delete", and "Shut" discussed in 3.2.2.11 .2.1 .2. References to records in the functional
record set are made by assigning values to functional:mod?f?er POS (see 3.2.2.11 .2.4.3).
Thus, the invocation of the functional retrieval process "Input as record k" is carried
out by first assigning k to POS and then executing an ?nput:statement. Note that:
•

file statements do not automatically change the value of POS when they
are executed (though the associated Service Routines may be written
in such a way to perform this action if desired)

48

•

assignment of a value to POS does not automatically cause positioning
of the storage medium with respect to the transmission device (though
Service Routines may produce this result if desired).

A opentstatement is
OPEN 9 filername 0 MODE 0 moderformula 9

$

where moderformula is a numeric:formula .
An input:statement is
INPUT 9 filename 0 iorlist 0 $
An outpuhstarement is
OUTPUT 0 f?le:name 0 io:list 0 $
An insert:statement is
'INSERT 0 filename 0 io:list 0 $
A dele restatement is
"DELETE 0 filename 0 $
A shuhstatement is
SHUT 0 file:name 0 $
An io:list is
io:operand
or
io:list 0,

0 ioroperand

An io:operand is either a namedrvariable or tablername or array:name.
Note that the phrase "currently opened" will be used subsequently to describe any
file whose filername appears in an open statement which has been executed and where
no execution of a shuhstatement with the same file:name has yet taken place.
3.2.2.11.2.4.3

Functional:Modifier POS

POS is a functional modifier which designates an unsigned:integer:variable when applied
to a file:name and can therefore be assigned values. POS may appear in two forms:
POS 0 (0 filename 0)
or
POS
49

When the second form of POS is used, a filetname is automatically supplied. That
file:name is supplied which refers to a currently opened file and which appeared in the
last openlstatement, ?nput;statement, output;statement, insert;statement, or delete:statement
executed prior to the POS reference. POS is undefined if used when no file is currently
opened or when a specific file:name (form 1) used refers to a file not currently opened.
The value taken by POS is the reference number of a (logical) functional record in the
functional record set associated with fjlejname. POS provides the mechanism for
functional "Referencing" as described in 3.2.2.11 .2.1 .2. A further description of POS
is given in 3.2.2.11.2.4.5.7 below.
3.2.2.11.2.4.4

Functional:Modifier'FILENUM

'FILENUM is a functionahmodifier which produces an unsigned:?nteger when applied
to a file:name. 'FILENUM does not designate a variable and cannot be assigned values
in any JOVIAL J3 program. 'FILENUM may appear in two forms:
'FILENUM 0 (0 filename 9)
or
'FILENUM
When the second form is used, a file:name is automatically supplied. That fjlejname
is supplied which refers to a currently opened file and which appeared in the last
open statement, input:statement, outpuhstatement, insert: statement, or delete statement
executed prior to trie 'FILENUM reference. 'FILENUM is undefined if used when no
file is currently opened or if a specific file:name (form 1) is used which refers to a file
not currently opened.
Values taken by 'FILENUM always lie in the range 0. . .m, where m + 1 is the
maximum number of files ever "currently opened" during the course of program execution.
'FILENUM is undefined if file:name refers to a file not currently opened.
The purpose of 'FILENUM is to provide an interface between file manipulation statements
and the Service Routines by which they are realized. Thus a set of Service Routines might
be so written as to reference file parameters maintained in a table, with the parameter
sets for distinct files stored in distinct entries. Service Routines, when operated, would
determine the appropriate set (entry) of file parameters to use by means of 'FILENUM,
e.g., FILE 'PARAM ($ 'FILNUMlT.
3.2.2.11.2.4.5

PFILEand File Statements

PFILE supervises the execution of all file statements.

50

3.2.2.11 .2.4.5.1

Execution of the Open:Statement

The following functions are performed in the execution of the open:statement.
(a)
(b)

(c)
(d)

(e)
(f)
(g)

PFILE determines if the file called file:name has already been establised
as "currently opened". If so, execution of the open statement is undefined.
PFILE creates a unique non-negative integer and assigns it to the 'FILENUM
associated with this file. As previously stated, the value of 'FILENUM is
in the range 0. . .m where m + 1 is the maximum number of files ever
"currently opened" during the course of program execution.
The mode:formula of the open:statement is evaluated in the same manner
as if it were a subscript.
PFILE determines if a file:process identified by the value yielded by
evaluation of the mode:formula has been included in the file:declaration
for the file called file:name. If no such file:process was included in the
declaration, execution of the open-.statement is undefined. Otherwise,
PFILE establishes the file:process so identified as the "current file:process"
for the file called file:name.
PFILE establishes the status of the file called file:name as "currently opened".
PFILE operates the service:call given in the open:process:clause of the current
file:process.
When the service:calI returns control to PFILE, PFILE returns control to the
first statement following the open:statement .

3.2.2.11.2.4.5.2

Execution of the lnput:Statement

The following functions are performed in the execution of the input:statement.
(a)
(b)

(c)

(d)
(e)

PFILE determines if the status of File called file:name is "currently opened".
If not, execution of the input statement is undefined.
PFILE then determines if an input:process:clause is included in the current
file:process established for the file called file:name. If not, execution of
the inpuhstatement is undefined.
The io: list of the input statement is established as the "current io:list" by
PFILE. Subscripts of named:subscripted:var?ables appearing in the io:l ist
are evaluated at this time, in the same manner that they would be evaluated
had the named:subscripted:variables appeared in any other statement. Also,
subscripts for named:subscripted:variables are evaluated in the same left
to right order that the named:subscript:variables appear in the io:list. Note
that these remarks about subscript evaluation apply whenever the phrase
"established as the current io:list" appears in subsequent paragraphs.
PFILE operates the service:call associated with the input:process:list in the
curre nt :process: I i st.
When the service:call returns control to PFILE, PFILE returns control to the
first statement following the input:statement.
51

3.2.2.11.2.4.5.3

Execution of the OutputiSntat-emenf

The description of output:statement execution is identical to the description of
input:statement execution (3.2.2.11 .2.4.5.2) except that every occurrence of the
word input should be replaced by the word output.
3.2.2.11 .2.4.5.4

Execution of the InsertrStatement

The description of lnsert:Statement execution is identical to the description of
lnput:Statement execution (3.2.2.11 .2.4.5.2) except that every occurrence of the
word input should be replaced by the word insert.
3.2.2.11 .2.4.5.5

Execution of the Delete:Statement

The description of delete:statement execution is identical to the description of
input:statement execution (3.2.2.11.2.4.5.2) except that subparagraph (c) does
not appear (a delete:statement has no iojlist) and every occurrence of the word input
should be replaced by the word delete.
3.2.2.11 .2.4.5.6

Execution of the ShuhStatement

The following functions are performed in the execution of the shut:statement.
(a)
(b)
(c)

PFILE determines if the file called filename has been established as
"currently opened". If not, execution of the shutrstatement is undefined.
Then PFILE operates the service :ca 11 given in the shut:process:clause of
the current file:process for the file file:name.
When the service:call returns control to PFILE, PFILE establishes the status
of the file file:name as "not currently opened" and returns control to the
first statement following the shutrstatement.

3.2.2.11 .2.4.5.7

Execution of Assignment to POS

The following functions are performed in the execution of the assignment to POS.
(a)
(b)
(c)

(d)

PFILE determines if file file:name has been established as "currently opened".
If not, any reference to POS is undefined (see 3.2.2.11 .2.4.3).
The value to be assigned to POS for file filername is assigned.
If a pos:process:clause is present in the current file:process for file file:name,
PFILE operates it. Otherwise PFILE returns control to the first program step
following the assignment to POS.
When the servicercall returns control to PFILE, PFILE returns control to the
first program step following assignment to POS.

52

(e)

Note that the reason for allowing a service;calI to be operated when a
value is assigned to POS is to allow a "repositioning" of the transmission
device over the representational record set well in advance of the next
access to a record. A programmer requiring random access to a disk, say,
might do a POS assignment (with servtce:call), then some computations,
and finally execute an inpuhstatement, realizing that the computations
will be carried on while a disk read-head is "repositioning".

3.2.2.11.2.5

The Built-in Procedures TBL and TLB

TBL (Transmit Buffer to io:list) and TLB (Transmit io:list to Buffer) allow the applications
programmer writing Service Routines to transmit between functional records (which have
been brought into main memory from an external storage medium or which will be
transmitted from main memory to a storage medium) and the internal data structures
which are named in the io:list of input:, output;, and inserestatements.
The following functions are performed in the execution of TBL and TLB which
operate under the control of PFILE.
(a)

TBL is invoked by
TBL (BUFFER, DISPLACEMENT, LENGTH) $
TLB is invoked by
TLB (BUFFER, DISPLACEMENT, LENGTH)

$

BUFFER is table:name or array:name denoting the (main memory) buffer area
which will receive the functional record from the io:list (TLB) or which contains
the functional record to be transmitted to the iotlist (TBL).
DISPLACEMENT is an integenvariable which is an increment from the
first word address of BUFFER: TBL, and TLB add DISPLACEMENT to the first
word address of BUFFER to produce the first word address of the functional
record storage area.
LENGTH is an unsigned:integer:var?able representing the length in words
of the functional record storage area.
(b)

TBL causes the functional record characterized by the inpuhparameters to
be transmitted to the internal data structures of the "current io:list". the
"current iorlist" is established by PFILE as described in 3.2.2.11 .2.4.5.
TBL treats the functional record as a bit string and the elements of the

53

"current io:11st" as a set of bit strings, one for each namedrvariable,
table, or array making up the "current io;list". A bit string corresponding
to a namedrvariable consists of all bits required to represent the variable,
including any filler bits. Bit strings corresponding to tables and arrays
are composed of those (contiguous) blocks of words used to represent the
tables and arrays. In the case of tables, the contiguous block contains
the NENT word as the first word; even if the table is variable, the
length of the block is based on the total number of words required to
represent the table, regardless of the current value of the NENT. The
transmission behaves as if the "current io:list" bit strings formed one
contiguous bit string, concentrated together in the same order that the
named:var?ables, tables, and arrays appear in the "current iorlist".
Each functional record bit, starting with the left most record bit, is moved
one at a time to a corresponding bit in the (contiguous) "current iorlist"
bit string, starting with the left most current ?o:list bit. The move
terminates when the functional record bit string is exhausted or when the
"current io:list" bit string is exhausted, whichever happens first.

(c)

(d)

3.2.2.11.3

(The description of the transmission as a bit by bit move is given only
to indicate the functional characteristics of the move. An implementation
scheme which achieves the same functional end is permissible.
TLB causes the "current To:11st" structures to be moved to a functional
record storage area whose first word address and size are characterized
by the TLB input parameters. The effect of the transmission is identical
to the TBL transmission except, of course, that the move is from the
(contiguous) "current iorlist" to the functional record storage area.
It should be noted that the iorlist, however complex, is treated as one
functional record.
JFORMAT

The JFORMAT submodule is composed ofr
•
•
•

the formatrvariable
the encode rstate me nt and the decoder statement
the format processor, PFORM

The purpose of the JFORMAT features is to provide the facilities for converting data
in hollerith character string representations to internal representations and vice-versa.
A decoderstatement is used to convert data represented as hollerith character strings
to their corresponding internal representation. An encode rstate me nt is used to convert
data from their internal representations to hollerith character string representations. The
purpose of the formatrvariable is to supply the necessary conversion and editing specifications.

54

Encode: and decode:statements are thought of as executed under the supervision of
the processor PFORM.
3.2.2.11.3.2.1

The FormahVariable

A formatrvariable is either a hollerith:constant or a named:hollerith:variable.
PFORM interprets format:variables to determine what conversions and editings are
to take place. The hollerith characters making up the content of a formatrvariable
need have no particular structure until PFORM is called upon to interpret the format:
variable during the execution of an encode:statement or a decode statement. Note
that all or part of any format:variable may be modified at execution time by any of
the character manipulation features of the language; this allows for varying conversion
and editing specifications at execution time.
When a formahvariable is being interpreted, the hollerith characters comprising it
must take the form of a specification'list. (Note: Prime, and not colon, will be used
in the syntactic specifications of the content of a formahvariable to draw attention to
the fact that such specifications apply at execution time and not at compile time. Prime
plays the same role played by colon in the compile time metalanguage specifications; all
other compile time metasyntactic symbols have the same meaning when used in execution
time metasyntactic symbols.)
A specification'list is a
conversi on'or'edi ting'specifier
or a
specification'list 9,

6 conversion'or'editing'specifier.

A conversion'or'editing:specifier is a
conversi on'specifier
or
editing'specifier or iterator 0 (9 specification'list 0).
Iterator is a number.
A conversion'specifier is one of the forms
W_
W_
W_
W_
W_
W

9
9
9
9
9
9

I
A
F
D
S
B

9 _d_
9 J_
9 d_
9 d_

55

w_e o
wex
W9H
W6H6L
A ffxed:field:l 1st is either
fixed:fie Id :ele merit
or
f?xed:field:list 8,

0 fixed:field:element.

A free:field:list is either
free:field:element
or
free:field:list 0,

0 free:field:element

A fixed:field:element is a namedrvariable. A free;field:element is either a
named:variable, table:name, or arraymome. Note that an arraytnome may be used
in fixed:field:list as long as it is appropriately subscripted and that a table:name
may not appear at all in a fixed:field:list.
Conversions are termed "free field" if they are specified by an encode: or decode:
statement with a free:field:conversion:clause; otherwise they are termed "fixed field".
3.2.2.11 .3.3

Fixed Field Conversions

"Field" means a substring of the buffer associated with an encode: or decode statement.
Bufferrname is either the name of a literahitem, a table or array. If buffer:name is the
name of a literal :item, that item must be not less than 41 bytes in length and must begin
in byte 0 of a word. Further, if the structure called buffenname is greater than one word
in length, it must occupy consecutive words. When the structure called bufferrname is
used in an encode: or decode statement, it is treated as a string of hollerith characters,
no matter how it may have been declared. (The structure called buffenname is referred
to subsequently as the buffer.)
A conversion:clause is either a fixed:field:conversion:clause or a free:field:conversion:
clause.
A fixed:field:conversion:clause is either
(0 format:variable 0) 0 fixed:field:list
or
(0 formahvariable 0, 0

service tea 11 0) 0 fixed:f?eld:list

56

A free:field:convers?on:clause is either
(9) 9free:field:list
or
(0 ,

9 service:ca11 9) free:field:list

An editing'specifier is one of the forms
W
- 9 W_
W 9 C
h~ollerith:constant
W denotes a number, the value of which must be non-zero; d denotes a number. The
meaning of conversion'specifiers and editing'specifiers, and-the role played by iterator
will be explained in 3.2.2.11.3.3, 3.2.2.11 .3.4, and 3.2.2.11.3.5.
3.2.2.11.3.2

The Encode:Statement and Decode:Statement

An encode:statement is
'ENCODE 9 buffer:name 9 conversiontclause 9 $
A dec ode statement is
'DECODE 9 buffering me 9 conversion:clause 9 $
3.2.2.11.3.3.1

Description of Conversion'specifiers

The number denoted by W always represents the field width in terms of number of
character positions. The number denoted by d represents an implied negative power
of ten when used in conjunction with a decode:statement; when used in conjunction
with an encode statement, d denotes the number of digits to the right of the decimal
point. The letter following W in a conversion'specifier indicates the "conversion type'
L used in W 9 H 9 L, means "left-justified". If W 9 H is used, "right-justified" is
implied. "Left-justified" and "right-justified" are defined in 3.2.2.11 .3.3.2 and
3.2.2.11.3.3.3.
3.2.2.11.3.3.2

Conversion with a Decode:Statement

The execution of a decode statement causes a field of the buffer to be converted
from a hollerith representation to an internal representation which is then assigned
to an associated named:variable. The form of the internal representation is defined by
the item:declaration given for that named:variable which is associated with the conversion'
specifier during the execution of the decode:statement.

57

The conversion of a hollerith representation to an internal representation takes place
according to the same rules and is subject to the same restrictions as would apply if
the conversion were effected by an assignmentrstatement of the form:
namedtvariable 0 = 8 constant 8 $
where constant is simply the contents of the field being converted. However, it
must be added that if the contents of the field form an ?nteger:constant and the
conversion type is A, F, or D, then the converted value obtained above is multiplied
by 1 0-d before assignment to the namedtvariable. Note that, with the exception of
fields defined by conversion'specifier W 8 H, leading spaces and trailina spaces in
the field are not regarded as part of the datum. The character configurations which
the field may take for any given conversion type are shown in paragraphs (a) - (f). The
conversion is undefined if the character configuration of the field is not one of those
specified as allowable in (a) - (f).
(a)

Conversion Type I, A, F, or D

If the conversion type is I, A, F, or D, the allowable character configurations
of the field being converted are:
optional ly:signed:integer;constant
optional ly:s?gned:fixed:constant
opt i o na I ly:signed: floating: constant
optional ly:signed:extended;precision:f I oating:constant
spaces (all characters)
hexadecimal xonstant
octal: constant
If the character configuration is spaces, the field is treated as if the single
digit 0 appeared.
(b)

Conversion Type S

The allowable character configurations are:
status:constant
name
When name is used, the field is treated as if its character configuration
were V(name).

58

(c)

Conversion Type B

The allowable character configurations are:
0
1
T
F
T and F are treated as if they were 1 and 0, respectively.
(d)
Conversion Type O
The allowable character configurations are:
octal :constant
octahdigits
When octal:digits are used, the field is treated as if its contents were O (octal
digits).
(e)
Conversion Type X
The allowable character configurations are:
hexadecimal:constant
hexadecimal: digits
If the latter is used, the field is treated as if X (hexadecimal :digits) appeared.
(f)
Conversion Type H
The allowable character configuration is any string of hollerith characters. If
the string of hollerith characters, once stripped of any leading and trailing spaces,
forms a hoilerith:constant, the contents of the field are treated as if they were
that hollerith-.constant. Otherwise,
•
•
•

3.2.2.11 .3.3.3

If the field is defined as right-justified (W 0 H), any trailing
spaces are recognized as part of the datum.
If the field is defined as left-justified (W9H 9L), trailing spaces
are not recognized as part of the data.
The contents of the field are treated as if they were number H
(string:of:hol lerith:characters) where the value of number is the
number of characters in the string of hollerith characters.
Conversion with an encode:statement

The execution of an encode statement causes named:variables to be converted from their
internal representations to hollerith character string representations which are inserted into
the buffer. The internal representations are defined by the item:declarations given for the
named:variables. The hollerith character string representations are defined by the parameters

59

of the conversion'specifiers as associated with the namechvariables during the execution
of the encode:statement. The number W of the conversion'specifier indicates the width
of the field into which the hollerith character string produced by the conversion will be
placed. The number d indicates the number of digits to the right of the decimal point
in the generated character string. The conversion type describes the format of the
generated character string. Associated with a given conversion type are a set of
allowable item types. A named:var?able being converted with respect to a given
conversion type must admit to one of the allowable item types; if not, the effect of the
conversion is undefined. Allowable item types and hollerith character string representation
formats are described in paragraphs (a) - (h) below.
(a)

Conversion Type I

Allowable item types of named;var?ables which may be converted with
conversion type I are:
integer
fixed
floating
extended :precision:f looting
The format of the hollerith character string generated by means of this conversion
is:
S I. . .1
where S specifies sign and I. . .1 specifies integer digits. If the item converted
is signed and non-negative, or unsigned, S is a space; otherwise S is "-".
(b)
Converson Type A
Allowable item types which may be converted are:
v

integer
fixed
floating
extended :precis?on:f looting
The format of the hollerith character string is
S I. . .1 . F. . .F
S and I. . .1 are as described above; F. . .F are the fractional digits.
number of fractional digits is equal to d.
(c)
Conversion Type F
Allowable item types are:
integer
fixed
floating
extended: precis?on:f looting

60

The

The format is
S • F. . .F E ±e. . .e
S and F. . .F are as described above. E - e. . .e represents the exponent.
The number of digits making upe. . .e is implementation dependent,
(d)
Conversion Type D
Allowable item types are:
integer
fixed
floating
extended: precision floating
The format is
S • F. . .F E ±e. . .e D
S, F. . .F and e. . .e are as described above.
extended:precision:floating.
(e)
Conversion Types O and X

The terminal letter D denotes

Any of the item types that are allowed. The format produced by type O is O. . .O,
where O is an octal:digit. The format produced by type X is X. . .X, where
X is a hexadecimal :digit.
(f)
Conversion Type S
The only allowable item type is status. The format is status:constant:signs where
status:constant:signs are those signs which appeared in any of the constants V
(status:constant:signs) when the status:item was declared.
(g)
Conversion Type B
The only allowable item type is boolean. The format is "T" or "F" according
as the value of the boolean item is "true" or "false",
(h)
Conversion Type H
The only allowable item types are literal. The format is C. . .C where C
denotes a hollerith character; the number of characters making up C. . .C
equals the length of the literal item converted.
3.2.2.11.3.4

Description of Editing'specifiers

An editing'specifier does not control conversion, but rather serves to describe to the
format processor, PFORM, certain actions to take when processing the buffer when
it is used with either an encode statement or a de code: state me nt.
(a)

The form W means "skip forward in the buffer over the next W character
positions",

61

(b)

The form - 0 W means "skip backward in the buffer over the next W
character positions. If W is large enough to cause repositioning to the
left of byte 0 of the buffer, the meaning is "skip back to byte 0 of the
buffer".

When editing'specifier, hollerith:constant is used with an encode:statement, the
meaning is "insert the character string contents of the constant into the buffer". When
used with a decoderstatement, the meaning is "skip forward in the buffer a number of
character positions equal to the length of the constant". When the editing'specifier
W 8 C is used with an e ncode: state me nt, the meaning is "insert W spaces into the buffer";
wFien used with a decoderstatement, the meaning is "skip forward in the buffer W character
positions".
3.2.2.11.3.5

Description of Iterator

When iterator is used in the conversion'or'editing'specifier form
iterator 9 (0 specification'list 0)
it has the effect of replicating the contents of the parenthesized specification'list
that number of times specified by the value of iterator. Thus 38(5A2/ 3, 41) will produce
the same result when processed by PFORM as 5A2, 3, 41, 5A2, 3, 41, 5A2, 3, 41.
3.2.2.11.3.6

Execution of Encode: and Decode:Statements

The execution of encode: and decode:statements with either fixed:field: or free:field:
conversion:clauses takes place under the supervision of the format processor PFORM.
3.2.2.11 .3.6.1

Fixedrfield Execution

This paragraph describes the execution of encode: and decode:statements with fixedrfield:
conversionslauses. The action of PFORM causes three "pointers" to be manipulated.
The buffer pointer points to a character position in the buffer. The format pointer points
to a conversion'or'editing'specifier in the formatrvariable. The list pointer points to a
fixed:field:list:element in the fixedrfieldrllst. The bjffer is said to be exhausted if the
buffer points to the right of the rightmost buffer character position. The fixed:field:list
is said to be exhausted if the list pointer points to the right of the rightmost fixed:field:
l?st:element. The format:variable is said to be exhausted if the format pointer points to
the right of the rightmost conversTon'or'edi ting'specifier. Note that in the following
description, it is assumed that the format:variable data has the form specified by
specification'list; if not, the resultant action is undefined. The sequence of events,
which take place when an encode: or decoderstatement with a fixed:fieldrconversionrclause
is executed, is as follows:

62

(a)

(b)

(c)

(d)

(e)

(f)

PFORM sets the buffer pointer to point to byte 0 of the buffer, the format
pointer to point to the leftmost conversian'or'editing specifier in the format'
variable, and the list pointer to point to the leftmost fixed:field:list: element
of the fixed:Field:list.
If the conversion'or'editing'specifier specified by the format pointer is an
editing^specifier, the action called out by it is performed (resetting the
buffer point by the value W) and control is passed to step (e). Otherwise,
control is passed to step (c).
If the conversi on'or'edi ting'specifier is an iterated sub-expression (form:
iterator 8 (9 specification'list 6) ), it is, in effect, replaced by its expansion
as described in 3.2.2.11 .3.5, and control is passed to step (b). (No pointer
is altered) Otherwise control is passed to step (d).
The conversi on'or'edi ting'specifier is a conversi on'specifier. Any subscript
associated with the fixed:field:list:element specified by the list pointer
is evaluated and the conversion specified by the conversion'specifier
is performed using that fixed:field:list:element. This causes the buffer
pointer to be modified by the amount W. Then, both the list and format
pointers are advanced one position toTrie "right" and control is passed
to step (e).
If the formahvariable is exhausted, PFORM returns control to the statement
following the encode: or decode statement. The same action is taken if
the fixed:field:list is exhausted. If the buffer, fixed:field:list, and format:
variable are not exhausted, control is passed to step (b). If the fixedtfieldrlist
and the formahvariable are not exhausted, control is passed to step (f).
If a service:call has been supplied in the fixed:field:conversion:clause, it is
operated. On completion of the service:call execution, PFORM sets the
buffer pointer to point to byte 0 of the buffer and passes control to step (b).

It should be noted that the primary purposes of the service:call are to allow the programmer
the facility for refilling the buffer (decodestatement) as when converting card reader records,
or to output the buffer, as to a line printer (encode:statement).
3.2.2.11.3.6.2

Free:field Execution

This paragraph describes the execution of encode: and decode statements with
free:field:conversion:clauses.
3.2.2.11.3.6.2.1

Free:field Decode statement Execution

The actions taken by PFORM in the execution of the decode:statement in the order
shown are:
(a)

A "virtual" fixed:field:list is constructed by PFORM from the free:field:list.
This construction takes place by moving left to right through the free:field:list

63

copying the named;variables where they are found and replacing each
table:name and array:name with a list of subscripted item:names. In the
case of a table:name, the item list is composed of sublists the number of
which is governed by the current value of the table NENT. Each sublist
is composed of the table:item:names, subscripted by a constant, in the same
order that they appeared between the BEGIN and END in the table:declaration.
The subscripts of the table:?tem:names in a given sublist are the same value;
subscripts for the table:item:names in different item sublists increase from
0 to NENT (table:name) - 1 as the sublists appear from left to right. (Each
sublist corresponds to a table entry) Note that all item:names between the
BEGIN and END brackets of the table:declaration will appear in the sublist
for each entry, regardless of any overlaying which may have been specified.

(b)

(c)

In the case of arrays, a list of subscripted arrayingmes replaces the
array:name; that list contains the same number of subscripted array:names
as there are elements in the array. Subscripts of the array:names vary
in such a way that the named:subscripted:array elements appear in the same
left to right order that would occur if the constants of an array:declaration
for the particular array were replaced by their correspondent subscripted
array:names.
A virtual formativariable is constructed. This formahvariable contains
only conversion'specifiers; the number of conversion'specifiers equal the
number of named:variables In the virtual fixed:field:list constructed in (a).
The conversion type is generated on the basis of the item:descriptions of
the named:var?ables. The parameter d is established as zero; hollerith
conversion'specifiers are established as right-justified.
Now, in effect, PFORM substitutes the virtual format:variable into the
free:field:conversion:clause of the decode:statement and replaces the
free:field:list with the virtual fixed:field:list in such a manner as to
transform the free:field:conversion:clause into a fixed:field:conversion:clause.
Then, PFORM executes the transformed decode statement exactly as it executes
any decode:statement with a fixed:field:conversion:clause, except that the
field width W is determined dynamically as PFORM sweeps the buffer from
left to right. Each string of consecutive non-blank characters encountered
in the buffer is taken as a field of length (W) which is the number of ^non-blank)
characters in the string.

3.2.2.11.3.6.2.2

Free:field Encode statement Execution

The actions taken by PFORM in the execution of the encode:statement In the order
shown are:
(a)

A virtual f?xed:f?eld:list is constructed in exactly the same manner as
described in 3.2.2.11.3.6.2.1 (a).

64

(b)

A virtual format:variable is constructed on the basis of the item:
declarations of the named:variables in the virtual fixed:field:lisr.
The formattvariable contains a number of conversion 'specifiers
equal to the number of named:variables in the virtual fixed:field:list.
For a given conversion type, the field width W (and th~e
paramater d) are fixed but implementation dependent. In addition
to conversion 'specifiers, editing 'specifiers are inserted into the
virtual format:variable.
These editing'specifiers are selected in such a way as to guarantee
that:
•

•

•

(c)

3.2.2. 11.4

for named:variables in the free:field:list, the decode:
statement will produce the variable:name followed
by an equal :sign followed by the value
for table:names appearing in the free:field:list, the
decode:statement will produce, each in a different
buffer image,
the table:name
the names of each table:item, as if in a
column header
the value of each item for a given entry
with the entry number
for array:names appearing in the free:field:list, the
decode:statement will produce, each in a different
buffer image,
the array:name, plane number, and column
count for each column in the plane
each row in the plane
(Planes are repeated as often as required.)

PFORM now substitutes the virtual formahvariable into the
free:field:conversion:clause of the encode statement and replaces
the free:field:I ist with the virtual fixed :field :1 ist in such a manner
as to transform the free:field:conversion:clause into a fixed:
fie Id conversion :clause. Then PFORM executes the encode:
statement exactly as it executes any encode statement with a
fixed :fie Id conversion :clause.
Example

The example in this section illustrates the various facilities provided by JIO and
a hypothetical set of standardized application Specific Service Routines.

65

These Service Routines consist of a family of IOCS (Input/Output Control System)
procedures and a family of I OBS (Input/Output Buffering System) procedures.
The IOCS routines appear as service:calls in the fle:declarations. They cause
information to be moved between internal buffers and the io:lists in file manipulation
statements. The IOCS family calls upon the IOBS family to transmit information
between the buffers and tapes or disks by use of tape drives and disk drives. The
following facts serve to clarify the example:
•

•

•

•

There are 15 transmission devices in the hypothetical system.
These are devices 1 through 15. Device 0 is the central
processor itself. Devices 1 - 7 are tape drives. Devices
8-15 are disk drives.
There are two files which are available to the programmer.
These are SYSINP, the system input file, and SYSOUT,
the system output file. SYSINP and SYSOUT are, respectively,
permanently assigned to tapes 1 and 2.
IOCS and I OBS make reference to five (global) tables.
FPT (File Parameter Table) contains file parameters. FPTW
is a like table with the same structure as FPT. FPTW is a
"working" file parameter table. DFT is a device/file table.
There is one entry for each device. In a given entry, the
item DFA is "true" if the device whose number is the ordinal
of the entry is assigned to a currently opened file. If DFA
is true, DF contains the value of the 'FILENUM which was
generated by PFILE for that file. File buffers are always
maintained in a special (global) table called SYSBUF'TABLE.
A buffer for a file is allocated in SYSBUF'TABLE by means
of a system function called RESERVE'SYSBUF; the example
assumes that SYSBUF'TABLE never runs out of space. (Note
that the full computer word of this system takes 32 bits — each
SYSBUF'TABLE entry is one 32 bit word in length.) The
table BFT (Buffer/File Table) relates the index of the first
SYSBUF word of a file buffer to the 'FILENUM of the file;
the ordinal of a BFT entry is, in fact, the 'FILENUM value.

The I OCS and IOBS Service Routines shown adhere to the following conventions:
•

•
•

Both functional and representational records are fixed length.
A representational record may be a block of one or more
functional records, but the block must always contain the
same number of functional records.
A buffer for a file consists of the number of words in a
representational record plus one word.
The first word of the buffer is a buffer control word; its value
is always the device status as determined by the device
procedure STAT'CHECK.
66

•
•
•

No multiple buffering is permitted; only one representational
record at a time may be maintained in a file buffer.
One and only one device is ever associated with a file.
Only 15 files may ever be currently opened simultaneously.
Reading always begins at the first record in the functional
record set and proceeds from record to record in the order
of increasing reference number; no backspacing is allowed.
POS is always assigned values from within the IOCS routines.

Note that, for the purposes of simplicity, many important details have not been
included in the example. It is for simplicity's sake also that the conventions
above are used. Thus, this example is purposefully simplified and is not to be
construed as a full-scale model for a set of Service Routines and is included on the
following pages.

67

EXAMPLE

START $
"FILE PARAMETER TABLE"
TABLE FPTV 100 S $
BEGIN
ITEM FILE NAME H 24 $ "NAME OF FILE"
BEGIN H(SYSINP) H(SYSOUT) END
ITEM FUNC'RECLENGTH I 15 U $
"NUMBER WORDS PER FUNC RECORD"
BEGIN 20 30 END
"20 WORDS = 80 CARD COLUMNS,
30 WORDS = 120 CHARACTER PRINT LINE"
ITEM FUNCS'PER'REP I 15 U $
"NUMBER OF FUNC RECORDS IN
REPRESENTATIONAL RECORD"
BEGIN 1 1 END
"SYSINP,SYSOUTARE UNBLOCKED"
ITEM BASE/NUM I 32 U $
"IF STORAGE IS DISK, BASE'NUM = DISK
ADDRESS OF ZERO-TH REP RECORD.
IF STORAGE IS TAPE, BASE'NUM = FILE NUM ON TAPE"
BEGIN 0 0 END
"SYSINP/OUT ARE TAPE, EACH FILE NUMBER 0 ON THE REEL"
ITEM DEVICE I 15 U $
"NUMBER OF DEVICE ATTACHED"
BEGIN 1 2 END
END "FPT"
"NOTE THAT THE PRESETS IN FPT ARE FOR SYSINP AND SYSOUT"
ITEM NENT'FPT I 32 S P 2 $
OVERLAY NENT'FPT = FPT $
"ESTABLISH NENT (FPT) AS 2 TO ACCOUNT FOR PREDEFINED SYSINP,
SYSOUT ENTRIES"
"NOW DEFINE A 'LIKE' WORKING FPT"
TABLE FPTW R I 6 S L $
"DEVICE/FILE TABLE — ONE ENTRY PER DEVICE"
TABLE DFT R I 6 S $
BEGIN
ITEM DF I 32 S $
"DF ($ DEVICE NUMBER $) = FILENUM OF ASSOCIATED FILE"
ITEM DFA B $ "DFA ($ DEVICE NUMBER $)
- TRUE IF DEVICE IS ASSIGNED TO A FILE, OTHERWISE FALSE
BEGIN "PRESET DFA TO FALSE"
00000000

oooooooo

8

END "PRESET"
END "DFT"
"BUFFER/FILE TABLE — ONE ENTRY PER CURRENTLY OPENED FILE"
TABLE BFT R | 6 S $
BEGIN
ITEM BFC I 32 U $
"BFC ($ 'FILENUMS) = INDEX OF FIRST SYSBUF
WORD WHERE BUFFERS AND CONTROL WORDS FOR Fl LE
'FILENUM BEGIN"
END
"SYSTEM BUFFER AREA"
TABLE SYSBUF' TABLE V^/S $
BEGIN
ITEM SYSBUF I 32 S $
END
"SYSINP AND SYSOUT ARE ASSUMED OPENED"
FILE AIRFIELD
MODE 9
OPEN lOCSOPEN'INP (H(AIRFIELD))
INPUT IOCSINP ( = AIRFIELD'STAT)
SHUT lOCSSHUT'lNP ( )$
ITEM AIRFIELD'STAT I 32 S $
"THE FOLLOWING THREE ITEMS AND THE AF'PARAMS TABLE CONSTITUTE THE
AIRFIELD FILE RECORD STRUCTURE"
ITEM AF'NAME H 8 $
"2 WORDS"
ITEMAF'LATFS
"1WORD"
ITEM AF'LONG F $
"1WORD"
TABLE AF'PARAMS V I 2 P $ "25 WORDS WITH NENT"
BEGIN
ITEM AF/PARAM'l I 32 S $
ITEM AF'PARAM'2 F $
END
"FUNCTIONAL RECORD LENGTH IS 29 WORDS"
"DECLARE SYSINP BUFFER"
ITEM SYSINP'BUF H 8 0$
"NOW, BRING IN THE REPRESENTATION PARAMETERS FOR AIRFIELD FILE FROM
SYSINP. THESE PARAMS ARE FREE FIELD. THE GROUP OF THEM CONSTITUTES
AN FPT ENTRY. THE PARAMS ARE
AIRFIELD
29
10
3
9
AIRFIELD IS THE HOLLERITH FILE NAME
29 IS THE WORDS PER FUNC REC
10 INDICATES THAT THE REPRESENTATIONAL RECORD IS A BLOC OF 10 FUNC RECORDS
3 MEANS THE FILE IS THE FOURTH FILE ON A TAPE REEL (0 - ORIGIN INDEXING)
9 MEANS TAPE DRIVE 9 IS THE DEVICE
69

"NOTE THAT IT IS A SIGNIFICANT FEATURE OF THE JSERVICE ROUTINES OF THIS
EXAMPLE THAT FILE PARAMETERS MAY BE 'BOUND' AT EXECUTION TIME"
"BRING IN FIRST SYSINP RECORD"
GOTO BUF'FILLER $
'DECODE SYSINP'BUF (,BUF'FILLER)
FILE NAME ($2$), FUNC'REOLENGTH ($2$), FUNCS'PER'REP ($2$),
BASE'NUM ($2$), DEVICE ($2$) $
CLOSE BUF'FILLER $
BEGIN
"THIS CLOSE KEEPS THE BUFFER FILLED (FROM SYSINP) FOR
THE 'DECODE STATEMENT ABOVE"
INPUT SYSINP "FILE RECORD TO" SYSINP'BUF $
END
"NOTE THAT FPT ENTRY 2 NOW CONTAINS THE AIRFIELD FILE PARAMS. IOCS
WILL TRANSFER THESE PARAMS TO AN ENTRY IN FPTW WHEN THE FILE IS OPENED.
IOCS AND IOBS WORK WITH THE PARAMS AS THEY APPEAR IN FPTW"
'OPEN THE FILE"
OPEN AIRFIELD MODE 0$
"READ FROM THE FILE"
INPUT AIRFIELD
AF'NAME, AF'LAT, AF'LONG, AF'PARAMS$
"CHECK FOR EOF"
IF AIRFIELD'STATEQ 3$
BEGIN "EOF CODE" END
IF AIRFIELD'STATEQ 2 $
BEGIN "BAD TRANSMISSION CODE" END

"THE FOLLOWING EXAMPLE ILLUSTRATES ANOTHER USAGE TO WHICH THE
'EXECUTE STATEMENT MAY BE PUT. THIS USAGE MONITORS ARITHMETIC OVERFLOWS'
'EXECUTE ENABLE (OVERFLOW) ($0$) OVF'l.$

'EXECUTE DISABLE (OVERFLOW) ($0$) $
"THE FIRST 'EXECUTE INFORMS THE CPU (DEVICE 0) TO BEGIN MONITORING FOR
OVERFLOWS. THE SECOND 'EXECUTE CAUSES OVERFLOW MONITORING TO BE
SUSPENDED. THE MONITORING IS PERFORMED FOR ALL STATEMENTS BETWEEN
THE TWO 'EXECUTES. OVF'l NAMES A CLOSE WHICH WILL BE INVOKED WHEN AN
OVERFLOW OCCURS"

SHUT AIRFIELDS
70

PROC lOCSOPEN'INP(NAME'OF'FILE) $ "OPEN INPUT SERVICE"
'ENTRANCE ICCSCPEN'OUT (NAME'OF'FILE) $ "OPEN INPUT SERVICE"
ITEM NAME'OF'FILE H 24 $ "HOLLERITH FILE NAME"
'ENTRANCE IOCSINP (=FILESTAT) $ "INPUT SERVICE"
'ENTRANCE IOCSOUT ( ) $ "OUTPUT SERVICE"
•ENTRANCE IOCSINS () $ "INSERT SERVICE"
'ENTRANCE IOCSDELO $ "DELETE SERVICE"
'ENTRANCE lOCSSHUT'lNP S "SHUT SERVICE FOR INPUT"
ITEM FILESTAT I 32 S $ "FILE STATUS FLAG"
BEGIN "IOCS COMPLEX"
"WORKING PARAMS"
ITEM FPT'INDEX I 32 U $
ITEM SYSIND I 32 S $
lOCSOPEN'INP.
"LOOK UP NAME'OF'FILE IN FPT TO FIND INDEX OF ENTRY WITH NAME'OF'FILE'
FOR I = ALL (FILENAME) $
BEGIN
IF FILENAME ($ 1$) EQ NAME'OF'FILE $
BEGIN
FPT'INDEX = I $
GOTO IOCSOPEN' I $
END
END
"NAME'OF'FILE NOT IN FPT — ERROR CODE HERE"
IOCSOPEN'1.
"NOW MOVE FPT ENTRY AT FPT'INDEX TO FPTW ENTRY AT 'FILENUM FOR LATER
EASE OF ACCESS"
ENTRY (FPTW ($ 'FILENUM $) = ENTRY (FPT ($ FPT 'INDEX $)) $
"NOW GO ASSIGN (AND POSITION) DEVICE AND RESERVE BUFFER SPACE
IOBSOPEN'INP()$
RETURN $
"END OF lOCSOPEN'INP^'
IOCSINP. "CODE FOR INPUT SERVICE"
"GET THE NEXT LOGICAL RECORD"
IOBSINP( = SYSIND) $
"WAS THERE A TRANSMISSION ERROR"
IF SYSIND EQ -1 $
FILESTAT = SYSIND $
"WAS THERE AN END OF FILE"
IF SYSIND EQ -2$
FILESTAT = SYSIND $
"TRANSMISSION WAS OK — NOW MOVE BUFFER TO IO
OPERAND (S) SPECIFIED IN INPUT STATEMENT"
TBL (SYSBUF, SYSIND, FUNC'REC'LENGTHW($'FILENUM $) ) $
RETURN $
"END OF IOCSINP"
71

lOCSSHUT'lNP. "ENTRANCE TO SHUT FILE"
IF DEVICE W ($ ' FILENUM $) LS 8 $
BEGIN "REWIND TAPE"
WAIT'SHUTo
'EXECUTE STAT'CHECK ( = TEMPI)
($ DEVICEW ( $ 'FILENUM $) $)$
IF TEMPI EQ 0 $ GOTO WAIT'SHUT $
"INITIATE REWIND"
'EXECUTE REWIND ( )
($ DEVICEW ($ ' FILENUM $ ) $
END
"NOW UNRESERVE DEVICE"
DFA ($ DEVICE ($ 'FILENUM $) $) = 0 $
RETURN $
"NOTE —
DEVICE PROCEDURE
STAT'CHECK ( = STAT)
IS PERFORMED INSTANTANEOUSLY
STAT = 1
IF DEVICE READY WITH NO ERRORS
= 2
IF DEVICE READY BUT LAST TRANSMISSION OPERATION
RESULTED IN ERROR
= 3
IF DEVICE READY BUT LAST TRANSMISSION WAS A
READ WHICH ENCOUNTERED AN END OF FILE MARK
= 0
IF DEVICE NOT READY
STAT TAKES ONLY 0 AND 1 AS VALUES IF THE LAST OPERATION ON THE
DEVICE WAS NOT A TRANSMISSION (e.g., REWIND)
PROC lOBSOPEN'INP ( ) "ASSIGN DEVICE AND POSITION"
'ENTRANCE IOBSINP ( = SYSBUF'INDEX) $
ITEM SYSBUF'INDEX I 32 S $
BEGIN "IOBS COMPLEX"
ITEM TEMPI I 32 U $
ITEM TEMP2 I 32 U $
"CODE FOR lOBS'OPEN'INP FOLLOWS"
"CHECK TO SEE IF DEVICE HAS ALREADY BEEN ASSOCIATED WITH A FILE"
IF DFA ($ DEVICEW ($'FILENUM$) $ ) $
BEGIN "IN USE"
"ERROR CODE HERE"
END
"NOW SET DFA TO SHOW DEVICE IS ASSIGNED TO FILE. ALSO SET DF TO VALUE
OF FILENUM OF ASSOCIATED FILE"
DFA ($ DEVICEW ($ 'FILENUM $) $) = 1 $
DF ($ DEVICEW ($ 'FILENUM $) $) = 'FILENUM $
"NOW FIGURE OUT HOW MUCH BUFFER SPACE TO GET"

72

TEMP 1 =

FUNCRECLENGTH W ($ 'FILENUM $) *
FUNCS'PER'REPW ($ 'FILENUM $) + 1 $
"GET INDEX IN SYSBUF OF FIRST WORD OF BUFFER COMPLEX FOR THIS FILE"
TEMPI = RESERVE'SYSBUF (TEMPI) $
"NOTE RESERVE'SYSBUF IS A SYSTEM FUNCTION DESIGNED TO ALLOCATE
SPACE, AS SPECIFIED BY AN INPUT PARAM, IN SYSBUF. THE VALUE OF THIS
FUNCTION AFTER EXECUTION IS THE SYSBUF FIRST WORD INDEX"
"SET THIS INDEX UP IN BFT"
BFC($ 'FILENUM $) = TEMPI $
"NOW DO DEVICE POSITIONING. IF TAPE, REWIND, IF DISK, DO NOTHING.
FIRST, WAIT FOR UNIT TO COME READY"
WAIT'O.
'EXECUTE STAT'CHECK ( = TEMPI)
($ DEVICEW ($ FILENUM $) $) $
"WAIT LOOP"
IF TEMPI EQ 0$
GOTO WAIT'O $
IF DEVICEW ($ ' FILENUM $) LS 8 $ "TAPE OR DISK"
BEGIN "TAPE, INITIATE REWIND"
'EXECUTE REWIND ( ) ($ DEVICEW ($ ' FILENUM $) $) $
"BEGIN WAIT LOOP"
WAIT'l. "STAT'CHECK IS INSTANTANEOUS"
'EXECUTE STAT'CHECK ( = TEMPI)
($ DEVICEW ($ ' FILENUM $) $) $
IF TEMPI EQ 0 $ GOTO WAIT'l $
"END REWIND WHEN TEMPI EQ 0"
"NOW INITIATE TAPE POSITIONING"
'EXECUTE
SKIP'FILES'FORWARD (BASE'NUM ($ 'FILENUM $))
($ DEVICEW ($ 'FILENUM $) $) $
WAIT'2. "WAIT TILL DONE --NOOP IF BASENUM = 0"
'EXECUTE STAT'CHECK ( = TEMPI)
($ DEVICEW ($ ' FILENUM $) $) $
IF TEMPI EQ 0 $ GOTO WAIT'2 $
RETURN $ "END OF SKIP'FILE'FORWARD"
END
"NOW START INPUT INTO BUFFER"
IOBS READ ('FILENUM, BASE'NUMW ($ ' FILENUM $) ) $
"NOTE BASE'NUMW ABOVE WILL NOT BE USED BY IOBSREAD IF DEVICE IS TAPE"
RETURN $ "END IOBSOPEN' INP"
IOBSINP. "ENTRANCE TO IOBS FOR 'INPUT' SERVICE CALL"
TEMP2 = REM (POS, FUNCS'PER'REPW ($ 'FILENUM $) ) $
"TEMP 2 NOW CONTAINS THE ORDINAL OF THE FUNCTIONAL RECORD IN
THE BUFFER"

73

IF TEMP2 NQ 1$
BEGIN "A READ WAS INITIATED PREVIOUSLY"
WAIT'INP.
IF SYSBUF ($ BFC ($ 'FILENUM $) $) EQ 0$
GOTO WAIT'INP $ "BUFFER IS STILL FILLING"
"WHEN DONE, TEST FOR EOF"
IF SYSBUF ($ BFC ($ ' FILENUM $) $) EQ 3 $
BEGIN
"CODE TO PROCESS END OF FILE"
END
"NOW TEST FOR TRANSMISSION ERROR "
IF SYSBUF ($ BFC ($ ' FILENUM $) $) EQ 2 $
BEGIN
"CODE TO PROCESS ERROR"
END
END "BUFFER IS FILLED"
"NOW COMPUTE BUFFER ADR"
SYSBUF'INDEX = BCF ($ 'FILENUM $) + FUNC'REC'LENGTHW ($ 'FILENUM $) *
TEMP2 + 1 $
"INCREMENT POS"
POS = POS + 1
$
"NOW TEST TO SEE IF BUFFER NEEDS FILLING"
TEMP 2 = REM (POS, FUNCS'PER'REPW ( $ 'FILENUM $)) $
IF REMEQ 0$
BEGIN
"IF DISK, COMPUTE NEW DISK ADDRESS AND STORE IN TEMP 2"
IOBS READ ('FILENUM, TEMP2 ) $
END
"RETURN —ALL DONE"
END "IOBSINP"
"READ COMPLETION ROUTINE"
PROC ENDREAD () $
ITEM TEMP I 32 S $
BEGIN
"FIND OUT WHICH DEVICE CAUSED INTERRUPT"
'EXECUTE WHICH ( = TEMP) ($ 0 $)
"DEVICE PROCEDURE 'WHICH' IS INSTANTANEOUS. IT ASKS THE
CPU 'DEVICE' WHICH OTHER DEVICE CAUSED THE LAST INTERRUPT.
THE ANSWER IS PLACED IN TEMP"
"NOW DO STATUS CHECK — PLACE STATUS IN BUFFER CONTROL WORD"
'EXECUTE STAT'CHECK
( = SYSBUF ($ BCF ($ DF ($ TEMP $) $) $) )
($ TEMP $)
"RETURN"
END
74

PROC IOBSREAD (NFILE, DISKADR)
ITEM NFILE I 32 S $
ITEM DISKADR I 32 U $
BEGIN
ITEM TEMPI I 32 S $
"FIRST SET BUFFER CONTROL WORD TO 0 -- BUFFER WILL BE FILLING WHEN WE
EXIT THIS PROC"
SYSBUF ($ BFC ($ NFILE $) $) = 0 $
"IS DEVICE DISK OR TAPE"
IF DEVICEW ($ NFILE $) LS 8 $ "TAPE"
GOTO TAPE'READ.
DISK'READ. "WAIT FOR DISK READY"
'EXECUTE STAT'CHECK ( - TEMPI)
($ DEVICEW ($ NFILE$)$)$
IF TEMPI EQ 0 $ GOTO DISK'READ $
"NOW INITIATE DISK READ -- NOTE THAT THE DEVICE PROCEDURE
READ DISK IS NON-INSTANTANEOUS"
'EXECUTE READDISK ( DISKADR, "DISK ADDRESS"
"NUM WORDS TO READ" FUNC'REC'LENGTHW ($NFILE$)*
FUNCS'PER'REPW ($NFILE$),
"CORE LOCATION OF BUFFER" *LOC ( SYSBUF) + BFC ($ NFILE $) + 1 ) $
"DEVICE" ($ DEVICEW ($ NFILES) $)
"COMPLETION ROUTINE" ENDREAD () $
RETURN $
TAPE'READ. "WAIT FOR TAPE READY"
'EXECUTE STAT'CHECK ( = TEMPI)
($ DEVICEW ($ NFILE$) $) $
IF TEMPI EQ 0 $ GOTO TAPE'READ $
"NOW INITIATE TAPE READ — DEVICE PROCEDURE IS NON-INSTANTANEOUS"
'EXECUTE READTAPE ( FUNC'REC'LENGTHW ($NFILE$)*
"NUM WORDS TO READ" FUNCS'PER'REP ($ NFILE$),
"CORE BUFFER ADDRESS" 'LOC (SYSBUF) + BFC ($NFILE$) + 1 ) $
"DEVICE"
($ DEVICEW ($ NFILE$) $)
"COMPLETION ROUTINE" ENDREAD ( ) $
"RETURN"
END "IOBSREAD"

75

3.2.2.12 The Stop:statement
The stop:statement has the form:
STOP 6 $
A stop:statement has the effect of terminating the sequence of executions initiated
when the main:program began executing. This is true whether or not the stop:statement
is executed in the main:program or in a closed subroutine subordinate to the ma in: program.
The stop:statement in a closed subroutine does not cause control to pass to the calling
program.
3.2.2.13 The Pause:statement
A pause:statement is:
PAUSE 8 statement:name 8
optional:service:call 8 $
When a pause:statement is executed/ the serv?ce:call, if included, is operated. Upon
completion of the service:call execution, the sequence of executions initiated when the
main:program began executing is suspended. This is true whether or not the pause:statement
was executed in the main:program or in one of the closed subroutines subordinate to it.
When execution is restarted by some external means, the first statement executed is the
one labelled by statement: name. Note that the execution of a pause statement which
has no serv?ce:call takes place in the same manner as above except, of course, that
there is no service:call operation. It is anticipated that a common use of the service:call
will be to output some sort of identification information (e.g. to the printer).
3.2.2.14 Rounded:assignment:statements
A rounded:ass?gnment:statement has the form:
numeric:variable 8 = 6
numer?c:formula 8 'ROUNDED 8 $
The rounded:assignment:statement produces exactly the same result when the evaluated
numeric:formula is assigned to the numeric:varioble as would be obtained if the numeric:
variable were declared in an item:declaration with the abbreviation R. (ROUNDED has
no effect if indeed numeric:variable was declared in an ?tem:declaration with the
abbreviation R.)

76

3.2.2.15 Extension to Program
Program means:
START 9 optionahorigin 9$
0 statement:list 9
TERM 9 optional:statement:name 0 $
or:
CLOSE 0 name 9
START 9 optionahorigin 9 $
statement:list 9 TERM 9 $
or:
START optionahorigin 9 procedure:declaration 0
TERM 0 $
The meaning of the first two forms is given in CED 2487.1 . The third form provides the
facility for compiling "stand-alone" procedures. The effect of optionahorigin is the
same as for the first two forms. The program defined by the third form has the same name
as the procedure:name in the procedure:declaration. The program may also be referenced
by the alternate:entrance:name which appears in any alternate:procedure:entrance:
declaration. A program defined by the third form is invoked precisely as any procedure.
Also, the procedure:name and any alternate:entrance:names are category 3 names.
3.2.3

Nucleus Features

Based on the criteria as described in Section 1 (1.3) and the users responses to the
JOVIAL Application Questionnaire and Interview questions (contained in Appendix 3)
as summarized in Appendix 2 and 4, respectively, the following features are recommended
for inclusion in the nucleus. The references are to the appropriate sub-sections of the
JOVIAL Application Questionnaire (JAQ), Section 3 of this report (Section 3), Interview
Response Analysis in Appendix 4(1), and the Approach for Change (AFC) . Specification of each feature is contained in the JOVIAL Application Questionnaire for the current
JOVIAL features considered and in Section 3 for recommended extentions. Justification
for inclusion of features as a nucleus is contained in Appendix 2 (which is organized
by AFC numbers) and Appendix 4 (which is organized by I numbers).

11

Feature
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
11)
12)
13)
14)
15)
16)

17)
18)
19)
20)
21)
22)
23)
24)
25)
26)
27)
28)
29)
30)
31)
32)
33)
34)
35)

Item Type Hollerith
Hollerith Formula
Character Data Size Attribute
Operations on Literal Data
Explicit Size Attribute
Structure Table
Rigid
Table Variability Attribute
Table Variability Attribute
Variable
NENT
BYTE
Subscripting - Expressed as Complex
omplex
Numeric Formula
Subscripting - Nested
Table Entry Referencing
(ENTRY only may be used)
Computer Representation of Data
ata
Computer Representation of Numeric
Items and Constants
Octal Constants, Hexadecimal Constant
(Must implement one or the other,
may implement both)
Basic Table Structure Attribute-Parallel
Basic Table Structure Attribute - Serial
Defined (Table) Packing
Independent Overlay Declaration
'LOC
Parenthesized Numeric Formulas
Mixed Item Types in Numeric Formulas
Item Type Integer
Item Type Fixed Point
Item Type Fixed Point - Scale in
Declaration Blank or Zero
Item Type Floating Point
Sign Attribute
Prefix + and Precedence of Unary Operators
(Alteration of precedence of +, -)
Exponentiation Operator (Noration**only)
Relational Formulas (excluding chained)
Boolean Formulas - with AND, OR, NOT
Item Type Boolean
Numeric Item Type Conversion in the
Assignment Statement
1

78

JAQ/Sec. 3

AFC/I

J3.5.1.1.11.1
J3.5.2.5
J3.5.1.1.14
3.2.2.4
J3.5.1.1.14
J3.5.1.3.1
J3.5.1.3.4
J3.5.1.3.4
J3.5.2.2.2.6
J3.5.2.2.2.2

Al.1.1.1
Al.1.1.1
Al.1.1.3
1 3,17
Al.1.3
Al.2.2
Al.2.3
Al.2.3
Al.2.3
A2.2

J3.5.2.2.1
J3.5.2.2.1

A2.4
A2.4

J3.5.2.6
J3.5.1.1.15

A2.5
A3

3.2.2.5

111

J3.5.1.1.1
3.2.2.1
J3.5.1.3.5
J3.5.1.3.5
J3.5.1.3.6.2
J3.5.1.7.1
J3.5.2.1.1
J3.5.2.3.1
J3.5.2.3.5
J3.5.1.1.4
J3.5.1.1.5

A3.1,1 12
A3.3
A3.3
A3.5
A3.6
A3.8
A4
A4
A4
A4

J3.5.1.1.5
J3.5.1.1.9
J3.5.1.1.6
J3.5.2.3.2

A4
A4
A4.4
A4.5

3.2.26
J3.5.2.3.3
J3.5.2.7
J3.5.2.8
J3.5.1.1.12

1 17
A4.5
A6.1
A7.1
A7.2

J3.5.3.1

A8

Feature
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
3.2.4

Boolean Assignment Statement
Item Preset
Table Preset
Compound Statement
GOTO Statement
STOP Statement
IF Statement
FOR-loop-One Factor
FOR-loop-Two Factor
FOR-loop-Three Factor
FOR-loop-Decrementing
Test Statement
Program
Procedure (Excluding Function)
Function
Alternate Entrances to Procedures
and Functions
Close
Return Statement
Direct Code
Data Editing and Conversion
Multiple Statement Labels
ALL
COMPOOL

JAQ/Sec. 3

AFC/I

J3.5.3.1
J3.5.1.6.1
J3.5.1.6.2
J3.5.4.2
J3.5.5
3.2.2.12
J3.5.5.3
J3.5.5.5
J3.5.5.5
J3.5.5.5
J3.5.5.5
J3.5.5.5.6
J3.5.4.10
J3.5.4.6
J3.5.4.8

A8
A8.1
A8.1
A9.1
A9.2
A9.3J 24
A9.4.1
A9.5
A9.5
A9.5
A9.5
A9.5.4
A9.6,A9.
A9.6.1
A9.6.1

3.2.2.9
J3.5.4.5
J3.5.5.6
J3.5.4.4
3.2.2.11.3
J3.5.4.3
J3.5.5.5.5
J3.5.6.1

1 28
A9.6.2
A9.6.3
A9.8
1 31
All.2
A12.5
A12.6

Optional Features

Based on the same criteria and data as indicated in Section 3.2.3 above, the following
features are recommended for the optional category.
Feature

1)
2)
3)
4)
5)
6)
7)
8)
9)

Hexidecimal Constants
Simplified Hollerith Constant Form
User Definable Character Encoding
Scheme ('CHARCODE)
Item Type Status
Status Formulas (Must be implemented
together)
Explicit Status Size Attribute
Structure Array
NWDSEN
BIT
79

JAQ/Sec. 3

AFC/I

3.2.2.1
3.2.2.2

1 12
-

3.2.2.3
J3.5.1.1.13

1 2
Al.1.2

J3.5.2.5
J3.5.1.1.14
J3.5.1.2
J3.5.2.1.2
J3.5.2.2.2.1

Al.1.2
Al .1.3
Al .2.1
Al.2.4
A2.1

Feature

JAQ/Sec. 3

AFC/I

J3.5.1.3.6.1

A3.4

J3.5.2.3.4

A4.7

3.2.2.10
J3.5.2.7
J3.5.1.6.3
J3.5.3.2
J3.5.5.4
J3.5.5.2
J3.5.5.1
J3.5.4.6

1 16
A6.2
A8.1
A8.3
A9.4.2
A9.4.3
A9.4.4
A9.6.1

J3.5.4.6
J3.5.4.11
J3.5.1.1.2.2
J3.5.6.2
3.2.2.7
J3.5.1.1.3
3.2.2.8
J3.5.1.3.2
3.2.2.11.1
3.2.2.11.2
3.2.2.13

A9.6.1
A9.7
All .1
A12.1
1 35
A12.2
A12.2J 36
A12.4
1 33
1 32
125

21)
22)
23)
24)
25)
26)
27)
28)
29)
30)

Ordinary Packing (Dense only is allowed)
Absolute Value Operator
(ABS only is allowed)
Extended Precision Numeric Items
and Constants
Chained Relational Formulas
Array Preset
Exchange Statement
IFEITH/ORIF Statements
Index Switch
Item Switch
Close in Parameter List (of Procedure)
Statement Label in Parameter List
(of Procedure)
'PROGRAM Declaration
Item Declaration
Define Directive
Extended Define Directive
MODE Directive
Extended Mode Directive
Like Table Declaration
Device oriented Input/Output Module
Functional File Input/Output Module
Pause Statement

31)

Extension to Program ("Stand-alone" Procedure)3.2.2.15

10)
11)
12)
13)
14)
15)
16)
17)
18)
19)
20)

80

SECTION IV
ADDITIONAL RECOMMENDATIONS

4.1

Specific Study Topics

During the course of the interviews several unplanned for auxiliary topics of unusual
interest were discussed. Some of these subjects were concerned with general language
aspects, others with specific required features, and still others with implementation
constraints. Following is a list of the more important concepts raised in the discussions,
the details of which are included in Appendix 1 . DDI strongly recommends in-depth
studies of all of the concepts for possible inclusion in future JOVIAL language extensions.
4.2

General Concepts
1.

2.
3.

4.
5.

4.3

JOVIAL Input/Output - Many comments were made indicating that some
JOVIAL input/output specification should be included in the language.
DDI has included a set input/output specifications in the Extension Specifications, however, further effort is required to increase the comprehensiveness
of these specifications.
JOVIAL Library - It was recommended that a standard JOVIAL Source
Language Library should be generated and available to all users.
JOVIAL COMPOOL - It was proposed that the COMPOOL be rigidly
specified in the language rather than permitting individual interpretations
of the concept by the implementors of the JOVIAL language.
Real Time Concepts - It was suggested that statements facilitating real
time applications should be included in the language.
List Processing - It was proposed that some of the notions associated with
the concepts of list processing should be included in this language.

Specific Concepts

The following specific functions were recommended for inclusion in the JOVIAL language:
1 .
2.
3.
4.
5.
6.
7.

Bit string items with associated bit string operations.
Expanded data structuring and associated data referencing concepts.
Loader and Compiler Directives.
Implied subjects and objects in IF statements.
Expanded character set.
Multiple assignment statement.
Non-linear loop incrementing.

81

4.4

Language/Compiler Design Goals

During discussions the following general language and compiler design goals were
considered worthy of further investigation:
1.
2.
3.
4.
5.

Attainment of absolute machine independence.
Improved readability of JOVIAL computer programs.
Less verbose.
Separate function from functional software.
Compatibility with manufacturer software.

82

APPENDIX I
INTERVIEW MATERIAL

This appendix contains a list of the agencies and firms who participated in the study
together with information regarding their JOVIAL Application Questionnaire and
interview responses. DDI interviewed ten military agencies, two industrial firms,
and one non-military governmental agency in this study. Following is a list of those
organizations interviewed together with associated abbreviations that are used to
identify them throughout this and associated documents.
1 .

2.

3.

4.

5.

6.

7.

8.

ADC Computer Programming and Analysis Center
Ent Air Force Base
Colorado Springs, Colorado

-ADPAC

Computer Sciences Corporation
650 N. Sepulveda Boulevard
El Segundo, California

-CSC

Federal Aviation Agency
800 Independence Avenue, S.W.
Washington, D.C.

-FAA

FOCCPAC
U.S. Navy
Honolulu, Hawaii

-FOCC

Operational Program Maintenance Branch
4th Air Force Combat Center
Hamilton Air Force Base
San Francisco, California

-HAM

NAVCOSSACT
Washington Naval Yard Annex
Washington, D.C.

-NAVC

National Civilian Defense Computer Facility
Olney, Maryland

-NCDCF

Naval Electronics Laboratory
Command and Control Facility
San Diego, California

-NEL

83

9.

10.

11 .

12.

13

Defense Communication Agency
Naval Military Command System Support Center
Pentagon
Washington, D. C.

-NMCSSC

Headquarters NORAD
NHCP
Ent Air Force Base
Colorado Springs, Colorado

-NHCP

Rome Air Development Center
Griffiss Air Force Base
Rome, New York

-RADC

Headquarters SAC
Offutt Air Force Base
Nebraska

-SAC

Trans World Airways Data Processing Center
King Road
Rockleigh, New Jersey

-TWA

The selected organizations responded to the JOVIAL Application Questionnaire
(JAQ) in varying degrees of detail. Some responded qualitatively, some quantatively, and some not at all. Following is a summary of the responses to the JAQ
by the selected respondents:
1 .
2.

ADPACCSCFAA-

4.
5.
6.
7.
8.
9.
10.

FOCCHAMNAVCNCDCFNELNMCSSC
NHCP-

11.

RADC-

12.

SAC-

13.

TWA-

Complete quantitative response to three JAQ's.
No JAQ usage rates because of CSC's role as a
JOVIAL compiler writer rather than a JOVIAL user.
No JAQ usage rates were given; only qualitative
results were provided.
Complete quantitative responses to three JAQ's.
Complete quantitative responses to one JAQ.
Complete quantitative responses to three JAQ's.
Complete quantitative responses to one JAQ.
Complete quantitative responses to one JAQ.
Complete quantitative responses to one JAQ.
Responses received too late to be considered for
analysis.
Complete quantitative information was returned on
three of the four JAQ's.
Complete quantitative information was provided on
four JAQ's.
Because of a tight schedule, TWA did not complete
their JAQ.
84

Each of the numbered sections that follow contain information summarizing the results
obtained from each respondent. A complete description of the respondent is given,
his response to the JAQ is noted, any written interview material is included and notes
are provided that reflect general impressions gathered from the questionnaire and interview. The respondents are listed in each section according to the sequence indicated
above. Each of the sections containing data from the respondent is organized according
to the following outline:
1.
2.
3.
4.
5.
6.
7.

Organization ContactOrganization IdentifierNumber of JAQ's returned Date of Interview JAQ Response Notes Application -

8.

Interview Notes -

Particular application for specific agency.
Organization representative.
Organization abbreviation.
Self Explanatory.
Self Explanatory.
Comments about the response to the JAQ.
Information about each application
responded to in a JAQ.
Statements of actual interview responses or
interpretations of interview responses if
required.

1.0

ADPAC

1.1

Organization:

ADC Computer Programming and Analysis Center
ADPAC
Ent Air Force Base
Colorado Springs, Colorado

1.2

Contact:

Lt. Jan Feller

1 .3

Organization Identifier:

ADPAC

1.4

Number of JAQ's Returned:

4

1 .5

Date of Interview:

14 May 1968

1 .6

JAQ Response Notes:
Three of the JAQ's returned contain response data for three distinct subapplications. These are identified by ADPAC-1, ADPAC-2, ADPAC-3. There
is one compiler for all sub-applications. Compliance information was taken
from the JAQ for ADPAC-3.

1 .7

Application:
(1) Sub-application ADPAC-1
85

Sub-application Name:

Special Programs Section

Sub-application Description:
Data reduction and analysis for radar evaluation and SNOWTIME. The sub-application
includes editing, statistical calculation and data extraction. Sub-application currently
consists of 7 computer programs with more expected to be started in the near future.
Some computer programs were converted from COBOL.
Total Number of JOVIAL Statements:

5462

Sub-application Hardware Configuration:
Operating System:

See under ADPAC-2.

No information given.

Background:
JOVIAL was used because it was the language best suited for the project.
Average years experience of programmers: 3
Average years JOVIAL experience: 1
Dialect used: JOVIAL J3
Compilation speed: Not given.
Compiled code: Not relocatable.
(2)

Sub-application ADPAC-2

Sub-application Name:

SPACE TRACK

Sub-application description:
The objective of the sub-application is to maintain surveillance of all earth orbiting
objects.
Total Number of JOVIAL Statements:
Computer manufacturer and model

1400 (Approx.)
Philco 2000/212

High speed memory storage
Size
Word size if applicable

32K words
256K six bit bytes
48 bits

Input/Output devices
Drum
Manufacturer and model
Storage capacity
Quantity on this configuration

Bryant
10,000,0008 six bit bytes
2
86

Disc
Manufacturer and model
Storage capacity
Quantity on this configuration

0

Magnetic tapes
Manufacturer and model
Recording densities permitted
Quantity on this configuration

Ampex
14

Card punches
Manufacturer and model
Card punch speed
Quantity on this configuration of this type
Card reader
Manufacturer and model
Card read speed
Quantity on this configuration

0

IBM

Printer
Manufacturer and model
Printer speed
Quantity on this configuration

Philco
1,000 lines/min
1

Paper tape reader
Manufacturer and model
Tape read speed
Quantity on this configuration

0

Paper tape punch
Manufacturer and model
Tape punch speed
Quantity on this configuration

0

Operating system:
Name:
DELTA
Developer: SDC
Mode of operating system:

Batch Processing and Real Time

Background:
•
•
•

JOVIAL was used because it was the official Air Force language.
Average years experience of programmers: SDC - 5, Military - 3
Average years JOVIAL experience: SDC - 5, Military - 1

87

Dialect used:

JOVIAL J3

Compilation speed:
Compiled Code:
(3)

Not given.

"Applications are all RPL".

Sub-application ADPAC-3

Sub-application Name:

Satellite Archives - Storage and Retrieval

Sub-application Description:
The purpose of the sub-application is to store and retrieve satellite observations and
element sets. The current Archives system programs are for the most part written in
TAC. Only one short program has been written in JOVIAL but plans for the future
involve rewriting of all programs in JOVIAL.
Total Number of JOVIAL Statements:

278

Sub-application Hardware Configuration:

See under ADPAC-2

Operating System:
Name: COSMOS
Developer: SDC
Mode of operation:

Batch processing

Background:
•

JOVIAL was used to stay compatible with other projects and because it was the
official Air Force language.
Average years experience of programmers: 6
Average years JOVIAL experience: Not given
Dialect used:
J3
Compilation speed:
Not given
Compiled code: Not given

1.8

Interview Notes:
The following written information was received at the time of the interview.

General:
•

We have three areas of application. The largest, 80% of our JOVIAL programs
is SPADATS(496L). The Special Projects Section has 15%. The smallest is
Archives with 5%.
88

•

Technical data on the status of our compiler is contained in the Archives booklet.
A description of JOVIAL library routines and diagnostic messages is included.
Also included is a sample output and user instructions for the utility routine
REFORM.

•

Conclusions: Judging from our usage of JOVIAL two subsets would seem to be
needed. One an extension of AFM 100-24 JOVIAL to facilitate scientific data
analysis; the second a limited version without many of the features of AFM 100-24
for use in specific applications within real time systems which require extremely
efficient code and minimum core utilization. It would also seem desirable to
include specifications and minimum number of routines for the JOVIAL library.

HQ ADC, ADPAC, Special Programs Section
•

JOVIAL programming in the Special Programs Section started in August 1967.
The first implementation was the Radar Evaluation System. A limited version had
been implemented in COBOL. It was desired to include more extensive calculations, which could not be done in COBOL. Both FORTRAN and JOVIAL were
considered. Because of the greater power and flexibility of JOVIAL it was
selected.

•

The JOVIAL features which were significant in this decision were:
The ability to move and use data by BYTE modification.
The ability to pack data in core tables and in tape records.
The ability to imbed arithmetic operations in subscripting and in operations,
such as, BYTE($10 + A*3$) where A is a loop variable.
The ability to overlay data.
The define statement.
The ability to do manual conversion of input data enabling the same data fields
to be used for both numeric and alphabetic data.

•

Further JOVIAL programs are being written for the SNOWTIME data analysis
series. Plans call for placing the ADPAC status report in JOVIAL.

•

The following changes were proposed for JOVIAL:
Add carraige control option for printed output.
Expand features for conversion of numeric input/output to include signs and
decimal points.
89

Greater detail in diagnostics. Too many merely state that there is an error
without specifying the exact problems.
HQ ADC, ADPAC SPACE TRACK 496L
Computer programs are mostly in TAC (Philco 2000 assembly language) at the present.
As major changes are made to the computer programs they are being written in JOVIAL.
The following changes to JOVIAL were indicated to be highly desirable:
The capability to overlay COMPOOL defined items and tables with program defined
items and tables.
For integer by integer division the fractional bits should be preserved according
to the resulting defined integer.
JOVIAL I/O should include the option of having automatic conversion of numeric
items, like that in FORTRAN.
AFM 100-24 should include specifications for a standard JOVIAL library.
There should be a JOVIAL subset which is more limited than that of AFM 100-24.
The purpose being to produce extremely efficicient code, both core size and
execution time. This is needed for real time systems.
A traceback routine should be included for program error halts to aid in determining
the cause.
GEN2 diagnostics should give the line number.
When possible diagnostics should indicate the specific column which contains the
error.
Other Comments:
In addition to the written information, ADPAC personnel made the following statements:
•

It would be desirable to have the facility to apply the BYTE functional modifier
to an operand designated by the ENTRY functional modifier:
BYTE ($3,5$) (ENTRY(TABLE'NAME,3))

•

The NENT word should be located in some place other than word 0 of the table.

•

One ought to be able to use parentheses instead of the subscript brackets ($ and $).

90

•

It is felt that more should be said in AFM 100-24 about COMPOOL and Libraries.

•

A Hollerith constant form. - H(characters) ought to be provided.

•

A facility for specifying assignment without automatic conversion should be
supplied.

•

The FOR loop feature should be set up in such a way as to provide for testing prior
to the first iteration .

•

"Stringed" item declarations are desired:
ITEM AA, BB, CC

I

48 S $

•

Arrays with rows and column lengths and dimensions variable at run time would be
helpful.

2.0

CSC

2.1

Organization:

Computer Sciences Corporation
650 N. Sepulveda
El Segundo, California

2.2

Contact:

Mr. Terry Dunbar

2.3

Organization Identifier:

CSC

2.4

Number of JAQ's Returned:

1

2.5

Date of Interview:

11 July 1968

2.6

JAQ Response Notes:
The JAQ returned contained no usage rates. This is because, for the purposes of
this study, CSC was considered only in its role of compiler writer; the implementation information in the returned JAQ pertains to a compiler produced by means of
CSC's GENESIS system for the IBM System 360.

Compiler Hardware Configuration:
IBM System 360
Storage (Memory) 256K 8 bit bytes
Operating System:
Name: OS
Developer:
IBM
Mode of Operating System:

Batch Processing
91

2.7

Application:

Not applicable

2.8

Interview Notes:
Because CSC was being interviewed in the role of compiler implementor, the
usual interview format was suspended. Instead, an informal discussion regarding
the implementation of features took place. Acknowledgement is made to
Mr. Dunbar for his excellent remarks in this area.

•

The standard as described in AFM 100-24 implies an "all or nothing" implementation effort. Implementation "levels" or a feature or function module approach
would be preferable.

•

To achieve full compliance with AFM 100-24's "signed magnitude" fixed point
number convention is an extremely expensive proposition.

•

Full implementation of fixed point representation is very expensive.

•

Implementation of rounding is expensive.

•

Extended capabilities should be provided for "modelling" the computer memory,
other than simply the notion of "words". System 360 has, in effect, four addressable units (bytes, half-, full-, and double-word) and also the notion of word
boundaries, for example. An extended memory modelling capability would probably result in the generation of more efficient object code.

•

Standard JOVIAL J3 array presetting is inefficient in that array elements are
input in an order differing from the allocation order; and that there is no way for
the programmer to "skip" overelements he does not desire to preset.

•

AFM 100-24 should be rewritten. It is overly cumbersome for the compiler
implementor; also certain "holes" exist in the presentation.

•

In general, there are too many specific representation requirements to which the
implementor must adhere. Frequently, a property of a given machine will lend
itself to a more economic representation than that required in AFM 100-24.

In addition to the above remarks, Mr. Dunbar has provided a list of loop-holes and
ambiguities which CSC has encountered in implementing JOVIAL compilers based on
AFM 100-24. This list shows interpretations which CSC has made in order to implement
compilers. Also shown are certain comments regarding the JOVIAL J3 compiler specifications, not included in this study. DDI feels that this list is very important in that
it sheds light on problem areas which only an implementor might be expected to discover.
For this reason, we incorporate the following comments from CSC into this report.

92

CED-2400 as a contractual document leaves much to be desired as there are many areas
which are not covered at all or are ambiguous. The following is a list of these areas
and the interpretation we (CSC) are taking. Also included are exceptions that must be
taken because of incompatibilities with the hardware. Each item on the list references
CED-2400 by section and page.
1)

The floating point description has an error in it; part of a sentence is missing,
leaving both the signicand and the exrad undefined. We use the hardware representation. (2416.7; p. 10)

2)

Null literal constants, i.e., 0 H(), 0 T(), 0(), are not defined.
all to be illegal. (2418.5, .8, .9; p. 11).

3)

The sign-magnitude effect is incompatible with most hardware. As filler bits
arose as a complement to sign-magnitude, the compiler will ignore them and
treat the bit to the left of BIT($ 1 S) as BIT (S 0 $) for reasons of efficient object
programs. (2419.1, .2,2426.6; p. 12,16).

4)

The precision and range of index variables are not defined. It should be stated
that each implementation specify precisely these attributes in the form of an
implied item declaration:
ITEM letter I n S $. (2426.5; p. 16).

5)

ODD (variable) shall be interpreted as the rightmost bit of the variable (2429;
p. 17-8).

6)

Index computation should not follow rules which differ from normal arithmetic
computation. It is unreasonable to compute a floating constant + fixed variable
as fixed. (2434.6; p. 20).

7)

Floating point rounding is not consistent with fixed-point rounding.

8)

LOC of a TABLE is not described clearly since it is defined in terms of a 'control
register1 which is undefined. We are defining LOC (TABLE) to be the address of
the first word in ENTRY (TABLE ($ 0 $)). (2434.10, .11; p. 20).

9)

Scaling
division
formula
clause.

We define them

(2434.6; p.20),

formulas are not complete nor well defined. In particular scaling for
has a missing formula, i.e., IR for A/I. Our interpretation changes
2435.11 (11) to read IR=IN+AD+1-MD., thus deleting the qualifying
(2435; p. 21-2).

10)

As a point of interest, it should be noted that mixing of literal formula types in
relational expressions, assignments, I/O, and presets involve no conversions.
(2437.2, 2442.4, 2443, 2447-9, 2470; p. 23,26-7, 29-31, 45).

1 1)

Although ENTRY variables are not excepted, they are meaningless as actual parameters. (2446.1a., .4a.; p. 28).
93

12)

Since "type" is referred to in several contexts without a definition, it is not
apparent whether it is up to the programmer or the compiler to ensure parameter
compatibility. A technical interpretation of CED-2400 would indicate that
actual and formal parameters must agree, thus requiring no conversions. However,
based upon historical JOVIAL and what we feel to be the intent of the author,
the compiler will generate code to ensure type compatibility for value parameters.
CED-2400 does not define the distinction between the data parameters passed by
name (tables and arrays) used as input parameters and those used as output parameters. We choose to make no distinction. (2446.7. .8; p. 28-9).

13)

Since the
mentation
for:clause
(2455; p.

14)

Array presets should be specified in allocation order and expanded. (2467; p.43).

15)

Type matching for literal item presetting seems overly restrictive. We intend to
permit complete mixing of literal values with literal items. (2470; p. 45).

16)

For defined entry table items, we will ignore the packing specifier. This interpretation was chosen to alleviate the problem arising when the specified allocation conflicts with the packing specifier. (2474-5; p. 50-2).

17)

CED-2400 does not define COMPOOL resolutions of like table items. Given an
explicit COMPOOL declaration and an implicit item declaration via a like table
declaration within the source program, resolution will be as follows:
a) If a reference to the name occurs before the declaration, the COMPOOL
declaration is used and a duplicate declaration exists.
b) If the like table declaration occurs before the reference, the implied
declaration holds. (2476; p. 53).

18)

Our interpretation of CED-2400 is that the manual precludes the use of optional
origins. (2479, 2487; p. 55,60).

19)

The index switch list syntax permits at most 2 consecutive null switch points. We
feel this is an error and not the intent of the author. The compiler will not restrict
the number consecutive null switch points except to the maximum switch points.
(2481.1; p. 56).

20)

Since the constants of an item switch list must be possible values of the switch
item, we interpret CED-2400 to mean that no conversions will be necessary.
(2482.1,.4; p. 56).

21)

Although it is not excepted by the manual, we will not permit presetting formal
parameters or a function result item. (2484-5; p. 57-9).
94

manual is not clear as to whether iteration means looprvariable increor iterative execution of the loop body, the definition of a onerfactor:
is ambiguous. In our compiler no iteration or looping will occur.
33-4).

22)

An "is" is interpreted as an "it".

(2484.9; p. 58).

23)

CED-2400 refers to a name before START; we interpret this to mean only the case
of a compile above CLOSE. (2487.16., 2489.3)

in addition the following exceptions are taken to Part 1 of CED-2400 on compiler
specifications.
1)

All mention of library, procedure library and library maintenance programs should
be taken in light of the fact that the standard computer manufacturer's operating
system, library and library maintenance will be used.

2)

Sequence numbers will not be assigned to statements as described; instead card
numbers will be used for error reporting. (3.2.1.8; p. 69)

3)

The compiler will not produce stand-alone programs.

4)

Control input will obey computer operating system, not JOVIAL, conventions.
(3.2.5; p. 70).

5)

Error detection, reporting, and correction will not be as described in CED-2400.
Error messages referencing card numbers will be output rather than error numbers.
Not reporting errors caused by a previous error is not always possible. Calls to
an error monitor procedure will not be generated. (3.2.6; p. 70-1).

6)

Equipment, operator, and monitor - error checking will be performed by and obey
computer operating system conventions.

7)

Compiler capacities and efficiency will be as described in the contract (3.2.9,
3.2.10; p. 71-2).

8)

Debug aids (listings) will not necessarily be as described in CED-2400. Alter update
will be performed by standard computer operating system routines. (3.2.11; p.72-4).

9)

COMPOOL will not conform exactly to the specifications in CED-2400. Arrays will
be permitted in the COMPOOL. COMPOOL addresses will be determined by the standard compiler algorithms and will be relocatable. There will be no COMPOOL
disassembly program as such. A storage map will be produced, optionally, as
part of the assembly process.

10)
3.0

(3.2.4; p. 70).

Documentation and quality assurance will be as specified in the contract (3.5,4.;p.75-79).
FAA

95

3.1

Organization:

FAA
800 Independence Avenue, S.W.
Washington, D.C.

3.2

Contact:

Mr. Donald Scheffler

3.3

Organization Identifier:

FAA

3.4

Number of JAQ's Returned:

1

3.5

Date of Interview:

9 May 1968

3.6

JAQ Response Notes:

•
Application name: Not given
•
Application description: Not given
NOTE:
It was learned at interview that the chief use of JOVIAL in the FAA is in
the National Air Space Program.
3.7

Application:

Hardware Configuration:
Computer manufacturer and model

IBM 7090

High speed memory storage
Size
Word size if applicable

32K words

Input/Output devices
Drum
Manufacturer and model
Storage capacity
Quantity on this configuration

None

Disc
Manufacturer and model
Storage capacity
Quantity on this configuration

None

Magnetic tapes
Manufacturer and model
Recording densities permitted
Quantity on this configuration

96

Card punches
Manufacturer and model
Card punch speed
Quantity on this configuration
Card reader
Manufacturer and model
Card read speed
Quantity on this configuration
Printer
Manufacturer and model
Printer speed
Quantity on this configuration
Paper tape reader
Manufacturer and model
Tape read speed
Quantity on this configuration
Paper tape punch
Manufacturer and model
Tape punch speed
Quantity on this configuration
Operating System:
Name: FORTRAN Monitor System
Developer:
IBM
Mode of Operation: Batch processing
Background:
JOVIAL was used because it was regarded as the language best suited for the project.
Average years experience of programmers: 5
Average years JOVIAL experience: 2
Dialect used: JOVIAL J2
Compilation speed: Unknown
Compiled code: Not relocatable .
Total Number of JOVIAL Statements:
NOTE:

Not given.

No counts or estimates of usages were given in the JAQ returned. Qualitative
phrases were used instead. We have quantified these phrases, as shown below:

97

Occasionally
Frequently
Almost Always
Never
Generally
Constantly
Always
None
Not Available
Rarely
Infrequently
Continually
3.8

.2
.8
.9
0
.5
.9
.9
0
0
.1
.2
.9

Interview Notes:
FAA feels it would be desirable to allow:
IF AA EQ BB,CC,DD
for IF AA EQ BB OR AA EQ CC OR AA EQ DD

4.0

FOCCPAC

4.1

Organization:

FOCCPAC
U.S. Navy
Honolulu, Hawaii

4.2

Contact:

Capt. Bishop

4.3

Organization Identifier:

FOCC

4.4

Number of JAQ's Returned:

4.5

Date of Interview:

4.6

JAQ Response Notes:

22 May 1968

Each of the two JAQ's returned contains responses for two distinct sub-applications.
These are identified by FOCC-1 and FOCC-2. Both run on the same computer and
use the same compiler. Compliance information was taken from the JAQ for FOCC-1
4.7

Application:
(1) Sub-application FOCC-1
Sub-application Name:

Patrol Report — NAVCOSSACT
Report 0193 11P027

98

Sub-application Description:
The purpose of the sub-application is to maintain a history of data pertaining to the
operations of Polaris Submarines and upon request to evaluate this data.
Total Number of JOVIAL Statements:

13,388

Sub-application Hardware Configuration:
Computer manufacturer and model

Control Data Corporation 1604A & 160A
160A

High speed memory storage
Size

Word size if applicable

1604A

16K(4 banks)
82K words
2/word(2 banks8/word six bit bytes
160A; 2 banks-169
core storage only)
12 bits
48 bits

Input/Output devices
Drum
Manufacturer and model
Storage capacity
Quantity on this configuration

None

Disc
Manufacturer and model
Storage capacity
Quantity on this configuration

1301 IBM
28X10° six bit bytes

Magnetic tapes
Manufacturer and model
Recording densities permitted
Quantity on this configuration

729 IV IBM
556 bits/in
800

Card punches
Manufacturer and model
Card punch speed
Quantity on this configuration of this type

1402 IBM
250 cards/min

Card reader
Manufacturer and model
Card read speed
Quantity on this configuration

1402 IBM
600 cards/min

9V

Printer
Manufacturer and model
Printer speed
Quantity on this configuration
Paper tape reader
Manufacturer and model
Tape read speed
Quantity on this configuration

Control Data 350
350 frames/sec

Paper tape punch
Manufacturer and model
Tape punch speed
Quantity on this configuration

Teletype BRPE 11
110 frames/sec

Operating System:
Name: MESIM
Developer: NAVCOSSACT
Mode of operation:
"UNIT"
NOTE: With the exception of compilations, al! programs are run individually,
each being manually loaded.
Background:
JOVIAL was used because it was considered the language best suited for the project.
Average years experience of programmers: 4
Average years JOVIAL experience:
1
Compilation speed: 210 statements per minute
Compiled code: Optionally relocatable
(2)

Sub-application FOCC-2

Sub-application Name: Afloat Cost, Consumption, Effectiveness Surveillance System
Sub-application Description:
The purpose of the sub-application is to collect and summarize basic financial consumption
data generated in the normal course of supply operations afloat.
Total Number of JOVIAL Statements:

450

Sub-application Hardware Configuration:

See under FOCC-1 .

100

Operating System:
Name: Subsystem Executive
Developer: Not given
Mode of operation: Batch processing.
Background:
•
•
o
c
•
•

JOVIAL was used because it was the only high-level language available
Average years experience of programmers: 2
Average years JOVIAL experience: 2
Dialect used:
JOVIAL J3
Compilation speed: Not given
Compiled code: Relocatable.

4.8

Interview Notes:
The job of the FOCCPAC personnel is to maintain programs written by NAVCOSSACT
and NAVCOSSACT contractors. The desire was expressed for more compiler
directives or other mechanisms which would allow the programmer to effect a more
efficient code generation.

5.0

HAM

5.1

Organization:

Operational Program Maintenance Branch
4th Air Force Combat Center
Hamilton A.F.B.
San Francisco, California

5.2

Contact:

Lt. Ruck

5.3

Organization Identifier:

HAM

5.4

Number of JAQ's Returned:

1

5.5

Date of Interview:

23 May 1968

5.6

JAO Response Notes:

5.7

Application:

Application Description:
The application, WNR-CC, functions to monitor coordinate and direct air defense
operations for WNR and coordinate air defense with adjacent regions.
101

Total Number JOVIAL Statements:

8850

Application Hardware Configuration:
Computer manufacturer and model

Burroughs AN/GSA51

High speed memory storage
Size
Word size if applicable

60,000s words
10,000 six bit bytes
48 bits

Input/Output devices
Drum
Manufacturer and model
Storage capacity
Quantity on this configuration

Burroughs MU-469/GYK-4
65,536]o 48 bit words each
2 each

Disc
Manufacturer and model
Storage capacity
Quantity on this configuration

None

Magnetic tapes
Manufacturer and model
Recording densities permitted
Quantity on this configuration

Burroughs AN/GSH-12
800 bits/in
3 each

Card punches
Manufacturer and model
Card punch speed
Quantity on this configuration on this type
Card reader
Manufacturer and model
Card read speed
Quantity on this configuration

IBM 026
1 each

Burroughs AN/GSQ72
200 cards/min
1 each

Printer
Manufacturer and model
Printer speed
Quantity on this configuration
Paper tape reader
Manufacturer and model
Tape read speed
Quantity on this configuration
102

Paper tape punch
Manufacturer and model
Tape punch speed
Quantity on this configuration
Flexowriter - AN/GYQ-2
Controller Comparator - 2 I/O Modules
C4634/GYK-4
Controller Comparator/Message Progresser
1 I/O Module 1 msg. Processor C4635/GYK-4
Operating System:
Name: Western NORAD Region CC
Daveloper: USAF/SDC
Mode of Operation: Real Time
Background:

No background information supplied
SDC is primarily responsible for the design of the HAM syste m

5.8

Interview Notes:

6.0

NAVCOSSACT

6.1

Organization:

NAVCOSSACT
Washington Naval Yard Annex
Washington, D.C.

6.2

Contact:

Mr. Dan Foster

6.3

Organization Identifier:

NAVC

6.4

Number of JAQ's Returned:

3

6.5

Date of Interview:

8 May 1968

6.6

JAQ Response Notes:

•

Each of the three JAQ's returned contains response data for distinct sub-applications,
These are identified by NAVC-1, NAVC-2, and NAVC-3.

•

It is our understanding that each runs on the CDC 1604 and that the same compiler
is used for each. Compliance information was obtained from the JAQ for NAVC-1.

6.7

Application:
(1) Sub-application NAVC-1:

1J3

Sub-application Name:

JOVIAL Compiler

Sub-application Description:
The purpose of this sub-application is to compile programs written in JOVIAL for
use on the CDC 160/1604 computer complex.
Total Number of JOVIAL Statements:
NOTE:

Not given

No counts or estimates of features were provided in the JAQ.

Sub-application Hardware Configuration:
Computer manufacturer and model CDC-1604
High speed memory storage
Size
Word size if applicable

32,768 words
8 six bit bytes
48 bits

Input/Output devices
Drum
Manufacturer and model
Storage capacity
Quantity on this configuration
Disc
Manufacturer and model
Storage capacity
Quantity on this configuration

IBM 1301
28,000,000o six bit bytes
4

Magnetic tapes
Manufacturer and model
Recording densities permitted
Quantity on this configuration

IBM 729
556 bits/in
22

Card punches
Manufacturer and model
Card punch speed
Quantity on this configuration of this type
Manufacturer and model
Card punch speed
Quantity on this configuration of this type

IBM 1402
250 cards/min
2
IBM 1402
800 cards/min
2

Card reader
Manufacturer and model
Card read speed
Quantity on this configuration

Burroughs B-122
250 cards/min
1
104

Printer
Manufacturer and model
Printer speed
Quantity on this configuration

Holley
150 lines/min
1

Printer
Manufacturer and model
Printer speed
Quantity on this configuration

CDC
1000 lines/min
2

Paper tape reader
Manufacturer and model
Tape read speed
Quantity on this configuration

CDC
350 frames/sec
3

Paper tape reader
Manufacturer and model
Tape read speed
Quantity on this configuration

CDC
350 frames/sec
2

Paper tape punch
Manufacturer and model
Tape punch speed
Quantity on this configuration

Teletype BRPE 11
110 frames/sec
5

Operating System:
Name: AN FYK-l(V) 1604A OPCON
Developer: Auerbach Corporation
Mode of Operation: Batch processing
Background:
•
•
o
o
•
e

JOVIAL was used because it was the official NAVY language
Average years experience of programmers: 3
Average years JOVIAL experience: 3
Dialect used: JOVIAL J3
Compilation speed:
Not given,
Compiled code: Relocatable.

(2) Sub-application NAVC-2:
Sub-application Name:

None given

Sub-application Description:

Compiler Maintenance Activity

105

Total Number of JOVIAL Statements:

Not given

Sub-application Hardware Configuration:
Operating System:

See under NAVC-1

No information given.

Background:
•

JOVIAL was used in order to remain compatible with related projects and
because it was the best suited language for the project.

•

No further background information was given.

(3) Sub-application NAVC-3
Sub-application Name:

Route generation/Map generation (RGMG)

Sub-application Description:
Given a latitude and longitude, the sub-application RGMG generates a binary map of
the world or a sea route (land-mass avoidance) according to input specifications. The
binary map must reside in core before a route of turning points can be generated.
RGMG is compiled as a closed subroutine and is operational as a part of a larger sea
surveillance system. In addition it can be run independently and has been run using
the PPS Test function to take advantage of the recording capability (RGMG does not
write out the results).
Total Number of JOVIAL Statements:

2903

Sub-application Hardware Configuration:
Operating System:

See under NAVC-1

See under NAVC-1

Background:
JOVIAL was used to remain compatible with other related projects.
Average years experience of programmers: 0
Average years JOVIAL Experience: 0
Dialect used: JOVIAL J3
Compiler speed: Not given
Compiled Code: Not relocatable
6.8

Interview Notes:

•

It was stressed that the major consideration in the use of JOVIAL is the ease of
programming it provides.

106

•

NAVCOSSACT feels that the readibility of JOVIAL code in certain areas
(e.g., item declarations) could stand some improvement.

7.0

NCDCF

7.1

Organization:

National Civilian Defense Computer Facility
Olney, Maryland

7.2

Contact:

Mr. Marvie Lee

7.3

Organization Identifier:

NCDCF

7.4

Number of JAQ's Returned:

1

7.5

Date of Interview:

7 May 1968

7.6

JAQ Response Notes:

7.7

Application:

Application Description:
The Dash Executive control system assists in using and monitoring the execution of
a system of JOVIAL programs.
Total Number of JOVIAL Statements:

1600

Application Hardware Configuration:
Computer manufacturer and model
High speed memory storage
Size
Word size if applicable

CDC 3600
65536 words
48 bits

Operating System:
Name: SCOPE
Developer: CDC
Mode of Operation:

Batch Processing.

Background:
•
•
•

JOVIAL was used to maintain source language compatibility with related projects.
Average years experience of programmers: 4
Average years JOVIAL experience:
1

107

•
•
•

Dialect used: JOVIAL J3
Compilation speed: Not given
Compiled code: Not given

7.8

Interview Notes:

•

NCDCF personnel interviewed are primarily responsible for maintaining a
JOVIAL compiler.
An opinion was expressed that list processing facilities might find some use in
NCDCF's application.

•

8.0

NEL

8.1

Organization:

Naval Electronics Laboratory
Command and Control Facility
San Diego, California

8.2

Contact:

Mr. Barksdale

8.3

Organization Identifier:

NEL

8.4

Number of JAQ's Returned:

1

8.5

Date of Interview:

24 April 1968

8.6

JAQ Response Notes:

8.7

Application:

Application Description:
The purpose of the Navy Command and Control application is to maintain and test
compilers.
Total Number of JOVIAL Statements:

20K

Application Hardware Configuration:
Computer manufacturer and model

UNIVAC CP 667

High speed memory storage
Size
Word size if applicable

131 K words
6 six bit bytes
36 bits

Input/Output devices
Drum

108

Manufacturer and model
Storage capacity

Univac Fastran
132XlC6six bit bytes
702X106 bits
1

Guantity on this configuration
Magnetic tapes
Manufacturer and model
Recording densities permitted

CDC 603's &606's
200 bits/in
556 bits/in
8

Quantity on this configuration
Card reader
Manufacturer and model
Card read speed
Quantity on this configuration

Univac 1449
100 cards/min
1

Paper tape reader
Manufacturer and model
Tape read speed
Quantity on this configuration

Univac 1232
350 frames/sec
1

Paper tape punch
Manufacturer and model
Tape punch speed
Quantity on this configuration

Univac 1232
150 frames/sec
1

Operating System:
Name: JOVIAL
Developer: PRC and NELC
Mode of operation: Batch processing
Background:
JOVIAL was used because it was regarded as the best suited language for the project.
Average years experience of programmers: 5
Average years JOVIAL experience:
1
Dialect used: JOVIAL J3
Compilation speed: 300-500 statements/minute
Compiled code: Relocatable
8.8

Interview Notes:
It is the intent of the Navy that the following philosophy be employed in the
design and implementation of Command & Control systems: A clear separation of

109

functional software from (machine) system support software is to be maintained.
This means that NEL would prefer a language as machine independent as possible.
The discussion also produced the counter idea - the essential strong point of
JOVIAL, as far as NEL is concerned, is the set of machine dependent features
it contains. It was suggested that a possible resolution of these two conflicting
notions would lie in a kind of (COBOL-like) "Environment Division". The Navy
wants to be able to transfer programs between computers; in other words the
functions performed by a given application may have to be executed on a variety
of different machines.
JOVIAL is too verbose. It would be desirable to have "compound" item declarations, for example (ITEM AA I 48 S BB I 48 S, etc.)
NEL would (and does) like to make use of an expanded character set. They use
braces
for BEGIN END. This helps attack the verbosity problems.
It was suggested that a "TYPE OTHER" (CDC FORTRAN 63) facility be considered,
9.0

NMCSSC

9.1

Organization:

DCA
National Military Command
System Support Center
Pentagon
Washington, D.C.

9.2

Contact:

Colonel Gallentine

9.3

Organization Identifier:

NMCSSC

9.4

Number of JAQ 's Returned:

9.5

Date of Interview:

9.6

JAQ Response Notes:

9.7

Application:

20 June 1968

Application Description:
The Damage and Contamination Model associates military nuclear weapons against all
kinds of targets and predicts damage. The pertinent parameters are coordinates, wind
data, height of weapon burst, weapon yield, vulnerability, number of targets, and
target capacity.
Total Number of JOVIAL Statements:

5000
110

Application Hardware Configuration:
High speed memory storage
Size
Word size if applicable

32K words
8 six bit bytes
48 bits

Input/Output devices
Drum
Manufacturer and model
Storage capacity
Quantity on this configuration

None

Disc
Manufacturer and model
Storage capacity
Quantity on this configuration

None

Magnetic tapes
Manufacturer and model
Recording densities permitted
Quantity on this configuration

CDC 606
500 bits/in
12

Card punches
Manufacturer and model
Card punch speed
Quantity on this configuration of this type
•
Card reader
Manufacturer and model
Card read speed
Quantity on this configuration

CPC 405
1200 cards/min
1

Printer
Manufacturer and model
Printer speed
Quantity on this configuration

CDC 501
1000 lines/min
1

Paper tape reader
Manufacturer and model
Tape read speed
Quantity on this configuration

IBM
50 cards/min
1

CDC
1

Paper tape punch
Manufacturer and model
Tape punch speed
Quantity on this configuration

CDC
1
111

Operating System:
Name: COOP
Developer: CDC
Mode of Operation:

Batch Processing

Background:
•
•
•
•
•
•

JOVIAL was used in order to stay compatible with other projects and because it
was the language best suited for the project.
Average years experience of programmers: 2
Average years JOVIAL experience:
1
Dialect used: JOVIAL J3
Compilation speed: 44 statements per minute
Compiled Code: CODAP symbolic which is then assembled in a relocatable fashion,

9.8

Interview Notes:

•

A desire was expressed to have the compiler produce code in the form of the
assembly languages supplied by the computer manufacturer; also, the subroutine
linkages of the language should be in such a form as to be compatible with the
computer manufacturer's system.

•

NMCSSC also requires the ability to process machine interrupts.

10.0 NHCP
10.1

Organization:

Headquarters NORAD
NHCP
Ent Air Force Base
Colorado Springs, Colorado

10.2 Contact:

Mr. N. R. Gerhart

10.3 Organization Identifier:

NHCP

10.4 Number of JAQ's returned:

2*

10.5 Date of Interview:
10.6 JAQ Response Notes:
The JAQ's returned were not received in sufficient time for their contents to be processed,
10.7 Application:
10.8 Interview Notes:

112

•

NHCP desires facilities for tables containing variable length entries.

•

Multiple assignment statements of the form
AA = BB = CC = 0$
would be found useful. The effect of the above statement is produced by
AA = 0$
BB = 0$
CC = 0$

•

A need for a 'pro-word" such as "SELF" or "*" was voiced.
VARIABLE = {SELF} +3$
or VARIABLE =
* + 3 $
produces the effect
VARIABLE - VARIABLE + 3 S

•

Extended use of ranged subscripts would be helpful:
TABLE'NAME ( $3 . . . 12 $ )
has the effect of naming a table structure made up of entries 3 through 12.

•

NHCP would like the ability to show a set of loop variable increment values to
be taken in FOR loop processing:
FOR I = 1, (5, 3, 6, 19 ), NN
Each lime through the increment handling part of the loop, the next increment
"to the right" in the list is used.

•

NHCP would prefer the use of parentheses instead of the JOVIAL index brackets
($ and $) when writing subscripts.

•

A desire to include $ in comments was mentioned.

•

NHCP feels that non-named variables should be allowed as operands of the BIT
and BYTE functional modifier, e.g.,
BIT($3, 6 S)(BYTE ($5, 2$) (AA))

11.0

RADC

11.1

Organization:

Rome Air Development Center, EMI IF
Griffis Air Force Base
Rome, New York

1.2

Contact:

Mr. Dick Motto

1.3

Organization Identifier:

RADC

1 .4

Number of JAQ's Returned:

4

1.5

Date of Interview:

1 May 1968

1.6

JAQ Response Notes:

113

Each of the three JAQ's returned contains response data for three distinct sub-applications.
These are identified as RADC-2, RADC-3, and RADC-4.
The JAQ returned by RADC-1 did not give usage counts.
RADC-1 is run on the CDC 1604B.
RADC-2 is run on the Univac M555.
RADC-3 is run on the GE 635.
RADC-4 is run on the GE 635.
It is our understanding that RADC-3 and RADC-4 use the same compiler.
11.7

Application:

(1) Sub-application RADC-1
Sub-application Name:

None given.

Sub-application Description:
•
•
•
•

MADAPS - a data management system
TINT - an on-line JOVIAL (subset) compiler
JOVIAL COMPILER
AUERBACH PROGRAM

Total Number JOVIAL Statements:
NOTE:

Not given.

No counts or estimates of usage were entered in this JAQ.

Sub-application Hardware Configuration:
Operating System:
Background:

Not given.

No information given.

No information given.

(2) Sub-application RADC-2
Sub-application Name:

Data Management I

Sub-application Description:
Data Management I is a data management system.
Total Number of JOVIAL Statements:

Not given.

NOTE: It was stated in the JAQ for RADC-2 that because the compiler is in a continuous
state of flux and improvement, and since no major programs have yet been written, usage
counts have not been entered. Rather, qualitative statements have been made regarding

114

usage rates (e.g., very frequently, seldom, etc.) We have quantified these statements.
The following is a list of the qualitative statements used with their associated quantifiers:

.7
.9
.3
.2
.2
.9
0
.1
.9
.7

OFTEN
VERY FREQUENTLY
SOME
SELDOM
SOMETIMES
ALWAYS
NEVER
VERY SELDOM
VERY OFTEN
FREQUENTLY

Sub--application Hardware Conf iguratiion:
Computer manufacturer and model:
High speed memory storage
Word size:

Univac M555
64K words
18 bits

Operating System:
Name of operating system:
Developer:
Mode of operation:

ECP IT
Not given
Not given

Background:
•

JOVIAL was used in this project both because it was the official Air Force
language and because it was the language best suited for the project.

•

No other background information was entered.

(3) Sub-application RADC-3
Sub-application Name:

TINT

Sub-application Description:

"On-line compiler"

Total Number of JOVIAL Statements:

9142

Sub-Application Hardware Configuration:
Computer manufacturer and model

GE 635

115

High speed memory storage
Size
Word size if applicable

36 bits

Input/Output devices
Drum
Manufacturer and model
Storage capacity
Quantity on this configuration

GS MDS 200
30M bits
1

128K words

Disc
Manufacturer and model
Storage capacity
Quantity on this configuration

GS DSU 200
138Mbits
2

Magnetic tapes
Manufacturer and model
Recording densities permitted
Quantity on this configuration

GS MT #67
200/566/800 bits/in
8

Card punches
Manufacturer and model
Card punch speed
Quantity on this configuration of this type

GE4WCPZ201A1
300 cards/min
1

Card reader
Manufacturer and model
Card read speed
Quantity on this configuration
Printer
Manufacturer and model
Printer speed
Quantity on this configuration

GS4WCRZ201A1
800-1000 cards/min

GE PRT 200
1200 lines/min
2

Operating System:
Name: GECOS
Developer: General Electric Co.
Mode of Operating System: Batch processing
Background:
•

JOVIAL was used because it was the official Air Force language, because it was
desired to maintain source language compatibility with other projects, and
because it was the best suited language for the project.
116

Average years experience of programmers: 3-5
Average years JOVIAL experience: 3-5
Dialect used:
JOVIAL J3
Compilation speed: 50 statements per minute
Compiled code: Relocatable
(4) Sub-application RADC-4
Sub-application Name:

Auxiliary Control Executive Processor

Sub-application Description:

"Preprocessor for an Executive Control Program."

Total Number of JOVIAL Statements:

3951

Sub-application Hardware Configuration: No details given.
however, that the computer is the GE 635.
Operating System:

It is our understanding,

No information given.

Background:
•

JOVIAL was used to maintain compatibility with other related projects, because
it is the official Air Force language and because it is the language best suited
for the project.
Average years experience of programmers: 4
Average years JOVIAL experience:
1
Dialect used: JOVIAL J3
Compilation speed: None given.
Compiled code: Relocatable.

11.8

Interview Notes:

RADC would like the ability to specify (at compile or load time) the allocation sequencing of both programs and data; this is felt a more important facility than dynamic allocation,
12.0

SAC

12.1

Organization:

Headquarters SAC
Offut Air Force Base, Nebraska

12.2

Contacts:

Lt Col F. L. Maloy, DOCODS
Major Samuel P. Herod

12.3

Organization Identifier:

SAC

117

12.4

Number of JAQ 's Returned:

4

12.5

Date of Interview:

13 May 1968

12.6

JAQ Response Notes:

•

Each of the four JAQ's returned contains response data for four distinct subapplications. These sub-applications are identified as SAC-1, SAC-2, SAC-3,
and SAC-4.

•

Sub-applications SAC-1, SAC-2, and SAC-3 each run on the AN/FSQ-31 and
each uses the same compiler. Implementation responses for SAC-1, SAC-2, and
SAC-3 were taken from the JAQ for SAC-1.

•

Sub-application SAC-4 is run on the IBM 7090; implementation responses are
taken from the JAQ for SAC-4.

12.7

Application:

(1) Sub-application SAC-1
Sub-application Name:

Utility Subsystem

Sub-application Description:
The Utility subsystem includes the following capabilities:
•
•
•
•
•
•
a
•
o
•
•

executive
compiler
tape update
COMPOOL
data generator
data reduction
dump
CHECKER
task parameter assembler
tape maintenance
loader maintenance

Total Number JOVIAL Statements:

116,137

Sub-application Hardware Configuration:
Computer manufacturer and model

IBM AN/FSQ-31 Data Processing Central

High speed memory storage
Size
Word size if applicable

65,536 words
524,288 six bit bytes
48 bits
118

Input/Output devices
Drum
Manufacturer and model
Storage capacity
Quantity on this configuration

19
IBM (no model)
1, 114, 112 six bit bytes
6,684,672 bits
2

Disc
Manufacturer and model
Storage capacity
Quantity on this configuration

Bryant Model L
103,809,024 six bit bytes
622,854,144 bits
1

Magnetic tapes
Manufacturer and model
Recording densities permitted
Quantity on this configuration

IBM 729 II, IBM 729 IV
200/556 bits/in
12

*Card punches
Manufacturer and model
Card punch speed
Quantity on this configuration of this type

IBM 729 II, IBM 729 IV
250 cards/min
1

*Card reader
Manufacturer and model
Card read speed
Quantity on this configuration

IBM 1402
800 cards/min
1

*Printer
Manufacturer and model
Printer speed
Quantity on this configuration

IBM 1403
600lines/min
1

*Available as part of IBM 1401 systems which can be used on-line.
and punching is normally accomplished off-line.

However, printing

NOTE: There are two IBM AN/FSQ-31 computers. Each with an I/O typewriter, fix
typewriter, Disc, 2 drums, 15 tape drives and 1401 system.
Operating System:
Name: EXECUTIVE
Developer: SDC/USAF
Mode of operation: Batch processing
Real Time
NOTE: "The utility subsystem operates only in the batch processing mode.
it can operate 'interleaved' with the real time programs."
119

However,

Background:
•

JOVIAL was used both to maintain source language compatibility with other
related projects and because it was the language best suited for the project.
Also stated: "JOVIAL was devised for SACCS system by SDC - who wrote the
utility subsystem."
Average years experience of programmers: "Unknown"
Average years JOVIAL experience: "Unknown - perhaps about 2"
Dialect used:
JOVIAL J2
Compilation speed: 200 statements per minute
Compiled code: Relocatable

(2) Sub-application SAC-2
Sub-application Name:

Planning

Sub-application Description:
The Planning Branch furnishes the automated support for development and maintenance
of the Single Integrated Operations Plan and other SAC planning functions. This includes
missile and aircraft application against target systems with all the associated ramifications:
bomber/tanker mating, fuel consumption, performance characteristics, optimum routine
resolution of timing conflicts, etc. Also included is the production of planned and
emergency execution documents and statistical documents.
Total Number of JOVIAL Statements:

300,000 (est)

Sub-application Hardware Configuration:

See under SAC-1

Operating System:
Name: EXECUTIVE
Developer: SDC/USAF
Mode of operation: Batch Processing Real Time
NOTE: "The planning subsystem operates only in the batch processing mode.
it can operate 'interleaved' with the real time programs."

However,

Background:
JOVIAL was used both to maintain source language compatibility with other
related projects and because it was the best language suited for the project.
Average years experience of programmers: 3
Average years JOVIAL experience: 3
Dialect used: See under SAC-1
Compilation speed: See under SAC-1
Compiled code: See under SAC-1

120

(3) Sub-application SAC-3
Sub-application Name:

Force Control

Sub-application Description:
The Force Control sub-application modifies a static data base by processing message and
card inputs to provide a present status of SAC SIOP Forces through various prints, wall
displays and BOJO displays. DATA PREP modifies and error checks messages from units
for use by V-l. V-l updates tables and displays; 200 PACKAGES uses updated data to
create displays and prints. DATA PRES creates the displays that are projected to wall
screens.
Total Number of JOVIAL Statements:

153,789

Sub-application Hardware Configuration:

See under SAC-1

Operating System:
Name: EXECUTIVE
Developer: SDC/USAF
Mode of operating system:

Batch processing real time

Background:
•

JOVIAL was used both to maintain source language compatibility with other
related projects and because it was the language best suited for the project.
Average years experience of programmers: 2
Average years JOVIAL experience: 2
Dialect used: See under SAC-1
Compilation speed: See under SAC-1
Compiled code: See under SAC-1

(4) Sub-application SAC-4
Sub-application Name:

SIOP Gaming Simulation Analysis/ADA

Sub-application Description:
The SIOP Gaming Simulation extracts data from RISOP/SIOP tapes furnished by JWGA
and prepares data for War Gaming Simulation and Analysis. The model includes trajectory computations and damage assessments.
The purpose of the ADA is to provide an AUSTERE DEMONSTRATION SYSTEM (Hardware
and Software) in a PACCS aircraft to develop and demonstrate operational techniques in
the actual environment using available automation hardware and a minimum of development effort.
121

Total Number of JOVIAL Statements:

Gaming - 132,000
ADA 90,000

Application Hardware Configuration:
Computer manufacturer and model

IBM 7090

High speed memory storage
Size
Word size if applicable

65,536 words
393,216 six bit bytes
36 bits

Input/Output devices
Drum
Manufacturer and model
Storage capacity
Quantity on this configuration

17

0

Disc
Manufacturer and model
Storage capacity
Quantity on this configuration

IBM 1301-1
27,960,000 six bit bytes
167,760,000 bits
1

Magnetic tapes
Manufacturer and model
Recording densities permitted
Quantity on this configuration

IBM 729 IV
200/556 bits/in
12

Card reader
Manufacturer and model
Card read speed
Quantity on this configuration

IBM 711
250 cards/min
1

Printer
Manufacturer and model
Printer speed
Quantity on this configuration

IBM 716
150 lines/min
1

NOTE: One I/O typewriter and one Hendrix 5101 crt are attached to the IBM 7090.
NOTE: 2 IBM 1460 computers (with MOD III printers, MOD III card reader-punches)
plus a 5 track paper tape reader-punch are used off-line to print and punch 7090 outputs.
Operating System:
Name: (Gaming) None used
(ADA) ADA EXECUTIVE

122

Developer:

(Gaming) N/A
(ADA) SAC
Mode of operating system: (Gaming) N/A
(ADA) Real Time
(Ncte: ADA does utility work under IBSYS)
Background:
•

•
•
•

Both ADA and Gaming used JOVIAL to remain source language compatible with
other projects and because it was the best suited language for the project.
Average years experience programmers:
Gaming, 2.5
ADA, 2.7
Average years JOVIAL experience: Gaming, 2.2
ADA, 2.0
Dialect used: JOVIAL J2 (Gaming and ADA)
Compilation speed: 200 statements per minute (Gaming and ADA)
Compiled code: Not relocatable (Gaming and ADA)

12.8

Interview Notes:

•
•

General:
SAC may be going over to third generation equipment within the next two years; it is
expected that the corresponding software systems will operate in a time shared mode. SAC
would like to transfer programs already written to the new equipment with as little
reprogramming as possible, but admits that a lot of reprogramming may be required.

Specific:
•

•

SAC feels that the notion of COMPOOL has outlived its usefulness, though it is
admitted that this feeling is influenced by the fact that the COMPOOL implementation used is overly complex and very slow— both in terms of machine time and
personnel interface required. It is our impression that SAC would like facilities
for operationally imposing any conceivable kind of structuring over a relatively
unstructured "free standing" data base in a short order. Toward this end SAC is
currently examining TDMS (ADEPT).
SAC requires the ability to manipulate disc and drum addresses as well as main
memory addresses when doing I/O; further, they would like the capability of
incrementing buffer addresses as required.

13.0

TWA

13.1

Organization:

TWA Data Processing Center
King Road, Rockleigh, N. J,

13.2

Contact:

Mr. Duane Witlow

123

13.3

Organization Identifier:

TWA

13.4

Number of JAQ's Returned:

0

13.5

Date of Interview:

3 May 1968

13.6

JAQ Response Notes:

Owing to an extemely tight schedule, TWA was unable to complete a JAQ. From our
conversation at the interview and from a perusual of their JOVIAL Reference Manual, it
appears that the TWA JOVIAL complies fairly closely to the standard of AFM 100-24.
Particularly interesting are the several special features provided:
•

•

The Burroughs computer on which the application is run is a multiprocessing
machine. A BRANCH statement is provided to allow programmers to assign program
segments to processors for execution (several segments may run in parallel). An
ENDBRANCH Statement causes execution on a processor to cease.
The AWAIT Statement permits the suspension of a parallel path of execution until
the occurance of some condition.
READY, RELEASE, and SETUP statements provide the capabilities for dynamic
allocation of data.
ECI (Entry Control Item) and KEY allow for the manipulation of tables with both
variable length entries and variable structure entries at execution time.
The JOVIAL compiler was written by Burroughs.

13.7

Application:

13.8

Interview Notes:

•
•
•

No data

General:
TWA feels that the language (except as noted in the specific interview responses)
is essentially sufficient for its application. TWA believes its big problem lies
in the area of imposing control over all the diverse elements of the system at
large. That is, TWA would like the ability to link COMPOOL, program libraries,
and compiler, etc., together in such a way that any change to programs or data
structures would result automatically in the output of messages stating what other
parts of the system would be effected.
TWA desires to keep the machine separated from the functions as much as possible.
Toward this end, they have eliminated Direct Code from their system.

Specific:
A need exists for "formal" bit string items and operators AND, OR, NOT,
EITHER/OR.

124

TWA would like to have PROC's in COMPOOL as well as data with both
the definitional and external attributes.
A desire was expressed for a kind of "DEFINE" facility:
ALPHA ('BETA)
where 'BETA (COMPOOL name) would be inserted in the text along with the
ALPHA in subsequent references.
A need for a "MAKE CURRENT" facility was voiced. Sometimes, programs
will have many occurrences of the same table. It is desirable to write one
segment of code which references items in one table, but then switch physical
tables at execution time. (Only one physical table is being handled at a time.)

125

APPENDIX II
JOVIAL FEATURE RESOLUTION ANALYSIS

The folowing pages contain the resolution analyses for all of the features investigated
in the JOVIAL Evaluation Study. The JOVIAL Evaluation Questionnaire (JAQ) and
the approach for change reference numbers are provided for each feature for crossreferencing purposes. The resolution inequality, resolution equations and roles
leading to each particular resolution are in accordance with the discussion in Section 1 .
The application is described in Appendix 1. In the compliance column, if the feature
was implemented in accordance with AFM 100-24, it is noted as CFI; if not implemented,
CFNI; or if implemented differently, CFID. The usage is calculated according to the
resolution equation.
Resolution equations and usage rates are given frequently in this appendix for features
which are "accepted as nucleus." This is done only to provide the reader with a means
of comparing the use of such features with respect to other related features.
The resolution analysis of the features are organized according to the organization of the
Approach for Change (AFC) reference numbers.

127

RESOLUTION ANALYSIS
AFC Reference:

JAQ Reference:

J 3 .5.1.1 .11.1

Feature Name:

ITEM TYPE HOLLERITH

Resolution Inequal ity:

N/A

Resolution Equation:

U = Q46/(Q46 + Q50)

Number of users with usage rates:
Resolution:
Data:

A 1.1.1.1

GQ Tl > = N/A

Accepted as nucleus (Note optional simpl fied constant form,
3.2 .2.8)

Application

Compliance

Usage
.1333

ADPAC-1

CFI

ADPAC-2

CFI

ADPAC-3

CFI

CSC

CFI

(N/A)

FAA

CFI

.8

FOCC-1

CFI

FOCC-2

CFI

HAM

CFI

NAVC-1

CFI

NAVC-2

CFI

NAVC-3

CFI

NCDCF

CFI

NEL

CFI

NMCSSC

CFI

RADC-1

CFI

(N/C)

RADC-2

CFID

.9

RADC-3

CFI

.9524

RADC-4

CFI

SAC-1

CFI

SAC-2

CFI

SAC-3

CFI

.7214

SAC-4

CFI

1

N(CFI)=

(N/C)

.9803

N(CFID) =

21
128

1

N(CFNI) =

°

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.5

Feature Name:

HOLLERITH FORMULA

Resolution Inequality:

N/A

Resolution Equation:

N/A

Number of users with usage rates:
Resolution:
Data:

AFC Reference: A 1.1.1.1

GQ Tl = N/A

Retain as nucleus (Note modification to Hollerith assignment
and comparisons, 3.2.2.4)
Compliance

Application

ADPAC-1

CFI

ADPAC-2

CFI

ADPAC-3

CFI

CSC

CFI

FAA

CFI

FOCC-1

CFI

FOCC-2

CFI

HAM

CFI

NAVC-1

CFI

NAVC-2

CFI

NAVC-3

CFI

NCDCF

CFI

NEL

CFI

NMCSSC

CFI

RADC-1

CFI

RADC-2

CFNI

RADC-3

CFI

RADC-4

CFI

SAC-1

CFI

SAC-2

CFI

SAC-3

CFI

SAC-4

CFI
N(CFI) =

21

N(CFID) =
129

Usage

N(CFNI) =

1

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.1.11.2

Feature Name:

ITEM TYPE STANDARD TRANSMISSION CODE

Resolution Inequality:

U GQ Tl = .10

Resolution Equation:

U = Q50/(Q46 + Q50)

Number of users with usage rates:
Resolution:

AFC Reference: A 1.1.1.2

GQ Tl = 2

Delete (Note also CHARCODE directive, 3.2.2.3)

Data:
Application

Compli a nee

Usage

ADPAC-1

CFI

.8666

ADPAC-2

CFI

0

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

0

FOCC-1

CFI

0

FOCC-2

CFI

0

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

0

NCDCF

CFNI

0

NEL

CFID

.0196

NMCSSC

CFI

0

RADC-1

CFI

(N/C)

RADC-2

CFNI

0

RADC-3

CFI

.0476

RADC-4

CFI

0

SAC-1

CFI

0

SAC-2

CFI

0

SAC-3

CFI

.2785

SAC-4

CFI

0

N(CFI)=

N(CFID) =

18

130

1

N(CFNI) =

2

RESOLUTION ANALYSIS
JAQ Reference:

j 3.5.2.5

Feature Name:

STANDARD TRANSMISSION CODE FORMULA

Resolution Inequality:

N/A

Resolution Equation:

N/A

Number of users with usage rates:
Resolution:

AFC Reference: A 1.1.1.2

QQ j\ = N/A

Delete (Because of deletion of Item Type STC)

Data:

Come liance

Application
ADPAC-1

CFI

ADPAC-2

CFI

ADPAC-3

CFI

CSC

CFI

FAA

CFI

FOCC-1

CFI

FOCC-2

CFI

HAM

CFI

NAVC-1

CFI

NAVC-2

CFI

NAVC-3

CFI

NCDCF

CFI

NEL

CFI

NMCSSC

CFI

RADC-1

CFI

RADC-2

CFNI

RADC-3

CFI

RADC-4

CFI

SAC-1

CFI

SAC-2

CFI

SAC-3

CFI

SAC-4

CFI
N(CFI) =

21

N(CFID)=

131

Usage

0

N(CFNI) =

1

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.1.14

Feature Name:

CHARACTER DATA SIZE ATTRIBUTE

Resolution Inequality:

N/A

Resolution Equation:

N/A

Number of users with usage rates:
Resolution:

AFC Reference:

A4, Al.1.1.3

GQ Tl • N/A

Accept as nucleus

Data:
Application

Compliance

ADPAC-1

CFI

ADPAC-2

CFI

ADPAC-3

CFI

CSC

CFI

FAA

CFI

FOCC-1

CFI

FOCC-2

CFI

HAM

CFI

NAVC-1

CFI

NAVC-2

CFI

NAVC-3

CFI

NCDCF

CFI

NEL

CFI

NMCSSC

CFI

RADC-1

CFI

RADC-2

CFI

RADC-3

CFI

RADC-4

CFI

SAC-1

CFI

SAC-2

CFI

SAC-3

CFI

SAC-4

CFI
N(CFI)=

22

N(CFID)=
132

Usage

0

N(CFNI) =

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.1.13

Feature Name:

ITEM TYPE STATUS

Resolution Inequality:

UGQ =T1 = 05

Resolution Equation:

U = Q58/Q14

Number of users with usage rates:
Resolution:

AFC Reference:

A 1.1.2

GQ Tl = 7

Retain as optional

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

.0416

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

.2

FOCC-1

CFI

.0040

FOCC-2

CFI

.4000

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.0500

NAVC-3

CFI

.0100

NCDCF

CFI

.0200

NEL

CFI

.0080

NMCSSC

CFI

.1666

RADC-1

CFI

(N/C)

RADC-2

CFI

.2

RADC-3

CFI

.0100

RADC-4

CFI

.0303

SAC-1

CFI

.1812

SAC-2

CFI

.0673

SAC-3

CFI

.1924

SAC-4

CFI

.0532

N(CFI) =

22

fs
N(CFID)
=
33

N(CFNI)= °

RESOLUTION ANALYSIS
JAQ Reference:

J o.3

Feature Name:

STATUS FORMULA

Resolution Inequal ity:

N/A

Resolution Equation:

N/A

#

Number of users with usage rates:
Resolution:

AFC Reference: A 1.1.2

£. . _

GQ T1 = N/A

Retain as optional (Required if St<

Data:
Application

Compliance

ADPAC-1

CFI

ADPAC-2

CFI

ADPAC-3

CFI

CSC

CFI

FAA

CFI

FOCC-1

CFI

FOCC-2

CFI

HAM

CFI

NAVC-1

CFI

NAVC-2

CFI

NAVC-3

CFI

NCDCF

CFI

NEL

CFI

NMCSSC

CFI

RADC-1

CFI

RADC-2

CFNI

RADC-3

CFI

RADC-4

CFI

SAC-1

CFI

SAC-2

CFI

SAC-3

CFI

SAC-4

CFI

N(CFI) =

N(CFID) = 0

21

134

Usage

N(CFNI) =_

1

RESOLUTION ANALYSIS
JAQ Reference:

J 3. 5.1. 1.14

Feature Name:

EXPLICIT STATUS SIZE ATTRIBU"

Resolution Inequal ity:

UGQ Tl = .01

Resolution Equation:

U = Q70/Q58

Number of users with usage rates:
Resolution:
Data:

AFC Reference:

A 1.1.3

GQ Tl =12

Retc lin as nucleus (Meaningful on
imp lemen ted)

Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

.6000

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

.2

FOCC-1

CFI

0

FOCC-2

CFI

.0100

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.2000

NAVC-3

CFI

0

NCDCF

CFI

0

NEL

CFI

.0500

NMCSSC

CFI

.2000

RADC-1

CFID

(N/C)

RADC-2

CFI

.2

RADC-3

CFI

1

RADC-4

CFI

0

SAC-1

CFI

.0500

SAC-2

CFI

.1484

SAC-3

CFI

.0543

SAC-4

CFI

.0487

N(CFI) =

N(CFID) _

21

135

1

N(CFNI) =

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.2

Feature Name:

STRUCTURE ARRAY

AFC Reference: A 1 .2.1

Resolution Inequality:

N/A

Resolution Equation:

Q74(Q74 + Q78)

Number of users with usage rates:
Resolution:
Data:

GQ Tl = N/A

Retain as optional (Note: In the AFC, we accepted ARRAY as a nucleus
data structure. Since the number of users implementing ARRAY is relatively
small, and because the usage where implemented is low, we are altering the
status of this feature to "optional").
Compliance

Application

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

0

ADPAC-3

CFI

0

CSC

CFID

(N/A)

FAA

CFID

.2

FOCC-1

CFNI

0

FOCC-2

CFNI

0

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

0

NCDCF

CFNI

0

NEL

CFID

.2500

NMCSSC

CFNI

0

RADC-1

CFID

(N/C)

RADC-2

CFNI

0

RADC-3

CFI

.0322

RADC-4

CFI

0

SAC-1

CFID

0

SAC-2

CFID

.0181

SAC-3

CFID

.0417

SAC-4

CFID

.0676

N(CFI)= 5

N(CFID) = 8
136

N(CFNI)= 9

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.3.1

Feature Name:

STRUCTURE TABLE

Resolution Inequality:

UGQ Tl = .10

Resolution Equation:

U = Q78/(Q78 + Q74)

Number of users with usage rates:
Resolution:

AFC Reference: A 1.2.2

OQ Tl = 18

Retain as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

ADPAC-2

CFI

ADPAC-3

CFI

CSC

CFI

N/A)

FAA

CFI

9

FOCC-1

CFI

FOCC-2

CFI

HAM

CFI

NAVC-1

CFI

NAVC-2

CFI

NAVC-3

CFI

NCDCF

CFI

NEL

CFI

NMCSSC

CFI

RADC-1

CFI

N/C)

RADC-2

CFI

9

RADC-3

CFI

9677

RADC-4

CFI

SAC-1

CFI

SAC-2

CFI

.9818

SAC-3

CFI

.9582

SAC-4

CFI

.9323

N(CFI)=

(N/C)

7500

N(CFID) =

22

137

0

N(CFNI) =

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.3.4

Feature Name:

TABLE VARIABILITY ATTRIBUTE

Resolution Inequality:

U GQ Tl = .10

Resolution Equation:

U = Q86/Q78

Number of users with usage rates:

Resolution:

AFC Reference:

A 1.2.3

RIGID

GQ Tl = 18

Retain as nucleus

Data:
Compliance

Application

Usage

ADPAC-1

CFI

.4736

ADPAC-2

CFI

.8750

ADPAC-3

CFI

1

CSC

CFI

(N/A)

FAA

CFI

.8

FOCC-1

CFID

.2608

FOCC-2

CFID

.7500

HAM

CFI

.0625

NAVC-1

CFI

(N/C)

NAVC-2

CFI

1

NAVC-3

CFI

.9534

NCDCF

CFI

.4000

NEL

CFI

.666

NMCSSC

CFI

0

RADC-1

CFID

(N/C)

RADC-2

CFI

.9

RADC-3

CFI

.1666

RADC-4

CFI

.5555

SAC-1

CFI

.5952

SAC-2

CFI

.4615

SAC-3

CFI

.9556

SAC-4

CFI

.6113

N(CFI) =

19

N(CFID) =
138

N(CFNl) _
=

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.3.4

Feature Name:

TABLE VARIABILITY ATTRIBUTE - VARIABLE

Resolution Inequality:

U GQ Tl = .10

Resolution Equation:

1 - (Q86/Q87)

Number of users with usage rates:
Resolution:

AFC Reference:

GQ Tl = 18

Retain as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

.5264

ADPAC-2

CFI

.1250

ADPAC-3

CFI

0

CSC

CFI

N/A

FAA

CFI

.2

FOCC-1

CFID

.7392

FOCC-2

CFID

.2500

HAM

CFI

.9375

NAVC-1

CFI

N/C

NAVC-2

CFI

0

NAVC-3

CFI

.0466

NCDCF

CFI

.6000

NEL

CFI

.334

NMCSSC

CFI

1

RADC-1

CFID

N/C

RADC-2

CFI

.1

RADC-3

CFI

.8334

RADC-4

CFI

.4445

SAC-1

CFI

.4048

SAC-2

CFI

.5385

SAC-3

CFI

.0444

SAC-4

CFI

.3887

N(CFI)=

19

N(CFID)=
139

3

N(C

A 1.2.3

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.2.2.6

Feature Name:

NENT

Resolution Inequal ity:

UGQT1 =.10

Resolution Equation:

U = Q169/Q78

Number of users with usage rates:
Resolution:

AFC Reference:

A 1.2.3

GQ T1 = 15

Retain as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

.6315

ADPAC-2

CFI

.1250

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

.8

FOCC-1

CFI

1.304

FOCC-2

CFI

.2500

HAM

CFI

.9375

NAVC-1

CFI

(N/C)

NAVC-2

CFI

1

NAVC-3

CFI

.8139

NCDCF

CFI

1

NEL

CFI

.0166

NMCSSC

CFI

.6666

RADC-1

CFI

(N/C)

RADC-2

CFI

.2

RADC-3

CFI

0

RADC-4

CFI

.0555

SAC-1

CFI

1.976

SAC-2

CFI

.3230

SAC-3

CFI

.8076

SAC-4

CFI

1.279

N(CFI)=

22

N(CFID) =
140

N(CFNI) =

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.1.2

Feature Name:

NWDSEN

Resolution Inequality:

U GQ Tl = .02

Resolution Equation:

U = Q140/Q78

Number of users with usage rates:
Resolution:

AFC Reference:

A

1.2.4

GQ Tl = 0

Retain as optional

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

0

ADPAC-3

CFI

0

CSC

CFID

(N/A)

FAA

CFI

.8

FOCC-1

CFI

.0173

FOCC-2

CFI

0

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

0

NCDCF

CFNI

0

NEL

CFI

.0166

NMCSSC

CFNI

0

RADC-1

CFI

(N/C)

RADC-2

CFI

.1

RADC-3

CFI

0

RADC-4

CFI

0

SAC-1

CFI

.0119

SAC-2

CFI

.0115

SAC-3

CFI

.0087

SAC-4

CFI

.0010

N(CFI)=

19

N(CFID) =
141

N(CFNI)=2

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.4

Feature Name:

STRUCTURE STRING

Resolution Inequal ity:

UGQ Tl = .10

Resolution Equation:

U = Q103/Q78

Number of users with usage rates:
Resolution:

AFC Reference:

A 1.2.5

GQ Tl =2

Delete

Data:
Application

Compliance

Usage

ADPAC-1

CFNI

0

ADPAC-2

CFNI

0

ADPAC-3

CFNI

0

CSC

CFI

(N/A)

FAA

CFI

.2

FOCC-1

CFNI

0

FOCC-2

CFNI

0

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

0

NCDCF

CFNI

0

NEL

CFNI

0

NMCSSC

CFNI

0

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFNI

0

SAC-1

CFI

0

SAC-2

CFI

.0307

SAC-3

CFI

.2697

SAC-4

CFI

.0357

N(CFI)=

6

N(CFID) =

142

0

N(CFNI)=

16

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.2.2.1

Feature Name:

BIT

Resolution Inequality:

UGQ Tl = .03

Resolution Equation:

U = Q149/Q14

Number of users with usage rates:
Resolution:

AFC Reference: A 2.1

GQ Tl = 10

Retain as optional

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

.0416

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

.8

FOCC-1

CFI

.0200

FOCC-2

CFI

.0200

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.1000

NAVC-3

CFI

0

NCDCF

CFI

.0800

NEL

CFI

.0020

NMCSSC

CFI

.6666

RADC-1

CFI

(N/C)

RADC-2

CFI

.9

RADC-3

CFI

.0100

RADC-4

CFI

.1635

SAC-1

CFID

.0966

SAC-2

CFID

.0210

SAC-3

CFID

.0689

SAC-4

CFID

.0649

N(CFI) =

18

N(CFID) =
143

_
N(CFNI) =

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.2.2.2

Feature Name:

BYTE

Resolution Inequality:

UGQ Tl = .03

Resolution Equation:

U = Q153/(Q46+Q50)

Number of users with usage rates:
Resolution:

AFC Reference: A 2.2

GQ Tl = 15

Retain as nucleus

Data:
Application

.ompl i a nee

Usage

ADPAC-1

CFI

2.883

ADPAC-2

CFI

2.428

ADPAC-3

CFI

1.291

CSC

CFI

(N/A)

FAA

CFI

.8

FOCC-1

CFI

.3076

FOCC-2

CFI

.0150

HAM

CFI

4.000

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.1500

NAVC-3

CFI

0

NCDCF

CFI

.8571

NEL

CFI

.0294

NMCSSC

CFI

.6666

RADC-1

CFI

(N/C)

RADC-2

CFNI

0

RADC-3

CFI

.7500

RADC-4

CFI

.6666

SAC-1

CFID

4.235

SAC-2

CFID

2.058

SAC-3

CFID

.9856

SAC-4

CFI

.9605

N(CFI) =

N(CFID) _
= 4

17
144

N(CFNI) =

RESOLUTION ANALYSIS
JAQ Reference:

J 3 .5.2.2.2 .3-4

Feature Name:

CHAR/MAN T

Resolution Inequal ity:

U GQ Tl = , .03

Resolution Equation:

U = = (Q157 + Q161)/Q38

Number of users with usage i •ates:
Resolution:

AFC Reference:

A 2.3

GQ Tl =1

Delete

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

.2000

ADPAC-3

CFI

0

CSC

CFNI

(N/A)

FAA

CFNI

0

FOCC-1

CFNI

0

FOCC-2

CFNI

0

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

0

NCDCF

CFNI

0

NEL

CFI

.0200

NMCSSC

CFNI

0

RADC-1

CFNI

(N/C)

RADC-2

CFI

0

RADC-3

CFI

0

RADC-4

CFI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI) =

N(CFID) =
145

N(CFNI) _
=

15

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.2.1

Feature Name:

SUBSCRIPTING - Expressed as Complex Numeric Formula

Resolution Inequality:

N/A

Resolution Equation:

U = Q144/(Q74 + Q78 + Ql03)

Number of users with usage rates:
Resolution:

AFC Reference:

A 2.4

GQ Tl = N/A

Accepted as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

.3684

ADPAC-2

CFI

.1250

ADPAC-3

CFI

1

CSC

CFI

(N/A)

FAA

CFI

.8

FOCC-1

CFI

.1304

FOCC-2

CFI

.6250

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.2000

NAVC-3

CFI

.5813

NCDCF

CFI

.4000

NEL

CFI

.0750

NMCSSC

CFI

6.666

RADC-1

CFI

(N/C)

RADC-2

CFI

.9

RADC-3

CFI

32.25

RADC-4

CFI

4.444

SAC-1

CFID

1.500

SAC-2

CFID

.5425

SAC-3

CFID

1.229

SAC-4

CFID

.8433

N(CFI) =

18

N(CFID) =
146

4

_
N(CFNl) =

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.2.1

Feature Name:

SUBSCRIPTING - Nested

Resolution Inequality:

N/A

Resolution Equation:

U = Q145/(Q74 + Q78 + Q103)

Number of users with usage rates:
Resolution:

AFC Reference: A 2.4

GQ Tl = N/A

Accepted as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

0

ADPAC-3

CFI

.8000

CSC

CFI

(N/A)

FAA

CFI

.8

FOCC-1

CFI

.0869

FOCC-2

CFI

1.250

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.0666

NAVC-3

CFI

.2325

NCDCF

CFI

1

NEL

CFI

.0050

NMCSSC

CFI

1.333

RADC-1

CFI

(N/C)

RADC-2

CFI

.2

RADC-3

CFI

16.12

RADC-4

CFI

.1111

SAC-1

CFID

.3095

SAC-2

CFID

.2932

SAC-3

CFID

2.030

SAC-4

CFID

.5927

_
N(CFI) =

18

N(CFID) =
147

4

N(CFNI) =

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.6

Feature Name:

TABLE ENTRY REFERENCING (ENTRY/ENT)

Resolution Inequality:

U GQ Tl =.02

Resolution Equation:

(J = Q200/Q78

Number of users with usage rates:
Resolution:

AFC Reference: A 2.5

GQ Tl - 13

Retain as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFID

.6315

ADPAC-2

CFID

.2500

ADPAC-3

CFID

0

CSC

CFI

(N/A)

FAA

CFID

.8

FOCC-1

CFI

.0652

FOCC-2

CFI

2.500

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.3333

NAVC-3

CFI

0

NCDCF

CFI

.0400

NEL

CFI

.0200

NMCSSC

CFID

.6666

RADC-1

CFID

(N/C)

RADC-2

CFNI

0

RADC-3

CFI

0

RADC-4

CFI

0

SAC-1

CFID

.6904

SAC-2

CFID

.2307

SAC-3

CFID

.4125

SAC-4

CFID

.2202

N(CFI) =

9

N(CFID)= 9
148

N(CFNI)= 3

RESOLUTION ANALYSIS
JAQ Reference:

AFC Reference:

J 3.5.2.2.1

A

2 6

Feature Name:
Resolution Inequality:

N/A

Resolution Equation:

ENT:

U = Q201/Q200; ENTRY:

Number of users with usage rates:
Resolution:
Data-

U = 1 - Q201/Q200

GQ Tl = N/A

Retain ENTRY as nucleus; delete ENT (Basis of resolution: As shown below, the
majority of applications implementing both ENT and ENTRY and which use
table entry referencing at all, use ENTRY either exclusively or in most cases.)

Usage

Compl iance

Application

ENTRY

ADPAC-1

ENT
CFR1

ENTRY
CFl

ENT
U

ADPAC-2

CFNI

CFl

0

ADPAC-3

CFNI

CFl

0

CSC

CFl

CFl

(N/A)

(N/A)

FAA

CFl

CFNI

1

0

FOCC-1

CFl

CFl

0

FOCC-2

CFl

CFl

0

HAM

CFl

CFl

0

0

NAVC-1

CFl

CFl

(N/C)

(N/C)

NAVC-2

CFl

CFl

0

NAVC-3

CFl

CFl

0

NCDCF

CFl

CFl

0

NEL

CFl

CFl

.8333

NMCSSC

CFNI

CFl

0

RADC-1

CFl

CFl

(N/C)

(N/C)

RADC-2

CFNI

CFNI

(N/C)

(N/C)

RADC-3

CFl

CFl

0

0

RADC-4

CFl

CFl

0

0

SAC-1

CFl

CFNI

1

0

SAC-2

CFl

CFNI

1

0

SAC-3

CFl

CFNI

1

0

SAC-4

CFl

CFNI

1

0

ENT:
ENTRY:

N(CFI) =
N(CFI) =

17

N(CFID) =
N(CFID) =

16
149

0
0

0

.1667

N(CFNi)= 5
N(CFNI) = 6

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.1.15

Feature Name:

COMPUTER REPRESENTATION OF DATA

Resolution Inequality:

N/A

Resolution Equation:

N/A

Number of users with usage rates:
Resolution:
r> .
Application

AFC Reference: A3

GQ Tl = N/A

Modified as specified in 3.2.2.1 (hexadecimal constant), 3.2.2.3
(CHARCODE), 3.2.2.5 (computer representation of numeric variables
and constants, and 3.2.2.10 (extended precision)
Usage
Compliance

ADPAC-1

CFI

ADPAC-2

CFI

ADPAC-3

CFI

CSC

CFID

FAA

CFI

FOCC-1

CFI

FOCC-2

CFI

HAM

CFI

NAVC-1

CFI

NAVC-2

CFI

NAVC-3

CFI

NCDCF

CFI

NEL

CFID

NMCSSC

CFID

RADC-1

CFID

RADC-2

CFI

RADC-3

CFI

RADC-4

CFID

SAC-1

CFID

SAC-2

CFID

SAC-3

CFID

SAC-4

CFI
N(CFI) = 14

|v
N(CFID)=
150

8

N(CFNI) =

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.1.1

Feature Name:

OCTAL CONSTANT

Resolution Inequality:

UGET1 =1

Resolution Equation:

U = Q4

Number of users with usage rates:
Resolution:
Data:

AFC Reference: A 3.1

GQ Tl - 18

The "Bit String Constant" Facility provided by Octal Constant is
retained as nucleus; however, octal is optional if hexadecimal
(3.2.2.1) is chosen for implementation.

Application

Compliance

Usage

ADPAC-1

CFI

48

ADPAC-2

CFI

60

ADPAC-3

CFI

1

CSC

CFI

(N/A)

FAA

CFI

.2

FOCC-1

CFI

70

FOCC-2

CFI

70

HAM

CFI

130

NAVC-1

CFI

(N/C)

NAVC-2

CFI

12

NAVC-3

CFI

1

NCDCF

CFI

30

NEL

CFI

1,000

NMCSSC

CFI

50

RADC-1

CFI

(N/C)

RADC-2

CFI

.7

RADC-3

CFI

30

RADC-4

CFI

25

SAC-1

CFID

520

SAC-2

CFID

5000

SAC-3

CFID

453

SAC-4

CFID

860

N(CFI)=

181

N(CFID) = = 4
151

N(CFNI) =

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.3.5

Feature Name:

BASIC TABLE STRUCTURE ATTRIBUTE - PARALLEL

Resolution Inequality:

UGQT1 =.10

Resolution Equation:

U = Q89/(Q89A + Q89)

Number of users with usage rates:

Resolution:

AFC Reference:

A 3.3

GQT1 = 10

Retain as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

.8157

ADPAC-2

CFI

.0625

ADPAC-3

CFI

1

CSC

CFI

(N/A)

FAA

CFID

0

FOCC-1

CFI

0

FOCC-2

CFI

.1428

HAM

CFI

1

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

.9767

NCDCF

CFI

0

NEL

CFI

.8000

NMCSSC

CFI

.3333

RADC-1

CFI

(N/C)

RADC-2

CFI

.2

RADC-3

CFI

.5000

RADC-4

CFI

.9090

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFID

0

N(CFI) =

17

N(CFID) =
152

N(CFNI) =

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.3.5

Feature Name:

BASIC TABLE STRUCTURE ATTRIBUTE - SERIAL

Resolution Inequality

UGQ = .10

Resolution Equation:

U = Q89A/(Q89A + Q89)

Number of users with usage rates:
Resolution:

AFC Reference:

A

33

GQ Tl = 16

Retain as nucleus

Data:
Application

Usage

Compliance

ADPAC-1

CFI

.1842

ADPAC-2

CFI

.9375

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFID

.9

FOCC-1

CFI

1

FOCC-2

CFI

.8572

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

NAVC-3

CFI

NCDCF

CFI

NEL

CFI

2000

NMCSSC

CFI

6666

RADC-1

CFI

(N/C)

RADC-2

CFI

9

RADC-3

CFI

5000

RADC-4

CFI

9090

SAC-1

CFI

SAC-2

CFI

SAC-3

CFI

SAC-4

CFID
N(CFI) =

0232

N(CFID) =

20
153

2

N(CFM) =

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.3.6.1

Feature Name:

ORDINARY PACKING - Medium and/or Dense

Resolution Inequality:

(J GQ Tl = .02

Resolution Equation:

U = (Q95 + Q95A) +/Q7B

Number of users with usage rates:
Resolution:

AFC Reference:

A 3.4

GQ Tl = 14

Retain as optional

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

.0625

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

0

FOCC-1

CFID

0

FOCC-2

CFID

0

HAM

CFI

0

NAVC-1

CFID

(N/C)

NAVC-2

CFID

0

NAVC-3

CFID

0

NCDCF

CFID

0

NEL

CFID

.3333

NMCSSC

CFID

0

RADC-1

CFI

(N/C)

RADC-2

CFID

.2222

RADC-3

CFI

.1666

RADC-4

CFID

.0222

SAC-1

CFID

(N/C)

SAC-2

CFID

(N/C)

SAC-3

CFID

(N/C)

SAC-4

CFID

0

N(CFI)=

8

N(CFID)=
154

M

N(CFNI)=

°

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.: 3.6.1

Feature Name:

ORDINARY PACKING - Medium

Resolution Inequal ity .

U GQ Tl = .05

Resolution Equation:

U = Q95/(Q95 + Q95A)

Number of users with usage rates:
Resolution:

AFC Reference:

A 3.4

GQT1 =0

Delete

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

0

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

0

FOCC-1

CFNI

0

FOCC-2

CFNI

0

HAM

CFI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

0

NCDCF

CFID

0

NEL

CFNI

0

NMCSSC

CFNI

0

RADC-1

CFI

(N/C)

RADC-2

CFNI

0

RADC-3

CFI

0

RADC-4

CFNI

0

SAC-1

CFID

0

SAC-2

CFID

0

SAC-3

CFID

0

SAC-4

CFID

0

N(CFI)=

N(CFID)=14

8

155

N(CFNI) =

0

RESOLUTION ANALYSIS
JAQ Reference:
Feature Name:

ORDINARY PACKING - Dense

Resolution Inequality:
Resolution Equation:

UGQT1 =.05
U = Q95A/(Q95 + Q95A)

Number of users with usage rates:
Resolution:
Data:

AFC Reference: ^34

J 3.5.1. 3.6.1

GQT1 =5

Retain as optional (must be imple
is implemented)
Compliance

Application

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

1

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

0

FOCC-1

CFI

0

FOCC-2

CFI

0

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

0

NCDCF

CFNI

0

NEL

CFI

1

NMCSSC

CFI

0

RADC-1

CFI

(N/C)

RADC-2

CFI

1

RADC-3

CFI

1

RADC-4

CFI

1

SAC-1

CFID

0

SAC-2

CFID

0

SAC-3

CFID

0

SAC-4

CFID

0

N(CFI) = 8

N(CFID)=14
156

N(CFNI)= °

RESOLUTION ANALYSIS
JAQ Reference:

J 3. 0 •

Feature Name:

NO " PACKING NOTATION - "

Resolution Inequal ity:

UGQT1 = .05

Resolution Equation:

U = Q94/(Q93 + Q94)

1 •« 3.6.1

Number of users with usage rates:
Resolution:

AFC Reference:

A 3.4

GQ Tl = 1

Delete

Data:
Application

Compliancee

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

0

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

0

FOCC-1

CFID

0

FOCC-2

CFID

0

HAM

CFI

0

NAVC-1

CFID

(N/C)

NAVC-2

CFID

0

NAVC-3

CFID

0

NCDCF

CFID

0

NEL

CFID

0

NMCSSC

CFID

0

RADC-1

CFI

(N/C)

RADC-2

CFID

.818

RADC-3

CFI

1

RADC-4

CFID

.027

SAC-1

CFID

0

SAC-2

CFID

0

SAC-3

CFID

0

SAC-4

CFID

0

N(CFI) =

8

N(CFID) = 14
157

N(CFNI) = 0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.3.6.2

Feature Name:

DEFINED PACKING

Resolution Inequal ity:

UGQ Tl = .10

Resolution Equation:

U = Q99/Q78

Number of users with usage rates:
Resolution:

AFC Reference:

A 3 5

GQ Tl = 17

Retain as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

.4473

ADPAC-2

CFI

.9375

ADPAC-3

CFI

1

CSC

CFI

(N/A)

FAA

CFI

.2

FOCC-1

CFI

1

FOCC-2

CFI

1

HAM

CFI

.0625

NAVC-1

CFI

(N/C)

NAVC-2

CFI

1

NAVC-3

CFI

.9534

NCDCF

CFI

.6000

NEL

CFI

.1666

NMCSSC

CFI

.4666

RADC-1

CFI

(N/C)

RADC-2

CFI

.9

RADC-3

CFI

0

RADC-4

CFI

.222

SAC-1

CFID

.3095

SAC-2

CFID

.5384

SAC-3

CFID

.7423

SAC-4

CFID

.7875

N(CFI)=

18

N(CFID) = 4
158

N(CFNI) =

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.7.1

Feature Name:

INDEPENDENT OVERLAY DECLARATION

Resolution Inequality:

U GQ Tl = 1

Resolution Equation:

U = Q129

Number of users with usage rates:
Resolution:

AFC Reference: A 3.6

GQ Tl = 15

Retain as nucleus

Data:
Usage

Compliance

Application
ADPAC-1

CFI

19

ADPAC-2

CFI

7

ADPAC-3

CFI

0

CSC

CFID

(N/A)

FAA

CFNI

0

FOCC-1

CFI

30

FOCC-2

CFI

10

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

2

NAVC-3

CFI

0

NCDCF

CFI

5

NEL

CFI

30

NMCSSC

CFI

25

RADC-1

CFI

(N/C)

RADC-2

CFI

1 or more

RADC-3

CFI

3

RADC-4

CFI

25

SAC-1

CFID

10

SAC-2

CFID

250

SAC-3

CFID

77

SAC-4

CFID

1370

N(CFI)=

N(CFID) =

16

159

5

N(CFN1) =

1

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.7.2

Feature Name:

SUBORDINATE OVERLAY DECLARATION

Resolution Inequality:

U GQ T1 = 1

Resolution Equation:

U - Q133

Number of users with usage rates:
Resolution:

AFC Reference: A 3.6

GQT1 =0

Delete

Data:
Application

Usage

Compliance

ADPAC-1

CFNI

0

ADPAC-2

CFNI

0

ADPAC-3

CFNI

0

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFNI

4

FOCC-2

CFNI

0

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

0

NCDCF

CFNI

0

NEL

CFNI

0

NMCSSC

CFNI

0

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFNI

0

SAC-1

CFID

10

SAC-2

CFID

20

SAC-3

CFID

10

SAC-4

CFID

10

N(CFI) =

N(CFID) =
160

4

N(CFNI) =

17

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.1.1

Feature Name:

'LOC

Resolution Inequality:

UGQT1 =1

Resolution Equation:

U = Q136

Number of users with usage rates:
Resolution:

AFC Reference: A 3.8

GQ Tl = 4

Retain as nucleus*

Data:
Application

Compliance

Usage

ADPAC-1

CFNI

0

ADPAC-2

CFNI

0

ADPAC-3

CFNI

0

CSC

CFID

(N/A)

FAA

CFNI

0

FOCC-1

CFI

5

FOCC-2

CFI

3

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

3

NAVC-3

CFI

0

NCDCF

CFNI

0

NEL

CFI

73

NMCSSC

CFNI

0

RADC-1

CFI

(N/C)

RADC-2

CFNI

0

RADC-3

CFI

0

RADC-4

CFNI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFID

0

N(CFI) =

9

N(CFID)= 2

N(CFNI)= 11

*These data indicate that 'LOC be retained as optional. Responses to Interview Question 1-15 (2)
indicate nucleus, however.
.,.
I 61

RESOLUTION ANALYSIS
AFC Reference: ^ 4

JAQ Reference:

j 3.5.2.3.1

Feature Name:

PARENTHESIZED NUMERIC FORMULAS

Resolution Inequality:

N/A

Resolution Equation:

U = Q173

Number of users with usage rates:
Resolution:

GQ Tl • N/A

Accept as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

14

ADPAC-2

CFI

15

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

0

FOCC-1

CFI

30

FOCC-2

CFI

100

HAM

CFI

230

NAVC-1

CFI

(N/C)

NAVC-2

CFI

20

NAVC-3

CFI

50

NCDCF

CFI

20

NEL

CFI

10

NMCSSC

CFI

1000

RADC-1

CFI

(N/C)

RADC-2

CFI

1 or more

RADC-3

CFI

500

RADC-4

CFI

20

SAC-1

CFI

240

SAC-2

CFI

2700

SAC-3

CFI

968

SAC-4

CFI

2290

N(CFI) =

22

N(CFID)= 0
162

N(CFNI) =

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.3.5

Feature Name:

MIXED ITEM TYPES IN NUMERIC FORMULAS

Resolution Inequality:

N/A

Resolution Equation:

U = Q189

Number of users with usage rates:
Resolution:

AFC Reference:

A4

GQ Tl = N/A

Accept as nucleus

Data:
Application

Compli a nee

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

20

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

1 or more

FOCC-1

CFI

150

FOCC-2

CFI

50

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

5

NAVC-3

CFI

0

NCDCF

CFID

10

NEL

CFI

150

NMCSSC

CFI

100

RADC-1

CFI

(N/C)

RADC-2

CFI

1 or more

RADC-3

CFI

20

RADC-4

CFI

10

SAC-1.

CFI

100

SAC-2

CFI

4500

SAC-3

CFI

0

SAC-4

CFI

80

_
N(CFI) =

21

N(CFID) _
163

1

N(CFNI) =

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.1.4

Feature Name:

ITEM TYPE INTEGER

Resolution Inequality:

N/A

Resolution Equation:

U = Q18/(Q18 + Q22 + Q38)

Number of users with usage rates:
Resolution:

AFC Reference:

A4

GQ Tl = 15

Accept as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFID

.7525

ADPAC-2

CFID

.1428

ADPAC-3

CFID

.4772

CSC

CFI

(N/A)

FAA

CFI

.9

FOCC-1

CFI

.0963

FOCC-2

CFI

.1428

HAM

CFI

.0303

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.2857

NAVC-3

CFI

.1000

NCDCF

CFI

.8000

NEL

CFI

.5000

NMCSSC

CFI

.0476

RADC-1

CFI

(N/C)

RADC-2

CFNI

0

RADC-3

CFI

.9937

RADC-4

CFI

.7142

SAC-1

CFID

.9539

SAC-2

CFID

.8791

SAC-3

CFID

.9649

SAC-4

CFID

.9570

N(CFI) =

14

N(CFID) =
164

7

N(CFNI)

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.1.5

Feature Name:

ITEM TYPE FIXED POINT

Resolution Inequality:

N/A

Resolution Equation:

u = Q22/(Q18 + Q22 + Q38)

Number of users with usage rates:
Resolution:

AFC Reference:

A4

GQ = N/A

Accept as nucleus

Data:
Application

.omp liance

Usage

ADPAC-1

CFI

.2474

ADPAC-2

CFI

.6190

ADPAC-3

CFI

.5227

CSC

CFI

(N/A)

FAA

CFI

.8

FOCC-1

CFI

.7831

FOCC-2

CFI

0

HAM

CFI

.9090

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.7142

NAVC-3

CFI

.6000

NCDCF

CFI

.1600

NEL

CFI

.3500

NMCSSC

CFI

.5714

RADC-1

CFID

(N/C)

RADC-2

CFI

9

RADC-3

CFI

.0062

RADC-4

CFID

.2857

SAC-1

CFID

.0184

SAC-2

CFID

.0293

SAC-3

CFID

.0155

SAC-4

CFID

.0184

N(CFI) =

16

N(CFID)=
165

6

N(CFNI) =

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.1.5

Feature Name:

ITEM TYPE FIXED POINT - Scale in Declaration Blank or Zero

Resolution Inequality:

U GQ Tl = .02

Resolution Equation:

U = Q23/Q22

Number of users with usage rates:
Resolution:

AFC Reference:

A4

GQ Tl = 16

Retain as nucleus

Data:
Compliance

Application

Usage

ADPAC-1

CFI

(N/C)

ADPAC-2

CFI

.7692

ADPAC-3

CFI

.6521

CSC

CFI

(N/A)

FAA

CFI

0

FOCC-1

CFI

1

FOCC-2

CFI

0

HAM

CFI

1.166

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

1

NCDCF

CFI

0

NEL

CFI

.0285

NMCSSC

CFI

.6666

RADC-1

CFI

(N/C)

RADC-2

CFI

.9

RADC-3

CFI

1

RADC-4

CFI

.4166

SAC-1

CFI

0

SAC-2

CFI

1.156

SAC-3

CFI

.1666

SAC-4

CFI

0

N(CFI) =

16

N(CFID)=
166

0

N(CFNI) = 0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.1.8

Feature Name:

RANGE ATTRIBUTE

Resolution Inequality:

UGQ Tl = .10

Resolution Equation:

U = Q34/(Q18 + Q22)

Number of users with usage rates:
Resolution:

AFC Reference:

A4 3

GQ Tl = 0

Delete

Data:
Application

Compliance

Usage

ADPAC-1

CFNI

0

ADPAC-2

CFNI

0

ADPAC-3

CFNI

0

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFNI

0

FOCC-2

CFNI

0

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

0

NCDCF

CFNI

0

NEL

CFNI

0

NMCSSC

CFNI

0

RADC-1

CFID

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI) =

2

N(CFID) =
167

N(CFNI) =

19

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.1.9

Feature Name:

ITEM TYPE FLOATING POINT

Resolution Inequality:

N/A

Resolution Equation:

U = Q38/(Q18 + Q22 + Q38)

Number of users with usage rates:
Resolution:

AFC Reference:

A 4.4

GQ Tl = N/A

Accept as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

.2380

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

.9

FOCC-1

CFI

.1204

FOCC-2

CFI

0

HAM

CFI

.0606

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

.3000

NCDCF

CFI

.0400

NEL

CFI

.1500

NMCSSC

CFI

.3809

RADC-1

CFI

(N/C)

RADC-2

CFI

.2

RADC-3

CFI

0

RADC-4

CFI

0

SAC-1

CFI

.0276

SAC-2

CFI

.0915

SAC-3

CFI

.0194

SAC-4

CFI

.0245

N(CFI) = 22

N(CFID)=
168

°

N(CFNI) = 0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.1.6

Feature Name:

SIGN ATTRIBUTE

Resolution Inequality:

U GET1 - .01

Resolution Equation:

U = Q26/(Q18 + Q22)

A 4.4

GQ Tl =14

Number of users with usage rates:
Resolution:

AFC Reference:

Retain as nucleus (Note:

Usage data refers to "signed" items)

Data:
Application

Compliance

Usage

ADPAC-1

CFI

.04

ADPAC-2

CFI

.03

ADPAC-3

CFI

.05

CSC

CFI

(N/A)

FAA

CFI

.02

FOCC-1

CFI

1.095

FOCC-2

CFI

.04

HAM

CFI

.004

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

1

NCDCF

CFI

.008

NEL

CFI

.03

NMCSSC

CFI

.01

RADC-1

CFI

(N/C)

RADC-2

CFI

.03

RADC-3

CFI

.09

RADC-4

CFI

.01

SAC-1

CFI

.02

SAC-2

CFI

.008

SAC-3

CFI

.003

SAC-4

CFI

.02

N(CFI) =

22

N(CFID) = 0
169

N(CFNI)=

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.3.2

Feature Name:

PREFIX + AND-

Resolution Inequal 'ty:

U GQ Tl = 1

Resolution Equation:

|j = Q177

Number of users with usage rates:
Resolution:

AFC Reference:

QQ

^4 <

j] = 13

Retain as nucleus (Note modificati on of precedence (3.2.2.

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

0

ADPAC-3

CFI

2

CSC

(N/A)

FAA

CFI
*

FOCC-1

CFI

(N/C)
30
-

FOCC-2

CFI

HAM

CFI

NAVC-1

CFI

(N/C)

NAVC-2

CFI

20

NAVC-3

CFI

15

NCDCF

CFI

5

NEL

CFI

3

NMCSSC

CFID

10

RADC-1

CFI

(N/C)

RADC-2

CFNI

0

RADC-3

CFI

0

RADC-4

CFI

20

SAC-1

CFID

140

SAC-2

CFID

9000

SAC-3

CFID

64

SAC-4

CFID

1300

N(CFI)= 15

0

•

N(CFID) =

55

5

''Misprinted page in JAQ made it impossible for FAA to respond.
170

N(CFNI)= 1

RESOLUTION ANALYSIS
JAQ Reference:
Feature Name:

J 3.5.2.3.3

AFC Reference:

EXPONENTIATION

Resolution Inequality:

N/A

Resolution Equation:

N/A

Number of users with usage rates:
Resolution:

Accept as

A 4.5

OPERATOR

GQ Tl = N/A

Nucleus

Data:

Application

Compliance

ADPAC-1

CFI

ADPAC-2

CFI

ADPAC-3

CFI

CSC

CFI

FAA

CFID

FOCC-1

CFI

FOCC-2

CFI

HAM

CFID

NAVC-1

CFI

NAVC-2

CFI

NAVC-3

CFI

NCDCF

CFI

NEL

CFI

NMCSSC

CFID

RADC-1

CFI

RADC-2

CFID

RADC-3

CFI

RADC-4

CFI

SAC-1

CFID

SAC-2

CFID

SAC-3

CFID

SAC-4

CFID
N(CFI) =

14

h
N(CFID)=
171

Usage

8

N(CFNI) =

0

RESOLUTION ANALYSIS
AFC Reference: A 4.6

JAQ Reference:

J3.5.2.3.3

Feature Name:

EXPONENTIATION NOTATION - (* *)

Resolution Inequality:

U G Q Tl = 1

Resolution Equaltion:

U - Q181

Number of users with usage rates:

G Q Tl =10

Resolution: Delete
Data:

Note: Because of an oversight in the
preparation of the JAQ, insufficient
information regarding the use of exponentiation operators was obtained. We are
recommending that (* *) be dropped,
since ** is widely used in other high
level languages, and since only one
operator is required.

Compliance

Application

Usage

ADPAC-1

CFI

3

ADPAC-2

CFI

0

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

1 or more

FOCC-1

CFI

5

FOCC-2

CFI

0

HAM

CFNI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

5

NAVC-3

CFI

0

NCDCF

CFI

2

NEL

CFI

20

NMCSSC

CFNI

0

RADC-1

CFI

(N/C)

RADC-2

CFNI

0

RADC-3

CFI

5

RADC-4

CFI

0

SAC-1

CFI

20

SAC-2

CFI

225

SAC-3

CFI

15

SAC-4

CFI

20

N(CFI) = 19

N(CFID)= 0
172

N(CFNI) = 3

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.3.4

Feature Name:

Absolute Value Operator

Resolution Inequality:

N/A

Resolution Equation:

N/A

AFC Reference:

Number of users with usage rates:
Resolution:

A 4.7

GQ Tl = N/A

Retain as optional

Data:

Compl i a nee

Application

ADPAC-1

CFID

ADPAC-2

CFID

ADPAC-3

CFID

CSC

CFI

FAA

CFID

FOCC-1

CFI

FOCC-2

CFI

HAM

CFI

NAVC-1

CFI

NAVC-2

CFI

NAVC-3

CFI

NCDCF

CFI

NEL

CFI

NMCSSC

CFID

RADC-1

CFI

RADC-2

CFID

RADC-3

CFI

RADC-4

CFI

SAC-1

CFID

SAC-2

CFID

SAC-3

CFID

SAC-4

CFID
N(CFI) =

Usage

Note:

Owing to an oversight in the

preparation of the JAQ, insufficient
data regarding use of absolute value
operator were solicited.

In the

interests of being fair, we have
declared this feature as optional.

12

h
N(CFID)=
173

10

N(CFNI)= 0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.3.4

Feature Name:

ABSOLUTE VALUE NOTATION - (/ /)

Resolution Inequality:

N/A

Resolution Equation:

Q185

Number of users with usage rates:
Resolution:

Delete

Data:

Application

AFC Reference: A 4.8

GE Tl = N/A

Basis of Resolution: Only one notation for absolute
value is required. The number of application which do not
implement (/ /) or which have 0 usage is 15. Therefore (/ /)
is dropped in favor of ABS.

Compliance

Usage

ADPAC-1

CFNI

0

ADPAC-2

CFNI

0

ADPAC-3

CFNI

0

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFI

0

FOCC-2

CFI

0

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

5

NAVC-3

CFI

2

NCDCF

CFI

0

NEL

CFI

0

NMCSSC

CFI

20

RADC-1

CFI

(N/C)

RADC-2

CFI

1 or more

RADC-3

CFI

0

RADC-4

CFI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI) = 14

N(CFID) = 0
174

N(CFNI) =8

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.4.9

Feature Name:

REM

AFC Reference:

Resolution Inequality:

U GQ Tl = .05

Resolution Equation:

U = Q265/Q18

Number of users with usage rates:
Resolution:

A 4.9

GQ Tl =0

Delete

Data:
Application

Compliance

Usage

ADPAC-1

CFNI

0

ADPAC-2

CFNI

0

ADPAC-3

CFNI

0

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFNI

0

FOCC-2

CFNI

0

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

0

NCDCF

CFNI

0

NEL

CFNI

0

NMCSSC

CFNI

0

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFNI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI)=

1

N(CFID)=
175

0

N(CFNI) =

21

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.4.7

Feature Name:

REMQUO

AFC Reference: A 4.9

Resolution Inequality:

U GQ Tl = .05

Resolution Equation:

U = Q257/Q18

Number of users with usage rates:
Resolution:

GQ Tl = 7

Delete

Data:
Application

Compliance

Usage

ADPAC-1

CFI

.001

ADPAC-2

CFI

0

ADPAC-3

CFI

.009

CSC

CFI

(N/A)

FAA

CFI

.08

FOCC-1

CFID

0

FOCC-2

CFID

0

HAM

CFI

.05

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

0

NCDCF

CFNI

0

NEL

CFNI

0

NMCSSC

CFNI

0

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

.01

RADC-4

CFNI

0

SAC-1

CFID

.001

SAC-2

CFID

.003

SAC-3

CFID

.001

SAC-4

CFID

.001

N(CFI)=

9

N(CFID)=
176

6

N(CFNI) =

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.1.7

Feature Name:

ITEM TYPE DUAL

AFC Reference:

Resolution Inequality:

U GQ Tl = .10

Resolution Equation:

U = Q30/Q14

Number of users with usage rates:
Resolution:

A5

GQ Tl =0

Delete

Data:
Application

Compliance

Usage

ADPAC-1

CFNI

0

ADPAC-2

CFNI

0

ADPAC-3

CFNI

0

CSC

CFNI

(N/A)

FAA

CFNI

0

FOCC-1

CFNI

0

FOCC-2

CFNI

0

HAM

CFI

0

NAVC-1

CFNI

(N/C)

NAyC-2

CFNI

0

NAVC-3

CFNI

0

NCDCF

CFNI

0

NEL

CFNI

0

NMCSSC

CFNI

0

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFNI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI) =

1

N(CFID) =
177

N(CFNI)=

21

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.4

Feature Name:

DUAL FORMULAS

AFC Reference:

Resolution Inequality:

U GQ Tl = 0

Resolution Equation:

U = Q193/Q14

Number of users with usage rates:
Resolution:

A5

GQ Tl - T2 = 0

Delete

Data:
Application

Compliance

Usage

ADPAC-1

CFNI

0

ADPAC-2

CFNI

0

ADPAC-3

CFNI

0

CSC

CFNI

(N/A)

FAA

CFNI

0

FOCC-1

CFNI

0

FOCC-2

CFNI

0

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

0

NCDCF

CFNI

0

NEL

CFNI

0

NMCSSC

CFNI

0

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFNI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI)= C

N(CFID)=
178

0

N(CFNI) =

22

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.7

Feature Name:

RELATIONAL FORMULAS (excluding "Chained")

Resolution Inequality:

N/A

Resolution Equation:

N/A

AFC Reference:

Number of users with usage rates:
Resolution:

A6.1

GQ Tl = N/A

Accept as nucleus

Data:
Application

Compliance

ADPAC-1

CFI

ADPAC-2

CFI

ADPAC-3

CFI

CSC

CFI

FAA

CFI

FOCC-1

CFI

FOCC-2

CFI

HAM

CFI

NAVC-1

CFI

NAVC-2

CFI

NAVC-3

CFI

NCDCF

CFI

NEL

CFID

NMCSSC

CFID

RADC-1

CFI

RADC-2

CFID

RADC-3

CFI

RADC-4

CFI

SAC-1

CFID

SAC-2

CFID

SAC-3

CFID

SAC-4

CFID
N(CFI)=

15

N(CFID)=7
179

Usage

N(CFNI) = 0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.7

AFC Reference:

Feature Name:

"CHAINED" RELATIONAL FORMULAS

Resolution Inequality:

U GQ 77 = 1

Resolution Equation:

u = Q205

Number of users with usage rates:
Resolution:

A 6.2

GQ Tl = 9

Retain as optional

Data:
Application

Compliance

Usage

ADPAC-1

CFI

37

ADPAC-2

CFI

15

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

1 or more

FOCC-1

CFI

10

FOCC-2

CFI

0

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

5

NAVC-3

CFI

0

NCDCF

CFI

0

NEL

CFNI

0

NMCSSC

CFNI

0

RADC-1

CFI

(N/C)

RADC-2

CFNI

0

RADC-3

CFI

10

RADC-4

CFI

0

SAC-1

CFI

100

SAC-2

CFI

700

SAC-3

CFI

540

SAC-4

CFI

600

N(CFI) =

19

N(CFID)=
80

0

N(CFNI)= 3

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.2.8

AFC Reference:

Feature Name:

BOOLEAN FORMULAS ~ with AND, OR, NOT

Resolution Inequality:

(j GQ Tl = 1

Resolution Equation:

(j = Q209

Number of users with usage rates:
Resolution:

A7.1

GQ Tl = 15

Retain as nucleus

Data:
Compliance

Application

Usage

ADPAC-1

CFI

18

ADPAC-2

CFI

15

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

0

FOCC-1

CFI

500

FOCC-2

CFI

15

HAM

CFI

300

NAVC-1

CFI

(N/C)

NAVC-2

CFI

10

NAVC-3

CFI

20

NCDCF

CFI

20

NEL

CFI

30

NMCSSC

CFI

700

RADC-1

CFI

(N/C)

RADC-2

CFI

1 or more

RADC-3

CFI

400

RADC-4

CFI

0

SAC-1

CFI

1480

SAC-2

CFI

7000

SAC-3

CFI

1700

SAC-4

CFI

8050

N(CFI) =

21

N(CFID)= 0
181

N(CFNI) =

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.1.12

Feature Name:

ITEM TYPE BOOLEAN

AFC Reference:

Resolution Inequality:

U GQ Tl = .02

Resolution Equation:

U = Q54/Q14

Number of users with usage rates:
Resolution:

A 7.2

GQ Tl = 8

Retain as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

.0500

ADPAC-2

CFI

.1083

ADPAC-3

CFI

.2380

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFI

.0480

FOCC-2

CFI

0

HAM

CFNI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.0500

NAVC-3

CFI

.0050

NCDCF

CFI

.2000

NEL

CFID

.0100

NMCSSC

CFI

.3333

RADC-1

CFI

(N/C)

RADC-2

CFI

.2

RADC-3

CFI

0

RADC-4

CFI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI) =

15

N(CFID)
N
=
182

N(CFNI) =

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.3.1

AFC Reference:

Feature Name:

NUMERIC ITEM TYPE CONVERSION IN THE ASSIGNMENT STATEMENT

Resolution Inequality:

U GQ Tl = .01

Resolution Equation:

U = Q213/Q217A

Number of users with usage rates:
Resolution:

A 8

GQ Tl = 12

Accept as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

(N/C)

ADPAC-2

CFI

.0428

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFID

.2

FOCC-1

CFI

.0125

FOCC-2

CFI

.0500

HAM

CFID

.0600

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.6000

NAVC-3

CFI

0

NCDCF

CFI

.0500

NEL

CFI

.0350

NMCSSC

CFI

.2000

RADC-1

CFI

(N/C)

RADC-2

CFID

.2

RADC-3

CFI

.0083

RADC-4

CFI

.0250

SAC-1

CFID

.0018

SAC-2

CFID

.0700

SAC-3

CFID

.0014

SAC-4

CFID

.0023

N(CFI) =

15

N(CFID)=
183

7

N(CFNI) =

°

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.3.1

Feature Name:

BOOLEAN ASSIGNMENT STATEMENT

AFC Reference: A 8

Resolution Inequality:

N/A

Resolution Equation:

U = Q217/Q217A

Number of users with usage rates:
Resolution:

GQ Tl = N/A

Retain as nucleus

Data:
Application

Compli a nee

Usage

ADPAC-1

CFI

(N/C)

ADPAC-2

CFI

0

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFID

0

FOCC-1

CFI

0

FOCC-2

CFI

0

HAM

CFID

0

NAVC-1

CFI

(N/C

NAVC-2

CFI

0

NAVC-3

CFI

0

NCDCF

CFI

0125

NEL

CFI

.0025

NMCSSC

CFI

.2000

RADC-1

CFI

(N/C)

RADC-2

CFID

0

RADC-3

CFID

c

RADC-4

CFID

0

SAC-1

CFID

0

SAC-2

CFID

0

SAC-3

CFID

0

SAC-4

CFID

0

N(CFI) =

14

h
N(CFID)
=
184

N(CFNI) = 0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.6.1

Feature Name:

ITEM PRESET

AFC Reference:

Resolution Inequality:

U GQ Tl = .02

Resolution Equation:

U = Ql 13/Q14

Number of users with usage rates:
Resolution:

A 8.1

GQ Tl = 13

Retain as nucleus

Data:
Compliance

Application

Usage

ADPAC-1

CFI

.1714

ADPAC-2

CFI

.0416

ADPAC-3

CFI

.3809

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFI

.0720

FOCC-2

CFI

.6000

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.1000

NAVC-3

CFI

.0650

NCDCF

CFI

.0400

NEL

CFI

.0400

NMCSSC

CFI

1.333

RADC-1

CFI

(N/C)

RADC-2

CFI

2

RADC-3

CFI

.1500

RADC-4

CFI

.3738

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI)=

17

h
N(CFID)=
0

185

N(CFNI) = 5

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.6.2

Feature Name:

TABLE PRESET

AFC Reference:

Resolution Inequality:

U GQ T = .02

Resolution Equation:

U = Q116/Q78

Number of users with usage rates:
Resolution:

A 8.1

GQ Tl = 16

Retain as nucleus

Data:
Complia nee

Application

Usage

ADPAC-1

CFI

.1315

ADPAC-2

CFI

.1875

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

.2

FOCC-1

CFI

.4347

FOCC-2

CFI

.5000

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.3333

NAVC-3

CFI

0

NCDCF

CFI

.1000

NEL

CFI

.3333

NMCSSC

CFI

.2000

RADC-1

CFI

(N/C)

RADC-2

CFID

.2

RADC-3

CFI

2.000

RADC-4

CFI

.0777

SAC-1

CFID

.3333

SAC-2

CFID

1

SAC-3

CFID

.1061

SAC-4

CFI

.1088

N(CFI)= 18

N(CFID)=

186

4

N(CFNI) =

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.6.3

AFC Reference:

Feature Name:

ARRAY PRESET

Resolution Inequality:

U GQ Tl = .02

Resolution Equation:

U = Q120/Q74

Number of users with usage rates:
Resolution:

A8.1

GQ Tl = 2

Retain as option — Must be implemented if ARRAY is implemented

Data:
Application

Comp lance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

0

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFNI

0

FOCC-2

CFNI

0

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

(N/C)

NAVC-3

CFNI

0

NCDCF

CFNI

0

NEL

CFI

.3000

NMCSSC

CFNI

0

RADC-1

CFI

(N/C)

RADC-2

CFNI

0

RADC-3

CFI

1.000

RADC-4

CFI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI)=

N(CFID) = =

7

187

0

N(CFNI) =

14

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.6.4

Feature Name:

STRING PRESET

Resolution Inequality:
Resolution Equation:

AFC Reference:

A 8.1

U GQ Tl = .02
U = Q124/Q103

Number of users with usage rates:

GQ Tl = 0

Resolution: Delete
Data:

Note: STRING is deleted.

Application

Compliance

Usage

ADPAC-1

CFNI

0

ADPAC-2

CFNI

0

ADPAC-3

CFNI

0

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFNI

(N/C)

FOCC-2

CFNI

0

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

0

NCDCF

CFNI

0

NEL

CFNI

0

NMCSSC

CFNI

0

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFNI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI)= 1

N(CFID)=
188

0

N(CFNl) =

21

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.1.10

AFC Reference:

Feature Name:

ROUNDED NUMERIC ASSIGNMENT —

Resolution Inequality:

U GQ Tl = .05

Resolution Equation:

U = Q42/(Q18 + Q22 + Q38)

Number of users with usage rates:
Resolution:

Delete

A8.2

Round Attribute

GQ Tl =0

Note: Extended Numeric Round (3.2.2.14) is made optional.

Data:
Application

Compliance

Usage

ADPAC-1

CFNI

0

ADPAC-2

CFNI

0

ADPAC-3

CFNI

0

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFNI

0

FOCC-2

CFNI

0

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

0

NCDCF

CFNI

0

NEL

CFNI

0

NMCSSC

CFNI

0

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI)=

:2

N(CFID)=
189

0

N(CFNI) =

20

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.3.2

Feature Name:

EXCHANGE STATEMENT

Resolution Inequality:
Resolution Equation:

AFC Reference:

U GQ Tl = .01
U = Q221/Q217A

Number of users with usage rates:
Resolution:

A8.3

GQ Tl = 3

Retain as optional

Data:
Application

Compliance

Usage

ADPAC-1

CFI

(N/C)

ADPAC-2

CFI

.0142

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

.2

FOCC-1

CFI

.0012

FOCC-2

CFI

.0100

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

(N/C)

NCDCF

CFI

.0025

NEL

CFI

.0035

NMCSSC

CFI

.1000

RADC-1

CFI

(N/C)

RADC-2

CFI

.1

RADC-3

CFI

0

RADC-4

CFI

.0150

SAC-1

CFI

.0030

SAC-2

CFI

.0240

SAC-3

CFI

.0158

SAC-4

CFI

.0103

N(CFI)=

22

N(CFID)=
190

0

N(CFNI) =

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.4.2

Feature Name:

COMPUND STATEMENT

Resolution Inequality:

N/A

Resolution Equation:

U = Q234

AFC Reference:

Number of users with usage rates:
Resolution:

A9.1

GQ Tl = N/A

Accept as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

100

ADPAC-2

CFI

55

ADPAC-3

CFI

30

CSC

CFI

(N/A)

FAA

CFI

1 or more

FOCC-1

CFI

2000

FOCC-2

CFI

200

HAM

CFI

750

NAVC-1

CFI

(N/C)

NAVC-2

CFI

30

NAVC-3

CFI

0

NCDCF

CFI

40

NEL

CFI

200

NMCSSC

CFI

700

RADC-1

CFI

(N/C)

RADC-2

CFI

1 or more

RADC-3

CFI

500

RADC-4

CFI

100

SAC-1

CFI

9360

SAC-2

CFI

11,000

SAC-3

CFI

4140

SAC-4

CFI

17,500

N(CFI) =

2

N(CFID)=
191

0

N(CFNI) = 0

RESOLUTION ANALYSIS
JAQ Reference:
Feature Name:

J 3.5.5

AFC Reference:

GOTO STATEMENT

Resolution Inequality:
Resolution Equation:

N/A
U = Q276

Number of users with usage rates:
Resolution:

A 9.2

Accept as nucleus

Data:
Application

GQ T1 = N/A
Note: The form containing a subscript is implemented
only if Index Switch is implemented.
Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

420

ADPAC-3

CFI

33

CSC

CFI

(N/A)

FAA

CFI

1 or more

FOCC-1

CFI

0

FOCC-2

CFI

100

HAM

CFI

250

NAVC-1

CFI

(N/C)

NAVC-2

CFI

100

NAVC-3

CFI

250

NCDCF

CFI

60

NEL

CFI

400

NMCSSC

CFI

200

RADC-1

CFI

(N/C)

RADC-2

CFI

1 or more

RADC-3

CFI

1000

RADC-4

CFI

40

SAC-1

CFI

10080

SAC-2

CFI

28,000

SAC-3

CFI

5708

SAC-4

CFI

7120

N(CFI) =

22

N(CFID)=
192

0

N(CFNI) =

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.5.7

Feature Name:

STOP

AFC Reference:

Resolution Inequality:

U GQ Tl = 1

Resolution Equation:

U = Q319

Number of users with usage rates:

A 9.3

GQ Tl =9

Resolution:
Retain as nucleus
Note: Modification in 3.2.2.12
Data:
Application

Complia nee

Usage

ADPAC-1

CFI

11

ADPAC-2

CFI

0

ADPAC-3

CFI

0

CSC

CFID

(N/A)

FAA

CFID

1 or more

FOCC-1

CFI

0

FOCC-2

CFI

0

HAM

CFI

7

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

0

NCDCF

CFNI

0

NEL

CFID

15

NMCSSC

CFI

10

RADC-1

CFID

(N/C)

RADC-2

CFNI

0

RADC-3

CFID

1

RADC-4

CFID

0

SAC-1

CFID

220

SAC-2

CFID

10

SAC-3

CFID

160

SAC-4

CFI

80

N(CFI)=

11

N(CFID)=

193

9

N(CFNI) =

2

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.5.7

AFC Reference:

Feature Name:

STOP Statement Label (Pausing)

Resolution Inequality:

U GQ Tl = 1

Resolution Equation:

U = Q318

Number of users with usage rates:

A

?.3

GQ Tl = 1

Resolution: Delete
Note: Pause statement in 3.2.2.13

Application

Compliance

Uiv-ge

ADPAC-1

CFI

0

ADPAC-2

CFI

0

ADPAC-3

CFI

0

CSC

CFID

(N/A)

FAA

CFID

1 or more

FOCC-1

CFI

0

FOCC-2

CFI

0

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

0

NCDCF

CFNI

0

NEL

CFID

5

NMCSSC

CFI

0

RADC-1

CFID

(N/C)

RADC-2

CFNI

0

RADC-3

CFID

0

RADC-4

CFID

0

SAC-1

CFID

0

SAC-2

CFID

0

SAC-3

CFID

0

SAC-4

CFI

0

N(CFI)=

11

N(CFID)= 9
194

N(CFNI) =

2

RESOLUTION ANALYSIS
JAQ Reference:

j 3.5.5.3

Feature Name:

)F

AFC Reference:

STATEMENT

Resolution Inequality:

N/A

Resolution Equation:

(j = Q291/(Q291 + Q295 + Q284 + Q280)

Number of users with usage rates:
Resolution:

A 9.4.1

QQ

j] - |\|/A

Accept as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

.9742

ADPAC-2

CFI

.9090

ADPAC-3

CFI

.9756

CSC

CFI

(N/A)

FAA

CFI

.9

FOCC-1

CFI

.9615

FOCC-2

CFI

.8196

HAM

CFI

.9615

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.9708

NAVC-3

CFI

.9708

NCDCF

CFI

.6250

NEL

CFI

.9523

NMCSSC

CFI

.7407

RADC-1

CFI

(N/C)

RADC-2

CFI

.9

RADC-3

CFI

.9685

RADC-4

CFI

1

SAC-1

CFI

.9361

SAC-2

CFI

.9529

SAC-3

CFI

.9492

SAC-4

CFI

.9906

N(CFI) =

22

N(CFID)=
195

0

N(CFNI) = 0

RESOLUTION ANALYSIS
AFC Reference:

JAQ Reference:

J 3.5.5.4

Feature Name:

IFEITH/ORIF STATEMENT

Resolution Inequality:

U GQ Tl =.02

Resolution Equation:

U = Q295/(Q291 + Q295 + Q284 + Q280)

Number of users with usage rates:
Resolution:

A 9.4.2

GQ Tl =7

Retain as optional

Data:
Application

Compliance

Usage

ADPAC-1

CFI

.0103

ADPAC-2

CFI

.0363

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFI

.0384

FOCC-2

CFI

.8196

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.0097

NAVC-3

CFI

.0291

NCDCF

CFI

.1250

NEL

CFI

.0068

NMCSSC

CFI

.1111

RADC-1

CFI

(N/C)

RADC-2

CFI

.2

RADC-3

CFI

.0169

RADC-4

CFI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI)= 17

N(CFID)= 0

196

N(CFNI)= 5

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.5.2

Feature Name:

INDEX SWITCHES

AFC Reference:

Resolution Inequality:

U GQ Tl = .02

Resolution Equation:

U = Q284/(Q291 + Q295 + Q284 + Q280)

Number of users with usage rates:
Resolution:

A9.4.3

GQ Tl =6

Retain as optional

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

.0181

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

.2

FOCC-1

CFI

0

FOCC-2

CFI

.1639

HAM

CFI

.0192

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.0097

NAVC-3

CFI

0

NCDCF

CFI

.1250

NEL

CFI

.0272

NMCSSC

CFI

.0740

RADC-1

CFI

(N/C)

RADC-2

CFI

.2

RADC-3

CFI

.0096

RADC-4

CFI

0

SAC-1

CFID

.0036

SAC-2

CFID

.0071

SAC-3

CFID

.0187

SAC-4

CFID

.0025

N(CFI) =

18

N(CFID)= 4
197

N(CFNI) =

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.5.2

AFC Reference:

Feature Name:

SWITCH NAMES within SWITCH DECLARATIONS

Resolution Inequality:

U GQ Tl = .05

Resolution Equation:

U = Q285/Q284

Number of users with usage rates:
Resolution:

A 9.4.3

GQ Tl = 1

Delete

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

0

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

0

FOCC-1

CFI

0

FOCC-2

CFI

0

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

0

NCDCF

CFI

0

NEL

CFI

0

NMCSSC

CFI

0

RADC-1

CFI

(N/C)

RADC-2

CFI

.2

RADC-3

CFI

0

RADC-4

CFI

0

SAC-1

CFID

0

SAC-2

CFID

0

SAC-3

CFID

0

SAC-4

CFID

0

N(CFI)=

18

N(CFID)=
198

4

N(CFNI) =

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.5.2

Feature Name:

CLOSE NAMES within Switch Declarations

Resolution Inequality:
Resolution Equation:

AFC Refe renee:

U GQ Tl = .05
U = Q286/Q284

Number of users with usage rates:
Resolution:

A9.4.3

GQ Tl = 0

Delete

Data:
Application

Compl i a nee

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

0

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

0

FOCC-1

CFI

0

FOCC-2

CFI

0

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

0

NCDCF

CFI

0

NEL

CFI

0

NMCSSC

CFI

0

RADC-1

CFI

(N/C)

RADC-2

CFI

0

RADC-3

CFI

0

RADC-4

CFI

0

SAC-1

CFID

0

SAC-2

CFID

0

SAC-3

CFID

0

SAC-4

CFID

0

N(CFI) =

18

N(CFID) =
199

N(CFNI)= 0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.5.1

Feature Name:

ITEM SWITCH

AFC Reference:

Resolution Inequality

UGQ Tl = .01

Resolution Equation:

U = Q280/(Q291 _ Q295 + Q284 + Q280)

Number of users with usage rates:
Resolution:

A 9.4.4

GQ Tl =7

Retain as optional

Data:
Application

omp lance

ADPAC-1

CFI

.5309

ADPAC-2

CFI

.0363

ADPAC-3

CFI

.0243

CSC

CFI

(N/A)

FAA

CFI

.2

FOCC-1

CFI

0

FOCC-2

CFI

.8196

HAM

CFI

.0192

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.0097

NAVC-3

CFI

0

NCDCF

CFI

.1250

NEL

CFI

.0136

NMCSSC

CFI

.0740

RADC-1

CFI

(N/C)

RADC-2

CFI

.2

RADC-3

CFI

,0048

RADC-4

CFI

0

SAC-1

CFID

.0602

SAC-2

CFID

.0399

SAC-3

CFI

.0319

SAC-4

CFI

.0067

N(CFI) =

N(CFID)
=
Is

18

200

Usage

N(CFNi) =

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.5.5

Feature Name:

FOR LOOP - One Factor

AFC Reference:

Resolution Inequality: U GO T1 = .05
Resolution Equation:

U = Q299/(Q74 + Q78 + Q103)

Number of users with usage rates:
Resolution:

GQ T1 = 15

Retain as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

2.289

ADPAC-2

CFI

.0625

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

.2

FOCC-1

CFI

.1739

FOCC-2

CFI

.2500

HAM

CFI

.0625

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.1333

NAVC-3

CFI

0

NCDCF

CFI

0

NEL

CFI

.0750

NMCSSC

CFI

.4000

RADC-1

CFID

(N/C)

RADC-2

CFI

.2

RADC-3

CFI

12.90

RADC-4

CFI

.0222

SAC-1

CFI

2.976

SAC-2

CFI

.2492

SAC-3

CFI

.4751

SAC-4

CFI

.4578

N(CFI)=

21

N(CFID)=
201

1

N(CI

A 9.5

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.5.5

Feature Name:

FOR LOOP - Two Factor

Resolution Inequality:

U GQ Tl = .05

Resolution Equation:

U = Q300/(Q74 + Q78 + Q103)

Number of users with usage rates:
Resolution:

AFC Reference:

A9.5

GQ Tl = 17

Retain as nucleus

Data:
Application

.ompl i a nee

ADPAC-1

CFI

.0789

ADPAC-2

CFI

.1875

ADPAC-3

CFI

.6000

CSC

CFI

(N/A)

FAA

CFI

.2

FOCC-1

CFI

.6521

FOCC-2

CFI

.5000

HAM

CFI

.3125

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.0666

NAVC-3

CFI

0

NCDCF

CFI

.0400

NEL

CFI

.1000

NMCSSC

CFI

.2000

RADC-1

CFID

(N/C)

RADC-2

CFI

.7

RADC-3

CFI

1.129

RADC-4

CFI

.1666

SAC-1

CFI

.1904

SAC-2

CFI

.2419

SAC-3

CFI

.7408

SAC-4

CFI

.3421

N(CFI) =

N(CFID) =

21

202

Usage

N(CFNI)=

0

RESOLUTION ANALYSIS
JAQ Reference:

J3, .5.5.5

Feature Name:

FOR LOOP - Three Factor

Resolution Inequa lity:

UGQ Tl = .05

Resolution Equation:

U = : Q301/(Q74 + Q78 + Q103 )

Number of users with usage rates:
Resolution:

AFC Reference:

A 9.5

GQ Tl = 17

Reta in as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

.6250

ADPAC-3

CFI

1.600

CSC

CFI

(N/A)

FAA

CFI

.9

FOCC-1

CFI

3.478

FOCC-2

CFI

1.250

HAM

CFI

3.125

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.6666

NAVC-3

CFI

0

NCDCF

CFI

.4000

NEL

CFI

.1750

NMCSSC

CFI

2.666

RADC-]

CFID

(N/C)

RADC-2

CFI

.9

RADC-3

CFI

6.451

RADC-4

CFI

1.222

SAC-1

CFI

2.761

SAC-2

CFI

.8211

SAC-3

CFI

1.754

SAC-4

CFI

3.026

N(CFI) = 21

N(CFID)=

203

1

N(CFNi) =

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.5.5

Feature Name:

AFC Reference:

A 9.5

FOR LOOP - Decrementing

Resolution Inequality:

U GQ Tl = .05

Resolution Equation:

U = Q302/Q301

Number of users with usage rates:

GQ Tl = 15

Resolution: Retain as nucleus
Data:
Application

Compliance

Usage

ADPAC-1

CFI

(N/C)

ADPAC-2

CFI

.1000

ADPAC-3

CFI

.2500

CSC

CFI

(N/A)

FAA

CFI

.2

FOCC-1

CFI

.0625

FOCC-2

CFI

.6250

HAM

CFI

.0200

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.2000

NAVC-3

CFI

0

NCDCF

CFI

.2500

NEL

CFI

.1428

NMCSSC

CFI

.5000

RADC-1

CFID

(N/C)

RADC-2

CFI

.7

RADC-3

CFI

.0500

RADC-4

CFI

0

SAC-1

CFI

.3809

SAC-2

CFI

.0892

SAC-3

CFI

.2405

SAC-4

CFI

.1528

N(CFI)=

21

N(CFID)= 1
204

N(CFNI)=

°

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.5.5.6

Feature Name:

TEST STATEMENT

Resolution Inequality:
Resolution Equation:

U GQ Tl = .05
U = Q310/(Q299 + Q300 + Q301)

Number of users withjusage rates:
Resolution:

AFC Reference:

GQ Tl - 14

Retain as nucleus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

.1555

ADPAC-2

CFI

.1428

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

.8

FOCC-1

CFI

.0404

FOCC-2

CFI

.3125

HAM

CFI

.3571

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.2307

NAVC-3

CFI

0

NCDCF

CFI

.9090

NEL

CFI

.0214

NMCSSC

CFI

.2857

RADC-1

CFI

(N/C)

RADC-2

CFNI

0

RADC-3

CFI

.1181

RADC-4

CFI

.0787

SAC-]

CFI

.2610

SAC-2

CFI

.5251

SAC-3

CFI

.7140

SAC-4

CFI

1.011

N(CFI) =

21

N(CFID)=
205

0

N(CF

A 9.5.4

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.4.10

Feature Name:

PROGRAM

Resolution Inequality:
Resolution Equation:

AFC Reference:

A9.6,A9.7

N/A
N/A

Number of users with usage rates:

GQ Tl = N/A

Resolution:
Retain as nucleus
Note: Extension proposed in 3.2.2.15.
Data:
Application

Compliance

ADPAC-1

CFI

ADPAC-2

CFI

ADPAC-3

CFI

CSC

CFI

FAA

CFI

FOCC-1

CFI

FOCC-2

CFI

HAM

CFID

NAVC-1

CFI

NAVC-2

CFI

NAVC-3

CFI

NCDCF

CFI

NEL

CFID

NMCSSC

CFID

RADC-1

CFI

RADC-2

CFID

RADC-3

CFID

RADC-4

CFID

SAC-1

CFID

SAC-2

CFID

SAC-3

CFID

SAC-4

CFID
N(CFI)=

12

N(CFID)=
206

Usage

10

N(CFNI) =

0

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.4.6

Feature Name:

AFC Reference:

PROCEDURE (Excluding Function)

Resolution Inequality:

U GQ Tl = .05

Resolution Equation:

U = Q251/(Q251 + Q257 + Q261)

Number of users with usage rates:

Resolution:

A 9.6.1

GQ Tl = 17

Retain as nuc eus

Data:
Application

Compliance

Usage

ADPAC-1

CFI

1

ADPAC-2

CFI

.2916

ADPAC-3

CFI

.2857

CSC

CFI

( N/A)

FAA

CFID

.9

FOCC-1

CFI

.8823

FOCC-2

CFI

.8196

HAM

CFI

1

NAVC-1

CFID

(N/C)

NAVC-2

CFID

(N/C)

NAVC-3

CFID

(N/C)

NCDCF

CFI

.7500

NEL

CFID

.8571

NMCSSC

CFI

.6250

RADC-1

CFI

(N/C)

RADC-2

CFI

.9

RADC-3

CFI

.1250

RADC-4

CFI

1

SAC-1

CFID

.5714

SAC-2

CFID

.6060

SAC-3

CFID

.8153

SAC-4

CFID

.7128

N(CFI) =

13

N(CFID) =
207

9

N(CFNI) =

°

RESOLUTION ANALYSIS
JAQ Reference:
Feature Name:

J 3.5.4.6

AFC Reference: A 9.6.1

Close in Parameter List

Resolution Inequality:

U GQ Tl = .05

Resolution Equation:

U = Q252/Q251

Number of users with usage rates:
Resolution:

GQ Tl = 1

Retain as Optional

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

0

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFI

0

FOCC-2

CFI

0

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

(N/C)

NCDCF

CFI

0

NEL

CFI

.0833

NMCSSC

CFI

0

RADC-1

CFI

(N/C)

RADC-2

CFI

0

RADC-3

CFI

0

RADC-4

CFI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI)=

17

N(CFID)=
208

0

N(CFNI) =

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.4.6

Feature Name:

Statement label in Parameter List

AFC Reference:

Resolution Inequality:

U GQ T1 = .05

Resolution Equation:

U = Q253/Q251

Number of users with usage rates:
Resolution:

A.9.6.1

GE Tl = T2 =5

Retain as optional

Data:
Application

Usage

Compliance

ADPAC-1

CFI

.0270

ADPAC-2

CFI

.1428

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFI

0

FOCC-2

CFI

0

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

NCDCF

CFI

.0666

NEL

CFID

.1666

NMCSSC

CFI

.4000

RADC-1

CFI

(N/C)

RADC-2

CFf

.2

RADC-3

CFI

0

RADC-4

CFI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI) =

-

(N/C)'

N(CFID)=
r

17

209

0

N(CFNI) =

5

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.4.8

Feature Name:

FUNCTION

AFC Reference:

Resolution Inequality:

U GQ Tl = .05

Resolution Equation:

U = Q261/(Q251 + Q247 + Q261)

Number of users with usage rates:
Reso'ution:

A9.6.1

GQ Tl = 12

Retain as nucleus

Data:
Application

Compliance

Usage

ADPAC-i

CFI

0

ADPAC-2

CFI

.04*16

ADPAC-3

CFI

.7142

CSC

CFI

(N/A)

FAA

CFID

.2

FOCC-i

CFI

.1176

FOCC-2

CFI. 1639

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.3125

NAVC-3

CFI

NCDCF

CFI

.2500

NEL

CFI

0

NMCSSC

CFI

.1875

RADC-1

CFI

(N/C)

RADC-2

CFF

.2

RADC-3

CFI

.7500

RADC-4

CFI

0

SAC-1

CFID

.2571

SAC-2

CFID

.2121

SAC-3

CFID

.0119

SAC-4

CFID

.2666

N(CF!)=

0

-

17

N(CFID)=
210

5

N(CFNI)=

0

RESOLUTION ANALYSIS
JAQ Reference:

j 3.5.4.5

Feature Name:

CLOSE

AFC Reference:

Resolution Inequality:

\j QQ J] = .05

Resolution Equation:

y = Q247/(Q251 + Q247 + Q261)

Number of users with usage rates:
Resolution:

Retain as nucleus

A9.6.2

GQ Tl = 11
*

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

.6666

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

.2

FOCC-1

CFI

0

FOCC-2

CFI

.1639

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.0625

NAVC-3

CFI

0

NCDCF

CFI

0

NEL

CFI

.1428

NMCSSC

CFI

.1875

RADC-1

CFI

(N/C)

RADC-2

CFf

.1

RADC-3

CFI

.1250

RADC-4

CFI

0

SAC-1

CFI

.1714

SAC-2

CFI

.1818

SAC-3

CFI

.1027

SAC-^

CFI

.0205

N(CFI) =

222

N(CFID) = 0

*

N(CFN!)=

0

*These data indicate retention as optional, Interview responses to question 1-27 require
retention as nucleus
211

RESOLUTION ANALYSIS

AFC Reference:

JAQ Reference:

j 3.5.5.6

Fecture Name:

RETURN STATEMENT

Resolution Inequality:
Resolution Equation:

N/A
Q134

Number of users with usage rates:
Resolution:

A9.6.3

QQ

yj = ^ //^

Accept as nucleus

Data:
Usage

Compliance

Application
ADDAC-1

CFI

48

ADPAC-2

CFI

60

ADPAC-3

CFI

3

CSC

CFI

(N/A)

FAA

CFI

.8

FOCC-1

CFI

300

FOCC-2

CFI

25

HAM

CFI

50

NAVC-1

CFI

(N/C)

NAVC-2

CFI

25

NAVC-3

CFI

40

NCDCF

CFI

30

NEL

CFID

100

NMCSSC

CFI

75

RADC-T

CFI

(N/C)

RADC-2

CFf

.9

RADC-3

CFI

50

RADC-'-

CFI

20

SAC-1

CFI

700

SAC-2

CFI

1200

SAC-3

CFI

686

SAC-4

CFI

1520

N(CFI) =

N(CF!D)=

21
212

1

N(CFN1) = 0

RESOLUTION ANALYSIS
AFC Reference:

JAG Reference:

J 3.5.4.11

Feature Nome:

PROGRAM DECLARATION

Resolution Inequality:
Resolution Equation:

N/A
U = Q275

Number of users with usage rates:
Resolution:

A9.7

GQ Tl = N/A

Retain as optional

Date:
Compliance

Application

Usage

ADPAC-1

CFNI

0

ADPAC-2

CFNI

0

ADPAC-3

CFNI

0

CSC

CFNI

0

FAA

CFI

1 or more

FOCC-1

CFI

1

FOCC-2

CFI

0

HAM

CFNI

0

NAVC-1

CFI

0

NAVC-2

CFI

0

NAVC-3

CFI

0

NCDCF

CFNI

0

NEL

CFID

1

NMCSSC

CFNI

0

RADC-1

CFI

0

RADC-2

CFNl

0

RADC-3

CFI

0

RADC-4

CFI

0

SAC-1

CFNI

1260

SAC-2

CFNI

16

SAC-3

CFNI

110

SAC-/

CFI

50
N(CFID)
r-

N(CFI) = 10
213

N(CFNI)

11

RESOLUTION ANALYSIS
JAQ Reference:

AFC Reference:

J 3.5.4.4

Feature Nc me:

DIRECT CODE

Resolution Inequality:

UGQ Tl • • 1

Resolution Equation:

U = Q242

Number of users with usage rates:
Resolution:

A9.8

GQ Tl = 16

Retain as nucelus

Dcta:
Application

Usage

C ompliance

ADPAC-1

CFI

5

ADPAC-2

CFI

130*

ADPAC-3

CFI

12

CSC

CFI

(N/A)

FAA

CFI

1 or more

FOCC-T

CFI

60

FOCC-2

CFI

50

HAM

CFI

15

NAVC-1

CFI

(N/C)

NAVC-2

CFI

10

NAVC-3

CFI

NCDCF

CFI

15

NEL

CFI

50

NMCSSC

CFI

50

RADC-1

CFI

(N/C)

RADC-2

CFID

1 or more

RADC-3

CFI

150

RADC-4

CFI

0

SAC-1

CFID

880

SAC-2

CFID

2000

SAC-3

CFID

620

SAC-4

CFID

620

N(CFI)=

5

-

17

N(CFID)=
214

5

N(CFN1)= 0

RESOLUTION ANALYSIS
JAQ Reference:

AFC Reference:

J 3.5.1.5

Feature Name:

STRUCTURE FILE

Resolution Inequality:

N/A

Resolution Equation:

U = Q107

Number of users with usage rates:
Resolution:

GQ Tl

N/A

Delete in favor of features specificed in 3.2.2.11

Data:
Application

Compliance

Usage

ADPAC-1

CFI

34

ADPAC-2

CFI

0

ADPAC-3

CFI

2

CSC

CFID

(N/A)

FAA

CFNI

0

FOCC-1

CFID

80

FOCC-2

CFID

HAM

CFNI

0

NAVC-1

CFID

(N/C)

NAVC-2

CFID

6

NAVC-3

CFID

NCDCF

CFID

38

NEL

CFID

300

NMCSSC

CFI

20

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFID

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CF!)=

,

20

*

4

2

N(CFID)=

215

9

N(CFNI) = 9

A 10

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.5

Feature Name:

STRUCTURE FILE - Hollerith or Binary

Resolution Inequality:
Resolution Equation:

AFC Reference:

N/A

y = Q108/Q107

Number of users with usage rates:
Resolution:

A 10

GQ Tl = N/A

Delete in favor of features specified in 3.2.2.11

Data:
Application

Compliance

Usage

ADPAC-1

CFI

1

ADPAC-2

CFI

0

ADPAC-3

CFI

1

CSC

CFID

(N/A)

FAA

CFNI

0

FOCC-1

CFID

.0500

FOCC-2

CFID

HAM

CFNI

0

NAVC-1

CFID

(N/C)

NAVC-2

CFID

0

NAVC-3

CFID

NCDCF

CFID

.4736

NEL

CFID

0

NMCSSC

CFI

.5000

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFNI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI)=

,

0

*

N(CFID) = 9

4
216

0

N(CFNI) =

9

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.1.5

AFC Reference:

Feature Name:

STRUCTURE FILE - Record Length Variability

Resolution Inequality:

N/A

Resolution Equation:

\j = Q109/Q107

Number of users with usage rates:
Resolution:

GQ Tl

=

^ ]Q

N/A

Delete in favor of features specified in 3.2.2.11

Data:

Compliance

Application

Usage

ADPAC-1

CFI

.3235

ADPAC-2

CFI

0

ADPAC-3

CFI

0

CSC

CFID

(N/A)

FAA

CFNI

0

FOCC-1

CFID

.0500

FOCC-2

CFID

0

HAM

CFNI

0

NAVC-1

CFID

(N/C)

NAVC-2

CFID

0

NAVC-3

CFID

NCDCF

CFID

.5263

NEL

CFID

0

NMCSSC

CFI

.7500

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFID

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

0

•

N(CFID)=

N(CFI) = 4

217

9

N(CFN!) =

9

RESOLUTION ANALYSIS
AFC Reference:

JAQ Reference:

J 3.5.2.2.2.5

Feature Name:

INPUT/OUTPUT --POS

Resolution Inequality:

N/A

Resolution Equation:

U = Q165

Number of users with usage rates:
Reso'ution:

A 10

GQ Tl = N/A

Modify as specified in 3.2.2.11

Data:
Application

Compliance

Usage

ADPAC-1

CFID

7

ADPAC-2

CFID

0

ADPAC-3

CFID

0

CSC

CFI

(N/A)

FAA

CFNI

1 or more

FOCC-1

CFNI

0

FOCC-2

CFNI

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

NCDCF

CFID

10

NEL

CFNI

0

NMCSSC

CFI

100

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFNI

0

SAC-T

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

0

/

0

*

N(CFID)=

N(CFI) = 2
218

4

N(CFNI) =

16

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.3.3

AFC Reference:

Feature Name:

INPUT/OUTPUT - OPEN Statement with Operand

Resolution Inequality:

N/A

Resolution Equation:

U = Q225

Number of users with usage rates:
Resolution:

A 10

GQ Tl = N/A

Delete in favor of features specified in 3.2.2.11

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

0

ADPAC-3

CFI

2

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFNI

0

FOCC-2

CFNI

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

0

NCDCF

CFID

0

NEL

CFNI

0

NMCSSC

CFID

0

RADC-I

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFNI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI)=

4

,

N(CFID)=
219

0

2

N(CFNI) =

J6

RESOLUTION ANALYSIS
JAQ Reference:

j 3.5.3.3

Feature Name:

INPUT/OUTPUT - OPEN Statement without Operand

Resolution Inequality:
Resolution Equation:

AFC Reference:

N/A
y = Q226

Number of users with usage rates:
Resolution:

A 10

=

GQ Tl

N/A

Delete in favor of features specified in 3.2.2.11

Data:
Application

Compliance

Usage

ADPAC-1

CF,

18

ADPAC-2

CF|

0

ADPAC-3

Cp|

1

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFNI

0

FOCC-2

CFNI

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

NCDCF

CFID

0

NEL

CFNI

0

NMCSSC

CFID

20

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-^

CFNI

0

SAC-^

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-'-

CFNI

0

N(CFI)=

-

0

*

4

0

N(CFID)=

220

2

N(CFNI) =

16

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.3.3

Feature Name:

INPUT/OUTPUT - SHUT Statement with Operand

Resolution Inequality:

AFC Reference:

A 10

N/A
l

Resolution Equation:

U = Q227

Number of users with usage rates:
Resolution:

GQ Tl = N/A

Delete in favor of features specified in 3.2.2.11

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

0

ADPAC-3

CFI

7

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFNI

0

FOCC-2

CFNI

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

NCDCF

CFID

10

NEL

CFNI

0

NMCSSC

CFID

0

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFNI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CFI)=

4i

0

*

N(CFID)=
221

0

,

2i

N(CFN!) =
N(CFNI)

16

RESOLUTION ANALYSIS
JAG Reference:

j 3.5.3.3

Fec'ure Name:

INPUT/OUTPUT - SHUT Statement Without Operand

Resolution Inequality:

|\|/A

Resolution Equation:

(J = Q228

Number of users with usage rates:
Resolution:

AFC Reference:

A 10

GQ Tl = N/A

Delete in favor of Features specified in 3.2.2.11

Data:
Application

Usage

Compliance

ADPAC-1

CFI

18

ADPAC-2

CFI

0

ADPAC-3

CFI

2

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFNI

0

FOCC-2

CFNI

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

0

NCDCF

CFID

0

NEL

CFNI

0

NMCSSC

CFID

20

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

~ADC-3

CFNI

0

RADC-'-

CFNI

0

SAC-i

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-^-

CFNI

0

N(CF!)= A \

N(CFID)
222

0

'

2

N(CFNI)= 16

RESOLUTION ANALYSIS
JAQ Reference:
Feature Name:

j 3.5.3.3

A 10

INPUT/OUTPUT - INPUT Statement

Resolution Inequality:

|s|/A

Resolution Equation:

\j = Q229

Number of users with usage rates:
Resolution:

AFC Reference:

GQ Tl = N/A

Delete in favor of features specified in 3.2.2.11

Data:
Application

Usage

Compliance

ADPAC-1

CFI

18

ADPAC-2

CFI

0

ADPAC-3

CFI '

0

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFNI

0

FOCC-2

CFNI

0

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

0

NCDCF

CFID

20

NEL

CFNI

0

NMCSSC

CFID

50

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFNI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFI

0

N(CFI) = 4

N(CFID)=
r223

2

N(CFNI)= 16

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.3.3

AFC Reference:

Feature Name:

INPUT/OUTPUT - OUTPUT Statement

Resolution Inequality:

N/A

Resolution Equation:

U = Q230

Number of users with usage rates:
Resolution:

A

10

GQ Tl = N/A

Delete in favor of features specified in 3.2.2.11

Data:
Comoliance

Application

Usage

i

ADPAC-1

CFI

18

ADPAC-2

CFI

0

ADPAC-3

CFI

14

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFNI

0

FCCC-2

CFNI

0

HAM

CFNI

0

NAVC-1

CFNI

(N/C)

NAVC-2

CFNI

0

NAVC-3

CFNI

NCDCF

CFID

20

NEL

CFNI

0

NMCSSC

CFID

50

RADC-1

CFNI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

0

RADC-4

CFNI

0

SAC-1

CFNI

0

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-4

CFNI

0

N(CF!) =

4

"

0

N(CF!D)=
224

2

N(CFNI)=

16

RESOLUTION ANALYSIS
JAG Reference:

J 3.5.1.1.2.2

Feature Name:

ITEM Declaration by Preset Constant

Resolution Inequality:
Resolution Equation:

A 11.1

U GQ Tl = .05
U = Q8/Q14

Number of users with usage rates:

Resolution:

AFC Reference:

GQ Tl = N/A

Retain as optional

Data:
Application

Compliance

ADPAC-1

CFI

ADPAC-2

CFI

Usage
1
0
x

ADPAC-3

CFI

.0476

CSC

CFI

(N/A)

FAA

CFI

.8

FOCC-1

CFI

.0012

FOCC-2

CFI

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

•

0

.1250
•*

NAVC-3

CFI

NCDCF

CFI

.0200

NEL

CFI

.2000

NMCSSC

CFI

.1333

RADC-1

CFI

(N/C)

RADC-2

CFNl

0

RADC-3

CFI

0

RADC-4

CFNI

.2757

SAC-1

CFID

.0362

SAC-2

CFID

.1789

SAC-3

CFID

.0428

SAC-4

CFI

.0367

N(CF!)=

0

N(CF!D) = 3

17
225

N(CFNI) =

2

RESOLUTION ANALYSIS
AFC Reference: A 11.2

JAQ Reference:

J 3.5.4.3

Feature Name:

Multiple Statement Labels

Resolution Inequality:

U GQ T1 = .05

Resolution Equation: U = Q238/Total Number of Statements
Number of users with usage rates:
Resolution:

GQ Tl = N/A

Retain as nucleus

Data:

Compl? a nee

Application

Note: These data indicate
that the multiple statement
labels feature ought to be
deleted. Because of the high
degree of interplay between the
various kinds of Statements in
JOVIAL and the ease of syntactic
specification obtained by
allowing this feature (CED 2448),
we are recommending that this
feature be retained as nucleus.
Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

0

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFI

.0597

FOCC-2

CFI

0

HAM

CFID

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

0

NCDCF

CFI

.0031

NEL

CFI

0

NMCSSC

CFI

0

RADC-1

CFI

(N/C)

RADC-2

CFID

0

RADC-3

CFID

.0010

RADC-4

CFI

0

SAC-1

CFID

0

SAC-2

CFID

.0001

SAC-3

CFID

0

SAC-4

CFID

0

N(CFI) = 14

N(CFID) = 7
226

N(CFNI) = 1

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.6.2

AFC Reference:

Feature Name:

DEFINE Directive

Resolution Inequality:

U GQ Tl = .001

Resolution Equation:

\j = Q236/Total Number of Statements

Number of users with usage rates:
Resolution:

QQ J]

A 12.1

= Q

Retain as optional

Data:
Compliance

Application

Usage

ADPAC-i

CFI

.0035

ADPAC-2

CFI

.0071

ADPAC-3

CFI

" (N/C)

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFI

.0037

FOCC-2

CFI

0

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

.0148

NCDCF

CFI

.0031

NEL

CFI

.0100

NMCSSC

CFI

.0010

RADC-1

CFI

(N/C)

RADC-2

CFNI

0

RADC-3

CFI

.0010

RADC-4

CFI

0

SAC-1

CFNI

(

SAC-2

CFNI

0

SAC-3

CFNI

0

SAC-^

CFID

0

N(CFI)=

N(CFID)=

16

227

!

N(CFNI)=

5

RESOLUTION ANALYSIS
A?c

JAQ Reference:

J 3.5.1.1.3

Reference:

Feature Name:

MODE DIRECTIVE - Automatic and Explicit

A 12>2

Resolution Inequality: U GQ Tl = .02
Resolution Equation:

U = Q12/Q14

Number of users with usage rates:
Resolution:

GQ Tl = 5

Retain as optional (Note extension as specified in 3.2.2.8)

Data:
Application

Compliance

Usage

ADPAC-1

CFI

0

ADPAC-2

CFI

.0200

ADPAC-3

CFI

0

CSC

CFI

(N/A)

CFNI

0

FOCC-1

CFI

0

FOCC-2

CFI

0

HAM

CFNI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

1

NCDCF

CFNI

0

NEL

CFI

.4000

NMCSSC

CFI

.0666

RADC-1

CFI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

.0500

RADC-4

CFNI

0

SAC-i

CFID

0

SAC-2

CFID

0

SAC-3

CFID

0

SAC-4

CFID

0

FAA

"

N(CFI)=

12

N(CF1D)=
228

4

N(CFNI) =

RESOLUTION ANALYSIS

JAQ Reference:

J 3.5.1.1.3

Feature Name:

MODE DIRECTIVE -Explicit

Resolution Inequality:

UGQT1 = 1

Resolution Equation:

U-Q13

Number of users with usage rates:
Resolution:

AFC Reference: A 12.2

^Q Tl =4

Retain as optional (Note extension as specified in 3.2.2.8)

Data:

Application

Usage

Compliance

ADPAC-1

CFI

0

ADPAC-2

CFI

10

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFNI

0

FOCC-1

CFI

0

FOCC-2

CFI

0

HAM

CFNI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

0

NAVC-3

CFI

200

NCDCF

CFNI

0

NEL

CFI

40

NMCSSC

CFI

5

RADC-1

CFI

(N/C)

RADC-2

CFNI

0

RADC-3

CFNI

1

RADC-4

CFNI

0

CFID

0

CFID

0

CFID

0

CFID

0

SAC-l"
SAC-2
SAC-3
SAC-4
N(CFI) =

12

N(CF1D)
22?

_ 4

_
N(CFN1) =

6

RESOLUTION ANALYSIS

AFC Reference:

JAQ Reference:

J 3.5.1.; 3.2

Feature Name:

LIKE TABLE DECLARATION

Resolution Inequal ity:

UGQT1 = .05

Resolution Equation:

U = Q82/Q78
GQ Tl =9

Number of users with usage rates:
Resolution:

12.4

Retain as optional

Data:
Usage

Comoliance

Application
ADPAC-1

CFI

.0789

ADPAC-2

CFI

.0625

ADPAC-3

CFI

0

CSC

CFI

(N/A)

FAA

CFI

.2

FOCC-]

CFI

.0130

FOCC-2

CFI

.1000

HAM

CFI

0

NAVC-1

CFI

(N/C)

NAVC-2

CFI

.0666

NAVC-3

CFI

0

NCDCF

CFNI

0

CFI

.2333

CFI

.1333

CFI

(N/C)

CFI

.2

CFI

0

CFI

0

CFI

.0476

CFI

.0346

CFI

.0078

CFI

.1088

NSL
NMCSSC
RADC-1
RADC-2
RADC-3
RADC-4
SAC-i
SAC-2
SAC-3
SAC-A

N(CFI) =

21

N(CF!D) =
230

0

N(CFN1) = 1

RESOLUTION ANALYSIS
JAQ Reference:

J 3.5.5.5.5

Feature Name:

ALL

Resolution Inequality:

U GQ T = .05

Resolution Equation:

U = Q306/Q78

Number of users with usage rates:
Resolution:

AFC Reference:

A 12.5

GQ Tl = 12

Retain as nucleus

Data:
Application

Compile nee

Usage

ADPAC-1

CFID

.3421

ADPAC-2

CFID

.0625

ADPAC-3

CFID

0

CSC

CFI

(N/A)

CFID

.8

FOCC-1 '

CFI

-W34

FOCC-2

CFI

0

HAM

CFI

°

NAVC-1

CFI

CFI

(N/C)
.06666

CFI

0

CFI

.1000

CFID

.1000

CFI

.2000

CFI

(N/C).

CFI

.2

CFI

0

CFI

0

CFID

.1726

CFID

.1230

CFID

.4038

CFID

.4455

FAA

•

NAVC-2
NAVC-3
NCDCF
NEL
NMCSSC
RADC-1
RADC-2
RADC-3
RADC-4
SAC-1
SAC-2
SAC-3
SAC-4
N(CF1)=

13

N(CF1D)=
231

9

N(CFNI) -

0

RESOLUTION ANALYSIS
JAQ Referc •nee:

J 3.5.6. 1

Feature Nc me:

COMPOOL

Resolution necuality:

N/A

Resolution Equation:

N/A

AFC Reference:

A 12.6

GQ Tl = N/A

Number of users with usage rates:
Resolution:

<

Retain as nucleus

Dota:
C omoliance

Application
ADPAC-1

CFI

ADPAC-2

CFI

ADPAC-3

CFI

CSC

CFI

FAA

CFI

FOCC-1

CFI

FOCC-2

CFI

HAM

CFI

NAVC-1

CFI

NAVC-2

CFI

NAVC-3

CFI

NCDCF

CFI

NEL

CFI

NMCSSC

CFID

RADC-1

CFI

RADC-2

CFNI

RADC-3

CFI

RADC-4

CFNI

SAC-!

CFI

SAC-2

CFI

SAC-3

CFI

SAC-4

CFI
N(CF!)=

19

N(CF!D) =
232

Usage

1

N(CFNI) =

2

J 3.5.7
OTHER FEATURES
Following is the collection of response to the other feature section of the JAQ that
included potential JOVIAL language additions not specifically mentioned in the
previous sections of the JAQ:
CSC

(1)

Hexadecimal constant feature provided
(as well as octal)

(2)

Double precision floating point constants
and variables

(3)

An ability to declare a PROC as a closed
routine using START PROC
. . is provided
to augment the standards

FAA

"EXIT" - Return to monitor instruction

FOCC-1

(1)

A formatting and editing capability is
included (FORMAT1, ENCODE', DECODE')

(2)

"LOAD"' is used to bring a program in
loader format into core

(3)

"MESSAGE"' enables a character string to
be output to the system console

(4)

"FAULT1 and NOFAULT"' are used to enable
and disable fault interrupts

233

APPENDIX III
INTERVIEW QUESTIONS

This Appendix contains the questions asked of participants at interview. The
symbols "Y", "N", "NSF", "CT", denote "Yes", "No", "No Strong Feeling",
and "Can't Tell" . "No Strong Feeling" was used by respondents when they
felt that the oroposed addition, extension, or modification would be only
marginally heloful . "Can't Tell" was used when resDondents felt they required
more SDecific information regarding implementation of a oroposed feature in order
to decide whether or not it would be worthwhile. The number in the parenthesis
is the related "Aoproach for Change" reference number.
The interview responses to these questions are included in sequential order in
Appendix 4, along with their recommended disposition or resolution.
1)

Expanded Character Sets (Al . 1 . 1)

Equipments which oermit the use of expanded character sets are currently
available. Using these equipments it is possible in writing JOVIAL Drograms
to use, for examole, the symbol "  ", "<" " Comparisons?

Number of Users with Response Y:

10

Number of Users with Response N:

1

Number of Users with Response NSF:

1

Number of Users with Response CT:

0

Data:
Application

Resolution:

Resp onse

ADPAC

NSF

FAA

Y

FOCC

Y

HAM

N

NAVC

Y

NCDCF

Y

NEL

Y

NHCP

Y

NMCSSC

Y

RADC

Y

SAC

Y

TWA

Y

Adopt literal comparison feature (3.2.2.4.2) (nucleus)

256

NTERVIEW ANALYSIS

Interview Question:

1-4

AFC Reference: A 1 .1

_
Question Content:

(1) Deal With Data Which are Simply BIT Strings?
^ ^^ Q{J ;$ ^^ |$ Referenced ^^ Ju$f B|T

Number of Users with Response Y:

(1)

8

(2)

9

Number of Users with Response N:

(1)

4

(2)

3

Number of Users with Response NSF:

(1)

0

(2)

0

Number of Users with Response CT:

(1)

0

(2)

0

Sfring?

Data:
Application

Response

(1) Y

(2) Y

FAA

Y

Y

FOCC

N

N

HAM

N

Y

NAVC

Y

Y

NCDCF

N

N

NEL

Y

Y

NHCP

Y

Y

NMCSSC

Y

Y

RADC

N

N

SAC

Y

Y

TWA

Y

Y

ADPAC

Note:

The purpose of Questions 1-4 (1), (2) was to ascertain whether or not
a formal item type "bit string" ought to be incorporated into JOVIAL.
Operations on bit strings might include assignment, concateration,
ana,
or,
not, etc.

Resolution:

No recommendation at this time.

257

INTERVIEW ANALYSIS

Interview Question:

1-5

AFC Reference: A 1 .2

Question Content:

In Favor of GROUP Data Structure?

Number of Users with Response Y:

7

Number of Users with Response N:

4

Number of Users with Response NSF:

1

Number of Users with Response CT:

0

Data:
Application

Resolution:

Response

ADPAC

NSF

FAA

Y

FOCC

Y

HAM

N

NAVC

N

NCDCF

N

NEL

Y

NHCP

Y

NMCSSC

Y

RADC

Y

SAC

N

TWA

Y

No recommendation at this time.

258

NTERVIEW ANALYSIS

Interview Question:

1-6

Question Content:

In Favor of SET Data Structure?

AFC Reference: A 1 .2

Number of Users with Response Y:

8

Number of Users with Response N:

2

Number of Users with Response NSF:

2

Number of Users with Response CT:

0

Data:
Application

Resolution:

Response

ADPAC

NSF

FAA

Y

FOCC

NSF

HAM

N

NAVC

N

NCDCF

Y

NEL

Y

NHCP

Y

NMCSSC

Y

RADC

Y

SAC

Y

TWA

Y

No recommendation at this time,

259

INTERVIEW ANALYSIS

Interview Question:

1-7

AFC Reference: A 1

Question Content:

In Favor of Dynamic Allocation Facilities?

Number of Users with Response Y:

4

Number of Users with Response N:

6

Number of Users with Response NSF:

0

Number of Users with Response CT:

2

Data:
Application

Resolution:

Resp onse

ADPAC

N

FAA

CT

FOCC

N

HAM

N

NAVC

N

NCDCF

Y

NEL

CT

NHCP

N

NMCSSC

Y

RADC

N

SAC

Y

TWA

Y

No recommendation at this time.

260

INTERVIEW ANALYSIS

Interview Question:

1-8

AFC Reference: A 3

Question Content:

Explicit Storage Allocation Facilities Important?

Number of Users with Response Y:

12

Number of Users with Response N:

0

Number of Users with Response NSF:

0

Number of Users with Response CT:

0

Data:
Application

Response

ADPAC

Y

FAA

Y

FOCC

Y

HAM

Y

NAVC

Y

NCDCF

Y

NEL

Y

NHCP

Y

NMCSSC

Y

RADC

Y

SAC

Y

TWA

Y

Note:

This question was not intended to determine the need for any specific feature
or features, but rather to measure, in general terms, command and control
programming requirements. Users felt strongly that these explicit storage
allocation facilities are among the most powerful of the JOVIAL capabilities.

Resolution:

N/A

261

NTERVIEW ANALYSIS

Interview Question:

1-9

AFC Reference: A 3

Question Content:

Transfer Already, Or In Future, Programs Between Different
Computer Systems?
Number of Users with Response to Y:
10
Number of Users with Response to N:

2

Number of Users with Response to NSF:

0

Number of Users with Response to CT:

0

Data:
Application

Response

ADPAC

Y

FAA

Y

FOCC

Y

HAM

N

NAVC

Y

NCDCF

Y

NEL

Y

NHCP

N

NMCSSC

Y

RADC

Y

SAC

Y

TWA

Y

Note:

This question, like 1-9, was not intended to determine the need for any specific
feature or features, but rather to ascertain user requirements. The fact that the
great majority of users responded with "yes" implies that the command and
control language should be very machine independent. This conflicts with the
highly machine dependent explicit storage allocation facilities deemed so
important by users. It is important to note that most users commented that they
were willing to sacrifice machine independence for allocation facilities.

Resolution:

N/A

262

INTERVIEW ANALYSIS

Interview Question:

1-10

Question Content:

Is "Memory Model" Sufficient?

AFC Reference: A 3

Number of Users with Response Y:

12

Number of Users with Response N:

0

Number of Users with Response NSF:

0

Number of Users with Response CT:

0

Data:
Application

Resolution:

Response

ADPAC

Y

FAA

Y

FOCC

Y

HAM

Y

NAVC

Y

NCDCF

Y

NEL

Y

NHCP

Y

NMCSSC

Y

RADC

N

SAC

Y

TWA

Y

Retain the memory model — words, bits, bytes — as is.

263

INTERVIEW ANALYSIS

Interview Question:

1-11

AFC Reference: A 3.2

^
_
A.
Question Content:

In Favor of Dropping Absolute Adherence to Signed Magnitude
_
Z
t.
Representation?

Number of Users with Response Y:

9

Number of Users with Response N:

1

Number of Users with Response NSF:

2

Number of Users with Response CT:

0

Data:
Application

Resolution:

Response

ADPAC

Y

FAA

Y

FOCC

Y

HAM

N

NAVC

Y

NCDCF

Y

NEL

Y

NHCP

Y

NMCSSC

Y

RADC

Y

SAC

NSF

TWA

NSF

Adopt "relaxed" signed magnitude interpretation (3.2.2.5).

264

NTERVIEW ANALYSIS

Interview Question:

1-12

Question Content:

In Favor of Hexadecimal Constants?

AFC Reference: A 3.1

Number of Users with Response Y:

5

Number of Users with Response N:

7

Number of Users with Response NSF:

N/A

Number of Users with Response CT:

N/A

Data:
Application

Response

ADPAC

N

FAA

Y

FOCC

Y

HAM

N

NAVC

N

NCDCF

N

NEL

Y

NHCP

Y

NMCSSC

Y

RADC

N

SAC

Y

TWA

N

Note:

It is recommended that compilers must implement either the octal constant
or the hexadecimal constant, but that they may implement both.

Resolution:

Adopt a hexadecimal constant capability (3.2.2.1) (optional)

265

INTERVIEW ANALYSIS

Interview Question:

1-13

AFC Reference: A 3

Question Content:

In Favor of Generalized Packing?

Number of Users with Response Y:

9

Number of Users with Response N:

3

Number of Users with Response NSF:

0

Number of Users with Response CT:

0

Data:
Application

Resolution:

Response

ADPAC

Y

FAA

Y

FOCC

Y

HAM

N

NAVC

N

NCDCF

N

NEL

Y

NHCP

Y

NMCSSC

Y

RADC

Y

SAC

Y

TWA

Y

No recommendation at this time.

266

INTERVIEW ANALYSIS

Interview Question:

1-14

Question Content:

Use of OVERLAY

AFC Reference: A 3.6

Number of Users with Response Y:

"(l)/(2) more"

Number of Users with Response N:

"(3)/(4) more"

Number of Users with Response NSF:

"Both the Same1

Number of Users with Response CT:

1

Data:
Application

Response

ADPAC

(3)/(4) more

FA A

Both the same

FOCC

Both the same

HAM

CT

NAVC

(1 )/(2) more

NCDCF

(3)/(4) more

NEL

(3)/(4) more

NHCP

Both the same

NMCSSC

Both the same

RADC

(3)/(4) more

SAC

(1 )/(2) more

TWA

Both the same

Note:

(See next page)

Resolution:

No recommendation at this time.

267

Note:

The purpose of this question was to determine whether OVERLAY
is used more for directing allocation — its immediately apparent
function — or for applying multiple interpretations to data and
data structures. DDI contended in the AFC that it would be
preferable to provide distinct features for the two fundamental functions
performed by OVERLAY because this would provide greater ease in
training novice programmers and because the ambiguity of the intent
of an OVERLAY (is the programmer directing allocation or is he
assigning more than one set of attributes to a given datum or data
structure?) would be avoided. The responses indicate that nine
of the 12 applications use OVERLAY at least as much for performing the "multiple interpretations" function as for the allocation
direction function. Based upon these responses, we should recommend
distinct features to replace OVERLAY; however, owing to the fact
that we are proposing no action be taken as yet in implementing new
data structures, we feel that it would be counter-productive to
propose features to replace OVERLAY at this time.

268

INTERVIEW ANALYSIS

Interview Question:

1-15

AFC Reference: A 3.7/A 3.8

_
.
_
Question Content:

(1) In Favor of Obtaining Absolute Address Specifications?
,ox . _
. . .
,r\r-n
(2)
In Favor of DRetaining y'LOC?

Number of Users with Response Y:

(1)

8

(2)

9

Number of Users with Response N:

(1)

4

(2)

3

Number of Users with Response NSF:

(1)

0

(2)

0

Number of Users with Response CT:

(1)

0

(2)

0

Data:
Application

0)

1

Y (2)

Y

FAA

Y

Y

FOCC

Y

Y

HAM

N

N

NAVC

Y

N

NCDCF

N

N

NEL

N

Y

NHCP

Y

Y

NMCSSC

N

Y

RADC

Y

Y

SAC

Y

Y

TWA

Y

Y

ADPAC

Resolution:

Re
Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.4
Linearized                      : Yes
Page Count                      : 296
Page Mode                       : UseNone
XMP Toolkit                     : XMP Core 4.1.1
Metadata Date                   : 2010:09:29 14:41:53-04:00
Creator Tool                    : LuraDocument PDF Compressor Server 5.5.50.41
Create Date                     : 2010:09:29 14:41:53-05:00
Modify Date                     : 2010:09:29 14:41:53-05:00
Producer                        : LuraDocument PDF v2.41
Part                            : 1
Conformance                     : B
Document ID                     : uuid:uuid:7b5f3585-8bf3-6a3c-bbd1-6c362753950c
Version ID                      : 1
Creator                         : LuraDocument PDF Compressor Server 5.5.50.41
EXIF Metadata provided by EXIF.tools

Navigation menu