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
.
Page Count: 296
| Download | |
| Open PDF In Browser | View 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