You are on page 1of 10

S. GORN, Editor; R . W. BEMER, Asst.

Editor, Glossary & Termi nol ogy


J. GREEN, Asst . ~di t or, Pr ogr ammi ng Languages
E. LOHSE, Asst. Editor, I nf or mat i on Interchange
A Description of the APT Language*
S. A. BROWN, C. E. D~AYTO~, B. 1V[ITTMAN
I I T Research Institute,t Chicago, Illinois
The APT ( Automatically Programmed Tools) l angu age for numerical control programming is described using
the metalinguistic notation introduced in the ALGOL 60 report. Examples of APT usage ar e included. Presented
also ar e an historical summary of the dev el opment of APT and a statement concerning its present status.
INTRODUCTION
The application of numerical control (N/C) to manu-
facturing has increased steadily in importance since its
feasibility was demonstrated by MIT' s Servo-mechanisms
Laboratory in 1952. The introduction of the computer
to assist in the preparation of the numerical control in-
formation has been a key to practical utilization of N/ C
for a variety of manufacturing processes. In contour
milling, for example, it is often necessary to approximate
a space curve by straight line segments (cuts) within a
few thousandths of an inch. tolerance. To accomplish
this one may require the generation of thousands of
coordinate points lying on the curve (or within tolerance
of the curve) and for each of these points a cutter-radial
offset must be calculated to determine the cutter center
path.
A great number of computer systems have been de-
veloped for numerical control programming. Among
these are APT, WALDO, AUTOPROMT, SPLIT,
AUTOSPOT, AUTOMAP, etc. APT (Automatically
Programmed Tools) is the most general and most widely
used of these systems. The current APT system is presently
available on one large scale computer and is being imple-
mented on others. The APT system is in daily use in a
number of manufacturing organizations.
In this paper the development of APT is summarized,
its present status is discussed, and its language char-
acteristics are described.
Historical Summary
In 1955, a prototype APT system was coded for the
Whirlwind computer at MIT to demonstrate feasibility.
* Recei ved August 15, 1963.
t For mer l y Ar mour Research F oundat i on of Il l i noi s I ns t i t ut e
of Technol ogy.
This rudimentary version required the programmer to
specify the endpoints of each straight line cut to be per-
formed by the machine tool. In 1957, member organiza-
tions of the Aerospace Industries Association (AIA),
in cooperation with MIT, undertook further development
of the APT system. As a result of this development, a
more advanced system was prepared for the IBM 704
in 1958. This system, called APT II, relieved the pro-
grammer of the responsibility of computing successive
cutter locations and enabled him to describe the curve in
an artificial language resembling English [1]. The APT sys-
tem provided a language translator. This was the begin-
ning of the APT language as we know it today, a language
which permits the so-called part programmer to describe
the part to be machined and the functions to be per-
formed on t hat part.
Several versions of APT II have been used successfully
in production by many aerospace companies. A still more
effective system, known as APT III, was produced for
the IBM 7090 as a cooperative AIA project and was
released in December of 1961 [2].
During 1961, realizing that the APT concept was
practical, but that its capabilities and potential had been
just barely tapped, the AIA established the APT Long
Range Program. Armour Research Foundation (now the
IIT Research Institute) was selected to assume main-
tenance and validation responsibility for the existing
APT system, and to direct the future course of a long-
range developmental program. At the same time, the APT
system, which previously had been available only to AIA
members, was made available to any American company
or government facility which desired to participate in
the program. Companies joining the APT Long Range
Program receive the complete APT system, documenta-
tion, training, etc., and by participating, help to under-
write the cost of further development.
Vol ume 6 / Numbe r l l / Nove mbe r , 1963 Co mmu n i c a t i o n s o f t h e ACM 649
St at us of t h e APT Sys t em
Besides the APT system on the I BM 7090, k~n!vac
is developing APT for the UNIVAC 1107 and other con>
put er implementations are being studied. In addition,
under an Air Force cont ract early in 1963, I BM demon-
strated the feasibility of implementing a substantial
subset of APT on a small comput er [3]. This subset,
known as ADAPT, or comparable subsets are expected
to be made available soon by a number of manufact urers
of small computers.
Now t hat APT and its subsets will be gaining broadening
utility, a group, initiated by the X3.4 Commi t t ee on
Common Programmi ng Languages of the American
St andards Association, has begun to consider the desira-
bility and feasibility of an organized st andardi zat i on
act i vi t y for APT. This st udy is to be conducted by a
group of APT and ADAPT implementors and users under
the auspices of the ASA subcommittee X3.4.2.
THE APT LANGUAGE
General Desc ri pt i on
The APT language provides the same flexibility of
expression to part programmers t hat st andard program-
ming languages provide to comput er programmers.
Wi t h APT the part programmer can define tool shapes,
tolerances, geometric definitions, direction of mot i on of
t he tool, tool position relative to controlling surface,
and auxiliary commands. In addition, t he part programmer
cart write comput at i onal st at ement s, macros, and looping
statements. The present APT language has a vocabul ary
of approxi mat el y 275 words.
An APT part program consists of a sequence of slate-
ments, each of which contains at least one uni t of informa-
tion adequat e in itself to act i vat e one complete function
of the APT system or to describe fully one pert i nent
condition or fact. Examples of APT st at ement s are:
COOLNT/ FLOOD
GO TO/ SETPT
L1 = LI NE/ PT1, PT2
Tur n on coolant at t he flood set t i ng
Move tool to a poi nt symbolically desig-
nat ed as " SETPT"
L1 is the symbolic designation of a line
passing t hrough points PT1 and PT2
Most APT st at ement s are divided into two sections
separated by a slash. The "maj or " word appears to the
left of the slash. The secondary section, if required, ap-
pears to the right of the slash and contains necessary
modifiers to t he maj or word. Nesting is allowable, i.e.
secondary sections may themselves be sectionalized.
For example:
GO TO/(POINT/LIN 1, LIN 2) Move the tool to a point which
is the intersection of two pre-
viously defined lines, LIN 1
and LIN 2.
The following sections contain a general description of
the APT language as implemented for the I BM 7090.
The not at i on used is identical to the metalanguage for
syntactic description which was employed in previous
ALGOL [4] and NELIAC [5] reports. The basic symbols of
the metalanguage are:
:: = connective meaning "is defined to be"
I connective meaning "or "
( } delimiting brackets enclosing metalinguistic
variables
I t should be pointed out t hat for brevi t y, the entire APT
language has not been included in this report. An effort
has been made, however, to present the synt ax in sufficient
detail to illustrate the scope of APT expression in nu-
merical control programming.
1.0 Basi c Symbol s , Identi f i ers, Numbers , St ri ngs
1.0.1 Semantics. The APT language is composed
of a number of basic symbols.
1.0.2 Syntax
(basic symbol) :: = (letter) I (digit) [ (delimiter)
1.1 LETTERS
1.1.1 Semantics. The upper-case, Roman al phabet
is used to form identifiers and strings.
1.1.2 Syntax
(letter) : : = A I BI CI D IE IF [ GI H I I [ J I K]
LI MI N[ OI PI QI R] SI T[ U! VI WI XI YI Z
1.2 DIGITS
1.2.1 ,Semantics. Decimal digits are used to form
identifiers, numbers, and strings.
1.2.2 Syntax
(digit) : : = 011 [ 2] 3 [ 415 [6 I 718 [9
1.3 DELIMITERS
1.3.1 Semantics. Delimiters are combinations of
one or more basic symbols which have fixed
meanings within the language and therefore
themselves form basic symbols.
1.3.2 Syntax
(delimiter) :: = (operator) 1 (separator) } (vocabulary
word)
(separator) ::= , ] (I)
(operator) : : = + I -- I * [/ I**
(vocabulary word) :: = (entry in APT vocabulary list) I
1.3.3 Examples
GOLFT
+
(
)
COOLNT
CUTTER
1.4 IDENTIFIERS
1.4.1 Semantics. Identifiers are strings of from
one to six letters and digits. Except for a label
which may consist entirely of digits, a valid
identifier must include at least one letter.
1.4.2 Syntax
(identifier) :: = (letter) I (digit} (identifier) ] (identifier)
(digit) I (identifier) (letter)
1 See Appendix A, APT Vocabulary List.
650 Co mmu n i c a t i o n s o f t he ACM Vo l u me 6 / Numbe r 11 / November , 1963
1.4.3 Examples
ABLE
123A6
74X
X74
1.5 NUMBERS
1.5.1 Semantics. A number consi st s of f r om 1 t o
12 char act er s, i ncl udi ng t he deci mal poi nt .
Consi der ed as an i nt eger, wi t hout a deci mal poi nt ,
a number ma y not be gr eat er t han 34,359,738,367
= 235 -- 1. F l oat i ng poi nt is t he onl y t ype of
number used for APT comput at i ons .
1.5.2 Syntax
(number} :: = (unsigned number} I + (unsigned
number} ] - (unsigned number} 2.2
(unsigned number} :: = (unsigned integer} [ (decimal
fraction} I (unsigned integer) (decimal fraction}
(decimal fraction} : : = .(unsigned integer)
(unsigned integer} : : = (digit} [ (unsigned integer)
(digit}
1.5.3 Examples
0
o.
0.1324
+7362
--7361
7360. 7360
1.6 STRINGS
1.6.1 Semantics. St r i ngs ar e sequences of basi c
symbol s not exceedi ng 66 char act er s i n l engt h.
1.6.2 Syntax 2.3
(string} :: = (any sequence of basic symbols} I (null)
(null} :: =
1.6.3 Examples
29666XQLF**) 0 (
THIS IS A STRING
1.7 REMARKS
1.7.1 Semantics. Re ma r ks ar e t ext i nser t ed wi t hi n
t he body of an APT pr ogr am t o enhance r ead-
abi l i t y. The y have no ot her si gni fi cance.
1.7.2 Syntax
(remark) :: = REMARK (string}
1.7.3 Example
REMARK THIS IS A REMARK
2. 0 Expr e s s i ons
2.0.1 Semantics. An expr essi on is a rul e for de- 2.4
fi ni ng a geomet r i c ent i t y or comput i ng a nu-
mer i cal val ue.
2.0.2 Syntax
(expression} :: = (arithmetic expression) I (geometric
expression}
2.1 VAmASLES
2.1.1 Semantics. A var i abl e is an i dent i f i er t hat
has been assi gned as t he name of t he geomet r i c
ent i t y or nmner i cal val ue defi ned by an ex-
pressi on. I t ma y be used in pl ace of t he expressi on
at succeedi ng occur r ences of t ha t expressi on.
2.1.2 Syntax
(variable} : : = (simple variable} I (subscripted variable}
(subscripted variable} : : = (array identifier} ((subscript
expression}}
(array identifier} :: = (identifier}
(subscript expression) :: = (arithmetic expression}
(simple variable} :: = (identifier}
(arithmetic variable} :: = (variable assigned to an
arithmetic expression}
(geometric variable} : : = (variable assigned to a
geometric expression}
2.1.3 Examples
A
h(3)
A(A(6))
FUNCTION DESIGNATORS
2.2.1 Semantics. F unct i on desi gnat or s defi ne si ngl e
ar i t hmet i c val ues accor di ng t o speci al al gor i t hms
bui l t i nt o t he APT syst em.
2.2.2 Syntax
(function designator} : : = (function identifier} ((function
parameter list}}
(function parameter list} : : = (expression} I (variable} [
(function parameter list}, (function parameter list}
(function identifier} : : = DOTF I SQRTF I SINF [
COSF I EXPF I LOGF ] ATANF [ABSF ! LNTHF
2.2.3 Examples
SINF (A + B)
LNTHF (VECTOR/P1, P2)
ARITHMETIC EXPRESSIONS
2.3.1 Semantics. An ar i t hmet i c expr essi on is a
rul e for comput i ng a nmner i cal val ue.
2. 3. 2 Syntax
(arithmetic expression} :: = (term} I (adding operator}
(term} ] (arithmetic expression} (adding operator}
(term}
(term) : : = (factor) I (term} (multiplying operator}
(factor}
(factor} :: = (primary} [ (factor} ** (primary}
(primary} :: = (unsigned number} ] (arithmetic variable}
I(function designator) J ((arithmetic expression})
(multiplying operator} :: = * [ /
(adding operator} :: = +1 -
2.3.3 Examples
A + COSF(A+B+6.02/4)/JKL
A(7) + COSF( Q( 6 +I +X) )
GEOMETRIC EXPRESSIONS
2.4.1 Semantics. A geomet r i c expressi on is a rul e
for defi ni ng a geomet r i c ent i t y, such as circle,
line, sphere, etc. The specific ent i t y is speci fi ed
by a geomet r i c f or m word. F or each geomet r i c
f or m t her e ar e f r om 1 t o 14 di f f er ent met hods of
defi ni t i on. The specific or gani zat i on of expres-
sions, var i abl es, and modi fi ers (a subcl ass of
voc a bul a r y wor ds used as descr i pt or s) i n a
pa r a me t e r l i st det er mi nes whi ch specific defi ni -
t i on scheme is t o be used. Sever al exampl e
geomet r i c defi ni t i ons ar e pr esent ed below.
Vol ume 6 / Number 11 / November, 1963 Communi cat i ons of t he ACM 651
2.4.2 Syntax
(geometric expression} : : = (geometric form)/(parameter
list)
(geometric form) :: = POI NT I PLANE I CIRCLE I
LI NE { CYLNDR I ELLIPS I HYPERB I CONE I
GCONIC I LCONIC I SPHERE I QADRIC I
POLCON I TABCYL t MATRI X I VECTOR
(parameter list) : : = ((expression)) I (number) ]
<variable) t(parameter list), (modifier word) I
<modifier word>, (parameter list> I<parameter list),
(parameter list)
(modifier word) :: = (vocabulary word)
2.4.3 Examples
POINT/3.5, 7, 9 defines a point at (3.5, 7, 9)
CI RCLE/ CENTER, PT, RADIUS, 7 defines a circle
with center at coordinates associated with variable
PT and radius of 7.
CI RCLE/ CENTER, (POINT/3.5, 7, 9), RADIUS, 7
defines a circle at (3.5, 7, 9) with a radius of 7.
CIRCLE/ PT1, (POINT/3.5, 7, 9), PT4 defines a circle
passing through coordinates of PT1, (3.5, 7, 9) and
PT4.
POI NT/ CENTER, (CIRCLE/ PT1, (POINT/3.5, 7, 9),
PT4)) defines a point with coordinates at the center of
the circle in the previous example.
3. 0 St a t e me n t s
3.0.1 Semantics. St at ement s are t he basi c opera-
t i onal and cont rol uni t s of t he APT l anguage.
3.0.2 Syntax
(statement) : : = (label)) (unlabeled statement) I
(unlabeled statement)
<unlabelcd statement) : : = <assignment statement) ]
(cutter positioning statement) [ (sequence control
statement> I (post processor control statement) !
(procedure statement) I (input-output control
statement)
(loop) : : = LOOPST (statement list) I LOOPND
(statement list) : : = (statement) I (statement list)
(statement)
3.1 ASSIGNMENT ST TEMENTS
3.1.1 Semantics. Assi gnment s t at ement s assi gn
var i abl es t o t he val ues of ar i t hmet i c expressi ons
and t o t he defi ni t i ons of geomet r i c expressi ons.
Once a var i abl e is assi gned t o a geomet r i c ex-
pressi on it ma y never be reassi gned. Thi s is not
t rue, however , for var i abl es assi gned t o ar i t hmet i c
expressi ons. The y ma y be reassi gned at will.
3.1.2 Syntax
(assignment statement) : : = (variable) = (arithmetic
expression} [(variable) = (geometric expression)
3.1.3 Examples
A=2+3 +1
A=A+I
B = C IRC LE/(PO INT/0 , 0 , 0 ), PTA, PTB
3.2 CUTTER i~OSITIONING STATEMENTS
3.2.1 Semantics. Numer i cal l y cont rol l ed machi ne
t ool s are cont rol l ed by reference t o a cont rol
poi nt on t he cut t er.
Two general classes of commands are avai l abl e
t o cont rol posi t i oni ng of t hi s cont r ol poi nt .
3.3
I
!
otrolPoi
The first, expl i ci t posi t i oni ng cont rol , specifies
a new posi t i on in t er ms of act ual coor di nat es or
i ncr ement s f r om t he pr esent posi t i on.
The next class pr ovi des for cont i nuous cut t er
mot i on al ong a space curve. As t he cut t er , a
surface of r evol ut i on, errodes mat er i al at its
per i pher y, a useful const r uct , is t o consi der t he
cut t er const r ai ned by a t angency condi t i on t o
each of t wo surfaces, t he so-cal l ed par t surface
and dri ve surface. The posi t i on of t he cut t er
rel at i ve t o t he t wo cont rol l i ng surfaces is speci-
fied by cont i nuous mot i on st at ement s. These
necessari l y i nvol ve a di rect i on of mot i on based
on pr evi ous s t at ement s or decl arat i ons. Such a
cont i nuous mot i on is t er mi nat ed by also speci-
f yi ng a t angency condi t i on t o a t hi r d surface
called a check surface. Whe n t hi s r equi r ed
t er mi nal t angency condi t i on is met , t he mot i on
is compl et e.
3.2.2 Syntax
(cutter positioning statement) : : = (explicit positioning
statement) ! <initial continuous motion statement> I
(intermediate continuous motion statement) I
(terminal continuous motion statement)
EXPLICIT POSITIONING STATEMENTS
3.3.1 Semantics. For t hose occasi ons when t he
desi red l ocat i on of t he cont rol poi nt is known,
t he cut t er can be di r ect l y posi t i oned wi t hout
t he use of cont rol l i ng surfaces by use of t he
expl i ci t posi t i oni ng st at ement s.
GO TO posi t i ons t he cont rol poi nt at t he
specified coordi nat es.
GO DLTA posi t i ons t he cont r ol poi nt i n a
specified i ncr ement f r om its cur r ent
l ocat i on.
F ROM i ndi cat es t he i ni t i al posi t i on of t he
cont rol poi nt .
3.3.2 Syntax
(explicit positioning statement) : : = GO TO/ ((geometric
expression)) t GO TO/(geometric variable) I GO TO/
(arithmetic parameter), <arithmetic parameter),
<arithmetic parameter) I GO DLTA/ (ari t hmet i e
parameter), (arithmetic parameter>, (arithmetic pa-
rameter} [ FROM/((geometric expression)) I FROM/
(geometric variable) [ FROM/(arithmetic parameter),
(arithmetic parameter}, (arithmetic parameter)
(arithmetic parameter) :: = ((arithmetic expression}) [
(number) [ (arithmetic variable)
652 Communi cat i ons of t he ACM Vol ume 6 / Number 11 / November , 1963
3.3.3 Examples
GO TO/3.5, 4.7, .0037
GO TO/(POINT/2.1, 1.2, O)
GO DLTA/0, .333, .6
FROM/I, 2, 3
FROM/PT4
3,4 INITIAL CONTINUOUS MOTION STATEMENTS
3.4.1 Semantics. A special st at ement of this t ype
is needed before each group of i nt ermedi at e
continuous mot i on st at ement s in order to posi-
tion t he cut t er within a specified tolerance
from, and on the correct side of the par t and
drive surfaces. This st at ement also allows t he
cut t er to be directed to a part i cul ar area of t he
controlling surfaces.
3.4.2 Syntax
(initial continuous motion statement} : : = GO/(qualified
geometric expression} ] G0/(qualified geometric
expression}, (qualified geometric expression} ]
GO/(qualified geometric expression}, (qualified
geometric expression}, (qualified geometric
expression} I OFFSET/(qualified geometric
expression)
(qualified geometric expression} : : = (cutter tangency
specifier}, ((geometric expression}) I (cutter tangeney
specifier}, (geometric variable} I ((geometric
expression}) {(geometric variable}
(cutter tangency specifier} : : = TO [ ON I PAST [
TANTO
3.4.3 Examples
GO/C3
GO/TO, C3
GO/PAST, C2, ON, LN7
GO~A, B, C
GO/ON, PLN5, PAST, LIN2, TO, CYL9
3.5 INTERMEDIATE CONTINUOUS MOTION STATEMENTS
3.5.1 Semantics. The maj or use Of t he APT lan-
guage is to direct a defined cut t er to move in a
( c ut t e r a xi s )
UP
c ut t e r
BACK
" \ LFT
~ ~ J . . f I \
RGT / /
DOW N
F WD
( pr e vi ous
di r e c t i on
of mot i on)
Fro. 1. Direction and position conventions
specified direction, yet , mai nt ai n a specified
t angency position relative t o two geomet ri c
surfaces. The direction a nd position convent i ons
are specified in Figure 1. Each st at ement is
dependent upon t he preceding st at ement for
establishing the direction of mot i on and upon
t he drive surface of t he next st at ement for in-
format i on concerning when t he mot i on is com-
plete. The drive surface of this following st at e-
ment is t hen also the check surface for t he current
mot i on.
3.5.2 Syntax
(intermediate continuous motion statement} : : =
(continuous motion word)/(drive surface}
(continuous motion word} : : ~ GO LFT I GO RGT !
GO F WDI GO BACK[ GO UPI GO DOWN
(drive surface} : : = ((geometric expression}) I (geometric
variable)
3.5.3 Examples
GO LFT/ LN2
GO FWD/ CIRL
GO RGT/(LINE/P1, P2)
3.6 TERMINAL CONTINUOUS MOTION STATEMENTS
3.6.1 Semantics. The t ermi nal continuous mot i on
st at ement requires no successor st at ement from
which to derive a check surface. I t must , there-
fore, include reference to an explicit check surface
and end t angency condition. I t may occur from
t i me to t i me t hat the geometric configuration is
such t hat t he cut t er may satisfy the required
check surface t angency criterion at more t han
one point. I n this case t he mot i on is considered
complete at the first satisfaction of this con-
straint. A command f or mat is available to allow
t ermi nat i ng the mot i on at the n-t h satisfaction
of the t angency condition.
3.6.2 Syntax
(terminal continuous motion statement} : : =
(intermediate continuous motion statement}, (cutter
tangency specifier}, (check surface) l(intermediate
continuous motion statement}, (check surface}l
(intermediate continuous motion statement}, (cutter
tangency specifier}, (intersection count}, INTOF,
(check surface}
(check surface} :: = ((geometric expression}) I
(geometric variable}
(intersection count} :: = (unsigned integer}
3.6.3 Examples
GO LFT/LN2, TO, CIR0
GO RGT/ (LINE/ P3, P6), CIRX
GO BACK/LX4361, ON, 4, INTOF, POL6
3.7 SEQUENCE CONTROL ST TEMENTS
3.7.1 Semantics. A sequence control st at ement
i nt errupt s t he normal sequential execution of
st at ement s.
3.7.2 Syntax
(sequence control statement} : : = (arithmetic transfer
statement} [ (geometric transfer statement} [
(termination statement}
Volume 6 / Number 11 / November, 1963 Co mmu n i c a t i o n s o f t h e ACM 653
3.8 ARITHMETIC TRANSFER STATEMENT
3.8.1 Semantics. An ari t hmet i c t ransfer st at ement
and t he st at ement s associ at ed wi t h labels ap-
peari ng in t hese t ransfer st at ement s must occur
wi t hi n a loop or procedure. If nor mal sequent i al
execut i on is al t ered by an ar i t hmet i c t ransfer
st at ement , it can onl y be re-est abl i shed by
anot her ar i t hmet i c t ransfer.
3.8.2 Syntax
(arithmetic transfer statement} :: = JUMPTO/(label) [
IF ((arithmetic expression)) (label}, (label>, (label}
3.8.3 Examples
JUMPTO/123XQ
IF (A-X) ST1, ST2, ST3
3.9 GEOMETRIC TRANSFER STATEMENTS
3.9.1 Semantics. A geomet ri c t ransfer st at ement
also i nt er r upt s sequent i al execut i on of an APT
:program. However , it need not appear wi t hi n a
l oop or procedure. If a geomet ri c t ransfer st at e-
ment does appear in a loop or procedure it ma y
onl y reference st at ement s occurri ng l at er wi t hi n
t he program. The same rule applies concerni ng
consi st ent use of geomet ri c t ransfers as applies
t o ari t hmet i c transfers. A mul t i pl e choice surface
mot i on st at ement selects one of t wo possible suc-
cessor st at ement s dependi ng upon whi ch t angency
condi t i on is first achi eved.
3.9.2 Syntax
(geometric transfer statement} :: = TRANTO/(label) [
(multiple check surface motion statement>
(multiple check surface motion statement> : : = (terminal
continuous motion statement), (label>, (check surface},
(label} I (terminal continuous motion statement),
(label}, (cutter tangency specifier}, (check surface},
(label}
3.9.3 Example
TLRGT
GO FWD/ CIRC
GO FWD/L1, TO, L2, ID1, TO, L3, ID2
ID1) TLLFT, GO LFT/L2, PAST, L4
TRANTO/ ID3
ID2) TLLFT, GO LFT/L3, TO, L2, GO LFT/L2,
PAST, L4
ID3) . . . . . . . . . . .
3.10 TERMINATION STATEMENTS
3.10.1 Semangcs. Thi s st at ement defines no suc-
cessor and has t he effect of t er mi nat i ng t he
pr ogr am.
3.10.2 Syntax
(termination statement> :: = FI NI
3.11 POST PROCESSOR CONTROL STATEMENTS
3.11.1 Semantics. A post processor in t he APT
syst em is a pr ogr am whi ch t r ansf or ms general
coordi nat e i nf or mat i on and cont rol funct i ons
i nt o codes for a specific cont rol l er-machi ne t ool
confi gurat i on. Post processor cont rol commands
act i vat e specific i nt ernal funct i ons of a post -
3.12
3.13
processor. These are t o be di fferent i at ed f r om t he
st ri ngs of coordi nat es pr oduced by cut t er posi-
t i oni ng st at ement s. Post pr ocessor cont rol st at e-
ment s cont rol such i nt ernal funct i ons as spindle
speed and di rect i on, servo mechani sm overshoot ,
cool ant values, etc.
3.11.2 Syntax
(postprocessor control statement> :: = (postprocessor
control word>[(postprocessor control word)/
(parameter list} ](postprocessor control word)
(string) [ (cutter positioning statement>, (feedrate
specifier)
(postproeessor control word} :: = (vocabulary word)
(feedrate specifier) : : = ((arithmetic expression})l
(arithmetic variable) ] (number)
3.11.3 Examples
COOLNT/ON
SPINDL/ ON
PPRI NT ARBITRARY TEXT
END
PROCEDURE STATEMENTS
3.12.1 Semantics. A procedure s t at ement is re-
pl aced by t he procedure body. The f or mal
par amet er s wi t hi n t he body are repl aced by t he
nor mal par amet er s specified in t he pr ocedur e
decl arat i on except where superceded by act ual
par amet er s f r om t he procedure st at ement . An
APT procedure st at ement calls by name.
3.12.2 Syntax
(procedure statement> : : = CALL/(procedure
identifier> I CALL/(proeedure identifier}, (procedure
parameter list)
(procedure parameter list} : : = (formal parameter) =
(actual parameter} [ (procedure parameter list},
(formal parameter> = (actual parameter)
(actual parameter> :: ~- (variable> [ (number> [
(vocabulary word} [ (label}
(formal parameter> :: = (identifier>
3.12.3 Examples
CALL/MACR, A = GORGT, B = CIRCLE, C = QLX,
D = 7.632
CALL/ MXR
INPUT-OUTPUT CONTROL STATEMENTS
3.13.1 Semantics. These st at ement s allow for t he
i nput and out put of procedures, geomet ri c
entities, and numeri cal quant i t i es.
3.13.2 Syntax
(input-output control statement> : : = (input-output
control word)/(format specifier}, (2-0 list) [ TI TLES
(string>
(input-output control word} : : = READ ] PUNCH [
PRI NT
(LO list} : : = ALL I (variable list}
(variable list> :: = (variable} [ (variable list), (variable}
(format specifier} : : = 0 [ 1 I 2 I 3
3.13.3 Examples
PRINT/ 3, ALL
PUNCH/ l , X, ttQC, J
READ/ l , A, B, X
TITLES SIN COS TAN
654 Communi cat i ons of t he ACM Vol ume 6 / Number 11 / November, 1963
4.0 Dec l arat i ons
4.0.1 Semantics. Decl arat i ons define propert i es
of the geometric entities and ari t hmet i c quantities
used within a program. They also alter t he en-
vi ronment in which cert ai n st at ement s are
executed. An envi romnent defined by a declara-
rat i on remai ns in effect until it is superceded.
4.0.2 Syntax
(declaration) :: = (array declaration} I (coordinate
transformation declaration) ] (Z surface declaration} l
(procedure declaration} I (vocabulary equivalence
declaration) [ (cutter offset calculation declarations}
4.1 ARRAY DECLARATIONS
4.1.1 Semantics. An ar r ay decl arat i on declares
one or more identifiers to represent linear arrays
of quantities or geometric entities.
4.1.2 Syntax
(array declaration) : : = RESERV/ ( ar r ay list)
(array list} :: = (array segment} I (array list), (array
segment}
(array segment} : : = (array identifier), ((arithmetic
expression)) ] (array identifier), (arithmetic variable}
4.1.3 Examples
RESERV/A, 12, B, 26, X, C
4.2 COORDINATE TRANSFORMATION DECLARATIONS
4.2.1 Semantics. This decl arat i on creates a special
envi ronment in which geometric vari abl es may
be defined. When a variable so defined is refer-
enced in the normal envi ronment , it appears
with its coordinates t ransformed as specified in
t he declaration controlling the definition en-
vi ronment . The word NO MORE re-instates t he
normal envi ronment .
4.2.2 Syntax
(coordinate t ransformat i on declaration) : : = REF SYS/
(t ransformat i on matrix) I REF SYS/ NO MORE
(t ransformat i on matrix} : : = (geometric variable)
4.2.3 Examples
REFSYS/M
REFSYS/NO MORE
4. 3 Z-SURFACE DECLARATIONS
4.3.1 Semantics. A poi nt is one of t he geometric
entities t hat may be defined in an APT program.
At the t i me of definition, unless explicitly defined
otherwise, t he poi nt is assumed to lie on a plane
containing t he x and y axes. Thi s declaration
allows t he x-y pl ane assumpt i on to be overruled
and declares points to here aft er lie on the speci-
fied plane.
4.3.2 Syntax
(Z surface declaration) : : = ZSURF/ ( ( geomet r i c
expression)) I ZSURF/ (gcomet ri e variable)
4.3.3 Example
ZSURF/ PL2
ZSURF/(PLANE/PNT1, PNT2, PNT3)
Vol ume 6 / Numbe r 11 / November , 1963
4. 4 t)ROCEDURE DECLARATIONS
4.4.1 Semantics. A procedure decl arat i on defines
t he procedure associated wi t h a procedure
identifier. When t he procedure is referenced by
a procedure st at ement , t he identifiers wi t hi n
t he procedure body declared to be formal pa-
ramet ers in t he procedure headi ng will be re-
placed by t he names of t he corresponding act ual
paramet ers. At t he t ermi nat i on of this process
any formal par amet er not replaced by an act ual
par amet er will be replaced by t he normal name
corresponding t o t hat formal par amet er in t he
procedure heading.
4.4.2 Syntax
(procedure declaration) :: = (procedure heading)
(procedure body) (procedure terminator}
(procedure heading) :: = (procedure identifier) =
MACRO/ (formal paramet er list)
(formal parameter list) :: = (null) I (formM parameter) [
(formal parameter} = (normal name} [(formal
parameter list), (formal parameter list)
(normal name) :: = (number) l(voeabulary word) ]
(label)
(procedure body) :: = (statement} [(procedure body)
(statement}
(procedure terminator) :: = TERMAC
(procedure identifier} :: = (identifier)
4.4.3 Example
MAC = MACRO/ J = TLLF T, K, Z, t t = 0
FROM/0, 0, 0
GO TO/I, 1, 1
GO/SURF1
J, GO LFT/SURF1
GO RGT/SURF2, K, Z, Itt
TERMAC
4. 5 VOCABULARY EQUIVALENCE DECLARATIONS
4.5.1 Semantics. This decl arat i on allows an arbi-
t r ar y identifier to be made equi val ent to an
APT vocabul ar y word.
4.5.2 Syntax
(vocabul ary equi val ence declaration) :: = SYN/
(equivalence list)
(equivalence list) :: = (identifier), (vocabulary word) I
(equivalence list), (identifier), (vocabulary word)
4.5.3 Example
SYN/GT, GO TO, TT, TANTO
4.6 CUTTER OFFSET CALCULATION DECLARATIONS
4.6.1 Semantics. These st at ement s create an en-
vi ronment for cut t er offset control st at ement s.
4.6.2 Syntax
(cutter offset calculation declaration} :: = (direction
declaration) I (calculation parameter declaration) I
(tool position declaration}
4.7 DIRECTION DECLARATIONS
4.7.1 Semantics. This declaration establishes or
re-establishes the direction of tool mot i on. I t is
used pri mari l y to resolve otherwise ambi guous
initial continuous mot i on commands, such as
when it is desired to move the cut t er to a specified
Communi c a t i ons of t he ACM 655
posi t i on rel at i ve t o a circle and t he i ni t i al cut t er
l ocat i on is, i ndeed, t he ver y cent er of t he circle.
Two al t er nat i ve decl ar at i ons al l ow speci fyi ng
t he di rect i on in t er ms of a vect or or t owar d a
poi nt .
4.7.2 Syntax
{direction declaration} : : = INDIRP/ (di rect i on
specifier) ] INDIRV/(direction specifier}
(direction specifier} : : = ((geometric cxpression})l
(geometric variable) I (arithmetic parameter}, (arith-
metic parameter}, (arithmetic parameter}
4.7.3 Examples
I NDI RP/ ( POI NT/ 1, 1, 1)
I NDI RP/ 1, 1, 1
INDIRV/ 7, 6, 3
IND IRV/ (VECTO R/P1, P2)
INDIRV/ VECT1
4.8 CALCULATION PARAMETER DECLARATIONS
4.8.1 Semantics. These decl ar at i ons speci fy pa-
r amet er s and ar i t hmet i c and logical const ant s
for t he i nt er nal cal cul at i ons t hat reduce con-
t i nuous mot i on s t at ement s t o sequences of di scret e
cut t er cent er coordi nat es.
4.8.2 Syntax
(calculation parameter declaration} : : = (tolerance
specification} I (cutter specification) ! (calculation
constant control}
4.9 TOLERANCE SPECIFICATIONS
4.9.1 Semantics. All cont i nuous mot i on commands
are reduced t o sequences of st r ai ght line mot i ons
depar t i ng f r om t he anal yt i c cut t er t angency
const r ai nt s by no mor e t han a specified t ol erance.
I nner t ol er ance ( I NTOL) affect s under - cut t i ng
or "gouge" whi l e out er t ol er ance ( 0UTTOL)
affect s amount of excess st ock.
4.9.2 Syntax
(tolerance specification} : : = TOLER/(arithmetic
parameter} I INTOL/(arithmeticparameter} I
OUTTOL/(arithmetic parameter)
4.9.3 Example
TOLER/.0001
INTOL/ (A/4.621)
OUTTOL/Q
4. ].0 CUTTER SPECIFICATIONS
4.10.1 Semantics. The cut t er, a surface of revol u-
t i on, :is defi ned by i t s profile af t er Fi gur e 2.
4.10.2 Syntax
(cutter specification} :: = CUTTER/(d) CUTTER/(d}, I
(r} CUTTER/(d), (r), (e}, (f), (a}, (~}, (h)
(d} :: = (arithmetic
(r) :: = (arithmetic
(e} :: = (arithmetic
if} :: =: (arithmetic
(o~} :: = (arithmetic
(B) :: = (arithmetic
(h) : : = (arithmetic
parameter)
parameter)
parameter}
parameter}
parameter)
parameter}
parameter)
4.11
h
d - t
FtG. 2
4.10.3 Example
CUTTER/ 1 .O2
CUTTER/ 6, 4.3, 7.2, 9, C, (C+.07), A
CALCULATION CONSTANT CONTROLS
4.11.1 Semantics. Two br oad cat egori es of decl ara-
t i ons cont r ol ar i t hmet i c and logic cons t ant s
used in cut t er offset cal cul at i ons.
CUT and DNTCUT r espect i vel y, rest ore and
i nhi bi t f or war di ng of coor di nat es r esul t i ng f r om
cut t er posi t i oni ng s t at ement s t o t he post pr ocessor .
MULTAX i ni t i at es out put of t ool axis di rec-
t i on cosines t o t he post pr ocessor .
TLAXI S specifies t he di r ect i on cosines of
t ool axis. The NORMPS mode specifies t ha t t he
t ool axis is t o be ever ywher e nor mal t o t he par t
surface.
MAXDP specifies t he ma xi mum st ep l engt h
t o be al l owed in cut t er offset cal cul at i ons.
NUMPTS specifies t he ma xi mum number of
poi nt s t ha t a single cont i nuous mot i on c omma nd
ma y produce.
THI CK adds a uni f or m excess t o cut t er cont rol
surfaces.
PSI S specifies a new pa r t surface.
4.11.2 Syntax
(calculation constant control} : : = (calculation logic
control) ](calculation arithmetic constant control}
(calculation logic control> : : = CUT [ DNTCUT I
MULTAX [ 3DCALC [ 2DCALC I NDTEST I NOPS
(calculation arithmetic constant control} : : = TLAXIS/
(arithmetic parameter), (arithmetic parameter},
(arithmetic parameter} ] TLAXIS/((geometric
expression)) I TLAXIS/(geometric variable}l TLAXI S/
NORMPS I MAXDP/(arithmetic parameter>,
NUMPTS/ (arithmetic parameter} I THI CK/
(arithmetic parameter}, (arithmetic parameter),
(arithmetic parameter} ] PSIS/((geometric expression})
[ PSIS/(geometric variable}
656 Communi cat i ons of t he ACM Vol ume 6 / Number 11 / November, 1963
4.12
4.11.3 Exa mpl e s
CUT
DNT CUT
T LAXI S/ (VECTOR/ PT1, PT2)
MAXDP/ 10
THI CK/ 0, 0, .02
TOOL POSITION DECLARATIONS
4.12.1 Semantics. The tool position decl arat i on is
used in lieu of a cut t er t angeucy specifier in
i nt ermedi at e continuous mot i on st at ement s.
The following rule applies:
Tool Position Motion Tangency Specifier
TLLF T GOLFT TO
TLLF T GORGT PAST
TLRGT GOLFT PAST
TLRGT GORGT TO
TLON GOLFT ON
TLON GORGT ON
any GOFWD TANT0
any GOBACK TANT0
any GOUP error
any GODOWN error
For a tool position and mot i on specified in st at e-
ment n, t he t angency specifier refers to t he
check surface for st at ement n -- 1.
4.12.2 Syntax
(tool position declaration) : : = (tool position specifier) [
(tool position specifier), (continuous mot i on
st at ement ) [(tool position specifier), (tool position
declaration}
(tool position specifier) : : = TL ON PS [ TL OF PSI
TL ND ON [ TANCRV I TLON { TLLF T I TLRGT
(continuous mot i on statement} : : = (i nt ermedi at e
continuous mot i on statement} [ (terminal continuous
mot i on st at ement )
REF ERENCES
1. Ross, DOUGLAS T. The design and use of the APT language for
aut omat i c programmi ng of numeri cal l y controlled machine
tools. Proc. 1959 Comput er Appl i cat i ons Symposium, Chi-
ergo, pp. 80-99.
2. BATES, EDGAR A. Aut omat i c programmi ng for numeri cal l y
controlled t ool s- - APT I I I . I n Computer Applications--1961,
pp. 140-156; Macmi l l an, New York.
3. Int ernat i onal Business Machines Corporation. ADAPT, a
system for t he aut omat i c programmi ng of numeri cal l y con-
t rol l ed machine tools on small computers. Fi nal Teeh.
Eng. Report , 15 Jul y 1962-16 Januar y 1963, San Jose, Calif.
(Air Force Cont ract AF 33(600)-43365).
4. NAuR, PETER, ET AL. Revi sed report on t he al gori t hmi c
language ALGOL 60. Comm. ACM 6 (Jan. 1963), 1-17.
5. HUSKEY, H. D. , LOVE, R., AND WIRTn, N. A synt act i c descrip-
t i on of BC NELI AC. Comm. ACM 6 (July 1963), 367-375.
APPENDI X A. APT VOCABULARY LI ST
1.7 REMARKS
REMARKS
2.2 FUNCTION DESIGNATORS
DOTF SI NF LOGF
LNTHF COSF ATANF
SQRTF EXPF ABSF
2.4
3.0
3.3
3.4
3.5
GEOMETRIC EXPRESSIONS
POI NT ELLI PS VECTOR
LI NE HYPERB MATRI X
PLANE CONE SPHERE
CI RCLE GCONI C QADRI C
CYLNDR LCONI C POLCON
TABCYL
STATEMENTS
LOOPST L00PND
EXPLICIT POSITIONING STATEMENTS
F ROM GODLTA GOTO
INITIAL CONTINUOUS MOTION STATEMENTS
GO OF F SET
INTERMEDIATE CONTINUOUS MOTION STATEMENTS
GOLFT GOFWD GOUP
GORGT GOBACK GODOWN
3.8 ARITHMETIC TRANSFER STATEMENTS
I F J UMPTO
3.9 GEOMETRIC TRANSFER STATEMENTS
TRANTO
3.10 TERMINATION STATEMENTS
F I NI
3.11 POST PROCESSOR CONTROL STATEMENT
END DELAY TRANS
STOP AI R TRACUT
OPSTOP OPSKI P I NDEX
I STOP LEADER COPY
RAPI D PPLOT PREF UN
SWI TCH MACHI N COUPLE
RETRCT MCHTOL PI TCH
DRESS PI VOTZ CLAMP
PI CKUP MCHF I N ENDMDI
UNLOAD SEQNO ASLOPE
PENUP I NTCOD SADDLE
PENDWN DI SPLY LOADTL
ZERO AUXF UN SELCTL
CODEL CHECK CLEARC
RESET POSTN CYCLE
PLABEL TOOLNO DRAF T
PLUNGE ROTABL RI TMI DI
HEAD ORI GI N PLOT
MODE SAF ETY OVPLOT
CLEARP ARCSLP LETTER
TMARK COOLNT PPRI NT
REWI ND SPI NDL PARTNO
CUTCOM TURRET I NSERT
REVERS ROTHED CAMERA
F EDRAT THREAD
3.12 PROCEDURE STATEMENTS
CALL
3.13 INPuT-OUTPUT CONTROL STATEMENTS
PRI NT READ TI TLES
PUNCH
4.1 ARRAY DECLARATIONS
RESERV
4.2 COORDINATE TRANSFORMATION DECLARATIONS
REFSYS
4.3 Z-SURFACE DECLARATIONS
ZSURF
4.4 PROCEDURE DECLARATIONS
MACRO TERMAC
4.5 VOCABULARY EQUIVALENCE DECLARATIONS
SYN
4.6 DIRECTION DECLARATIONS
I NDI RP I NDI RV
4.9 TOLERANCE SPECIFICATIONS
TOLER I NTOL OUTTOL
Vol ume 6 / Numbe r 11 / November , 1963 Communi c a t i ons of t he ACM 657
4.10 CUTTER SPECIFICATIONS
CUTTER
4.11 CALCULATION CONSTANT CONTROLS
CUT NDTEST
DNTCUT TLAXIS
2DCALC MULTAX
3DCALC MAXDP
4.12 Tool POSITION DECLARATIONS
TLLFT TLNDON
TLRGT TLON
NUMPTS
THICK
NOPS
PSIS
TANCRV
TLONPS
TLOFPS
MODIFIER WORDS
ATANGL PARLEL XYPLAN
CENTER PERPTO XYROT
CROSS PLUS YLARGE
FUNOFY POSX YSMALL
INTOF POSY YZPLAN
INVERS POSZ YZPLAN
LARGE RADIUS YZROT
FEFT RIGHT ZLARGE
LENGTH SCALE ZSMALL
MINUS SMALL ZXPLAN
NEGX TANTO ZXROT
NEGY TIMES 3PT2SL
NEGZ TRANSL 4PT1SL
NOX UNIT 5PT
NOY XLARGE INTERC
NOZ XSMALL SLOPE
IN MIST RED
OUT TAPKUL GREEN
ALL STEP BLUE
LAST MAIN INTENS
NOMORE SIDE LITE
SAME LINCIR MED
MODIFY MAXIPM DARK
MIRROR REV CHUCK
START TYPE COLLET
ENDARC NIXIE AAXIS
CCLW LIGHT BAXIS
CLW FOURPT CAXIS
MEDIUM TWOPT TPI
HIGH PTSLOP OPTION
LOW PTNORM RANGE
CONST SPLINE PSTAN
DECR RTHETA CSTAN
INCR THETAR FRONT
ROTREF XYZ REAR
TO TRFORM SADTUR
PAST NORMAL MILL
ON UP THRU
OFF DOWN DEEP
IPM LOCK TRAV
IPR SFM NORMPS
CIRCUL XCOORD CONCRD
LINEAR YCOORD GECENT
PARAB ZCOORD SC4020
RPM MULTRD MILWAK
MAXRPM XYVIEW BENDIX
TURN YZVIEW DYNPAT
FACE ZXVIEW TRW
BORE SOLID ECS
BOTH DASH CINCY
XAXIS DOTTED TRUTRA
YAXIS CL PRATTW
ZAXIS DITTO FOSDIK
TOOL PEN BURG
AUTO SCRIBE PROBOG
FLOOD BLACK DVLIEG
SUNTRN
USA Participation in an
International Standard Glossary
on Inf ormati on Processing
J. F. TRAUB*
Bell Telephone Laboratories, Inc., Murray Hill, N. J.
1. Ba c k g r o u n d
A considerable number of glossaries in the area of infor-
mat i on processing have been produced in the USA in
the last ten years [i, 2]. I n some cases the glossaries were
reworked versions of earlier glossaries, while in other
cases maj or new contributions were made. All told, the
glossary effort has cost thousands of man-hours of work.
Several years ago the ASA X3 sectional committee
sponsored by BEMA was established to prepare standards
for the USA in the information processing field. (See
Appendix 1 for the meaning of abbreviations and acro-
nyms. See also [3].) ASA X3.5 was assigned the double
scope of advising the other X3. n subcommittees on the
establishment of definitions required for their proposed
standards and of establishing a standard glossary, pASGI P,
for general use.
At the same time there was i mport ant British stand-
ardization activity. After reworking a number of earlier
drafts, the BSI released the "Glossary of Terms Used in
Aut omat i c Dat a Processing," British St andard 3527:
1962. The British effort differed in at least one very ira-
port ant respect from the USA glossaries. I t was organized
along subject rather t han alphabetical lines. This was to
have i mport ant consequences, as we shall see.
A parallel action to the national standardization aetivi-
ties was the formation of ISO/ TC97, which held its first
meeting in Geneva in May 1961. I SO/ TC97/ SC1 (then
known as I SO/ TC97/ WGA) was given the task of pro-
viding a multilingual glossary. The secretariat was assigned
to the Netherlands. Dr. It. M. R. Mant z serves as chair-
man.
I n SC1 each participating nation has one vote. The job
of the USA representative is to serve as a liaison between
SC1 and USA act i vi t y between meetings of SC1. For
the meetings of SC1, which take place once every one to
two years, a delegation is chosen to represent the USA.
The leader of the delegation is often the man who serves
as USA representative, but this need not be the case.
At its first meeting, SC1 accepted an offer by the I F I P/
I CC Joint Terminology Committee to provide it with a
first draft of a multilingual glossary. The chairman of the
J TC is G. C. Tootill of the United Ki ngdom; its members
are the representatives of the professional societies of
various countries. The USA professional society repre-
sented is AFI PS. The subject classified "Glossary of
*USA Representative to ISO/TC97/SC1; Chairman, ASA
X3.5.2
658 Co mmu n i c a t i o n s o f t h e ACM Vo l u me 6 / Nu mbe r 11. / Nove mbe r , 1963

You might also like