11 upvote00 downvotes

33 views28 pagesJul 18, 2007

© Attribution Non-Commercial (BY-NC)

33 views

11 upvote00 downvotes

You are on page 1of 28

XVIII = 1 "trace
“print fora'
CHAPTER 18
‘THE THREE DIAGNOSTIC PRIMITIVES (PF, TW, TF)
WHY THE DIAGNOSTIC PRIMITIVES ARE NEEDED
The three diagnostic primitives are used to help find what 1s wrong
When 2 TRAC language script does not work the way we expect it to. Ry
neans of the PF prinitve, we can print out all the details of a forn:
the segment gap nunbers and the form pointer, as well as the text string
which makes up the form, By means of the two ‘trace’ prinitives, TN and
TF, is is possible to make the processor pause before the execution of
each prinitive and print out the arguments of the primitive emctly as
they will be used in its execution. These three primitives provide
enormous assistance in getting a complex script to work correctly.
‘THE PRINT FORK PRIMITIVE (FF)
‘The ‘print form! primitive, with mnenonie PF, is the sixplest of
the three diagnostic primitives. This primitive takes the naze of the
form to be printed out as its only added argument, With the print form
PF primitive, the text of the form ia printed out exactly as it ia
recorded in forms store, with the exception that segment gaps and the
form pointer ate explicitly shown in their locations in the text. The
text of the form is not scanned befare it is printed out, The print
forn primitive is mainly used to examine forms in main storage to
determine whether the text of the form 1s correct and whether the segment
gaps are in fact located where they were intended to be, It also verifies
the current location of the form pointer,
Copyright (@) 1972 Rockford Research, Inc.
AM rtchte reemrved -<> ‘angle brackets"
t ‘up arrow! XVIII - 2
‘trace on
‘The PF primitive fs a mull-valued primitive, so it can be inserted
almost anywhere in a TRAC language script, However, it is ordinarily uaed
fron the keyboami while a script te being developed, or while the script
4s being corrected by means of the procedure FIX (descrited in Chapter 11).
The use of the print form primitive is illustrated by the following
example, with a form named 422 1
4(PF,A22)"THE QUICK¢T> <3> 41> JUMPS AT THE <2>
‘The lccation cf the segnent gaps in the form te indicated by the
numerical digits enclosed in the ‘angle brackets’ < and > . The
nuxbar inside the angle brackets gives the ordinal number of the
fomal variable for the segment gape
Tho location ef the form pointer is shown by the 'up arrow’, which
4s also enclosed in angle brackets, , We see that the form pointer
stands just after the ninth character of the form. The form pointer
fight have been brought to this location as a consequence of action
of the CN call Ni prinitive #(CN,A22,9)"
Because of limitation on available characters for sone reactive
typewriters, which may not have the up arrow or angle brackets,
other characters my be used instead in the print form primitive.
‘THE TWO TRACE FRIMITIVES (TN, TF)
‘The trace facility, which is controlled by the two trace primitives
TN and TF, makes visible at the reactive typewriter the step-by-step
evaluation of each primitive as the processor carries out a complex
seript.
‘The two trace primitives are ‘trace on’ with mnemonic TN, andXVIII - 3 ‘trace offt
‘trace mode"
"trace off! with mnenonic TF, ‘Thess primitives take no additional
argunents, They are mull valued, so they can be inserted alnost anywhere
in a script.
when the trace state of the processor is turned "on" by the trace
en TN prinitive, the processor goes into a ‘trace mode’, and it begins
to give trace indications. It continues to do so without further
comand until the trace node is turned off. The trace mode is turned
"off" by execution of the trace off TF primitive. The processor stays
in the normal or off state until it is turned on again,
As ve have learned, the action of the TRAC processor depends on
the scanning and formation of the arguments of each primitive in tum,
‘The arguments as they are scanned are put into the neutral string area,
When a close parenthesis, indicating completion of the arguments of
a primitive, is encountered, the prinitive is executed, It is executed
using the arguments held in the neutral string area.
For exanple, a primitive about to be executed might be diagramed
by the execution diagram:
a —
(ps ape CREFS(ps,caT) /
The arguments held in the neutral string area aro:
3s ABC ‘CREF#(PS, CAT)
Execution of the prinitive takes place using these arguments. if we
can see what arguments are to be used, we will know exactly how the
primitive will behave in execution. The trace facility displays
these argunents.XVIII + &
What the trace facility does, when it is tured on, is to print
out on the typewriter the arguments of each primitive just before the
primitive is executed. In the example, the following would be printed
out ty the trace facility: :
#/DS*ABC*
#(PS, CAT) /
Note that the fornat characters GR and EF are shown only through
thelr format action, that is, they return the carriage and give a new
Line.
In the output from the trace facility, the arguments are shown
separated by asterisks * , and the beginning and end of the primitive
is marked by the slant or "solidus" character / . A null string
argument is indicated by one of the foms: * /* or +/ .
The single or double sharp character of the primitive is shown ty a single
or double sharp prefix before the first slant character.
The trace facility printout shows only the arguments which have
een found while scanning the primitive. The trace does net indicate
how many arguments the primitive should have, Thus the representation
‘in trace node for the expression #(DS) ist
#/0s/
Only one argument Was found, However, in the expression #(25,)
there are two arguments, of which the second 4s a null string. The
representation by trace ist
+/nse/
Finally, the trace representation:
tHxvIIr = 5 ‘abortive stop*
shows a valid expression. It represents a default call to a form having
‘the mill string as its name,
After the trace representation of a primitive has been printed out,
the processor pauses. The pause gives us a chance to study the printout.
If the arguments appear to be correct, we then tell the processor to
go on to the next step of the script. This is done ty pressing the
RETURN key for the CR character.* The processor then evaluates the
primitive Just displayed, and goes on to sean and display the arguments
of the next primitive to be evaluated,
If an error appears in the argunents just displayed by trace, it is
usually desirable to stop the execution of the script so that it can
be corrected. Execution of the script is stopped by touching any other
key on the typewriter, and then by pressing the RETURN key. This stops
‘the execution of the script. The workspace is cleared, and the trace
node is automatically turned off, It is called an ‘abortive stop’.
USE OF THE READ STRING PRIMITIVE WHEN IN TRACE
Operation of the read string primitive, including the acceptance
of typed-in matter, provides a minor complication while in the trace
moda, Input strings can be typed inj however, a particular sequence of
stepa must be used, otherwise the trace action will stop and execution of
the script will be aborted,
Assume that the next primitive in the seript is ##(RS) . The
processor will print out the trace indication:
4/8 /
In order to continue the action of the script, we must provide an
* Some computers may require another character, See Appendix C.XVIII - 6
input string. However, wa cannot merely type in the string at this tine,
because that would abort the trace operation.
What we must do first is to signify to the processor that the
argunents displayed for the read string primitive are satisfactory, and
that the primitive should be evaluated. To do this, we press the RETURN
key, ‘The processor will go to a new line and stop, It is now waiting
for the input string. The input string should be typed, followed by
the TRAC meta character (usually the apostrophe ' ), and ty an enter
character for certain computers.* At this point, the primitive will
execute. Hy using this sequence of steps, the read string primitive
will take in the typed string, the primitive will execute, and the
precessor will go on to scan and disply the next primitive in sequence.
USING THE TRACE FACILITY
The trace facility has many uses, and permits of a nunber of
tricks to speed up diagnostic operations.
‘One of the
s of the trace facility is to provide a vivid means
for demonstrating the sequence of evaluative steps, primitive by
primitive, which takes place in a TRAC language processor, Such a
desonstration may be helpful in showing beginners the operation of a
TRAC proc
or.
In a long script, having many loops and primitives, it may be
tedious to display all the prinitives of a procedure, Often the
difficulty is known to be limited to a few troublesome spots, In such a
case, the trace on expression #(TN) may be inserted in the seript just
before the troublesome spot, and the trace off expression #(IF) may be
inserted just after the troublesome spot. Then the processor will speed
* See Appendix ¢.XVIII = 7
through the script, stopping to print out the arguments only for the
prinitives in the troublesome sections,
In a variant of this method, segnent gap markers, each with a
different ordinal mumber, can be strategically placed in a long script.
‘Then when the script is called into execution, the protested strings
(#CTN)) and (#(TF)) can be used as arguments of the call to the
procedure, This will cause the trace action to be turned on and off
depending upon where the expressions have been inserted in the script.
In another variant, the seript of the procedure may be modified
by means of the FIX procedure (described in Chapter 11), with the
insertion of the trace expressions at the appropriate places.
In sumaty, the trace facility for diagnostic trouble shooting
showld be used when the trouble seems to be in the operating behavior of
a seript, while the print form primitive stould be used when trouble
is suspected in problems with form pointer, seguent gaps, or the
text of the forms used in a script.mx -1 "Boolean"
CHAPTER 19
‘THE BOOLEAN PRIMITIVES (BU, BI, BC, BS, BR)
WHAT THEY ARE
There are five ‘Boolean’ primitives which are a part of TRAC 1-64
language. Those prinitives provide a capability for efficiently working
with certain complex "logical" problems. For the most part, only the
advanced users of TRAC language will work with these primitives. On the
other hand, the primitives are not difficult to understand, even for «
beginner, Since it is desirable that this Manual for TRAC language be
conplete, the prinitives are now described.
The Boolesh prinitives are named in honor of George Boole, # British
mathematician end philosopher whose contritutions were little appreciated
in 1641 when he first wrote about them (in The Mathematical Analysis cf
Logic and later in An Investigation of the [awe of Thought). Boole
Presented a notational systen and « plen for its use which permitted «
symbolic expression of logical problems and verbal syllogiems, The TRAC
Boolean primitives can bé related to Bocle's ideas. It is « good exercise
for those readers who might be interested in elenentary mathematical
logic to study Boole's writings and to draw parallels between Boole's
ideas and these primitives. However, for the purposes of this Manual,
we don't really want to get into « detailed study of Bool
8 ideas, or
to undertake @ tutorial in mathematical logic. All we want to learn is
how these TRAC language primitives work.
Copyright (G) 1972 Rockford R.
All rights reserved.
arch, Inc.‘eotal’
"binary"
"Logical"
STRINGS OF OCTAL CHARACTERS
The Boolean primitives, like all the TRAC language prinitives, work
upon strings of characters. We saw that the arithmetic primitives have
‘aruet
stnlee xx -2
@ Special way of treating character strings. They look for decimal
digits (the digits from cero to nine) at the tail end of the argument
string of the second and third argments of the arithmetic prinitives.
The Boolean primitives behave in much the sane way, except that they
look for ‘octal' digits at the tail end of certain of the Boolean
prinitive argument strings. ‘Octal' digits are the numeric digits in
the range from sero to seven. There are eight of these digits, and thus
they are called ‘octal’.
‘The reason for using octal digits in the Boolean primitives is that
the octal digits provide compressed notation for the so-called ‘binary!
digits. The two binary digits are the digits for sero and one: § and 1,
Sueh binary digits are often used in "logical! notations because they
can be nicely associated with the two logical distinctions of "true! and
+ Usually "true! is associated with 1 , and ‘false! is associated
+ Here we shall dedge the mind-boggling discussions of what
"true" really means, and many other fascinating but distracting
philesophical excursions. For the most part, the users of the TRAC
Boolean primitives will not be working with the notions of true or false,
but will instead be concerned with the sequences of strings of binary
@igits, like:
oi aga ina 11d gid aaa tig ft
Space characters have been inserted inte this string in order to enhance
At would be very
difficult to read or to copy the 2+ binary digits without making a mistake.
the readability of the string. Without the spac"Boolean vector"
oUt = ‘component *
3 “pinary nunbers"
jie will now learn why the use of octal digits is se handy. Using
the octal digit notation, the leng binary string shown above is exactly
represented by the following octal string:
15760761
Bach group of three binary digits is represented by one oatal digit, in
a manner which will be described in the next paragraph. For most purposes,
such short octal strings are much easier to type or to copy than « longer
binary string. Consequently, the Boolean primitives, although they are
ultimately concerned with binary digits, are defined so that they use
octal digits in their arguments. In TRAC language work, such « string
of zero and one digits is called a "Hoolean vector’ in analogy to
mathematical terminology. In mathematics, @ vector can be thought of
as a list of numbers, with each number being a 'component' of the vector.
In Boolean vector, the components are the individual binary digits.
The correspondence between the binary digit groups and the cotal
digits is given by the following table:
Binary Grou —getal Digit
oe
wn
fag
gu
isd
agi
ug
Mae FUN &
aia
The readers who have learned ‘binary nunbers! and their arithnetic
will] recognize that the sequence of digit groups in the left-hand column‘Boolean unton*
case pun
*union*
ds the #, 1, 2,3, ++. counting sequence of the binery nunber system.
However, this information is extraneous te our purposes here, since with
the TRAC language primitives, we don't need to know anything about binary
counting or binary aritimetic. The Soolean prinitives really depend upon
comparisons of strings of zeroes and ones of the Boolean vectors, as
represented in the octal notation.
THE BOOLEAN UNION == LOGICAL ‘oR’ (2U)
The first Boolean prinitive is the "Boolean union’ with mnemonic BU .
‘A simple example of its use is:
#(BU1,3)13
The second and third arguments are octal digits, and the result is expressed
in an ectal digit. The operation of Boolean union ie really defined in
terms of the binary digits represented by these octal digits, in a fashion
‘that will be deseribed in detail in the next paragraph. Another example
of the use of BU is:
#(BU,LSREDZDL HOw ARE YoU 96)'237
4s with the arithmetic primitives, only the tail-end octal digits are
used in forming the result string. It 1s called the ‘octal part! of
the string, The prefix part of the string for both the second and third
arguments, including any + or - sign, is lgnered entirely after
Scanning. The digit-by-digit rule for forming the value tring for the
BU primitive is a new kind of computation,
In order to explein this new rule of computation, we go back to
the binary digit representation, and show how the ‘union' of binary
digits 4s defined, Instead of the rule 1+1= 2, as in ordinaryXIX = 5 "Boolean union table’
numerical arithmetic, in the Boolean logic we have the following rules
for union:
i $
444
There 4s no "carry" as in numerical arithmetic. Using these rules, and
i
1
Hee
1
by writing out octal digits as groups ef three binary digits, we can
work out the Boolean union strings of octal digits. The following example
for the Boolean union of 443 and 1526 shows how to do it:
493 }is the 1d dig fat
326} same as: $i if. Ay octal
haga GIF Lar answer: 1527
when ene ef the octal strings in Boolean union is not as long as the
other, the shorter string of octal digits is filled in at the left-hand
end with seroes until the two strings are the same length, and then the
Boolean union computation is performed, If the octal part of the second
or third argument is a null etring, then a null string of no octal digita
is taken as the default argument. If both the second and third argunents
are mill strings, then the result string is a null string,
In the sane way that a multiplication table can be developed for
showing the result fron multiplying any two decimal digits, it is
possible to develop a "Boolean union table! te show the result fron
forming the Boolean union of ary two binary digits. The Boolean union
table for the binary digits looks like this:
first argument
second 8 4 1 answer
argunent‘truth table"
"Logical OR"
‘Boolean intersection" XO = 6
“Logical AND*
People working with mathematical logic have « special nase for a table
of this kind. They call it a 'truth table’ for the Boolean union.
Such a table is a compact way to express the four rules for Boolean
union which were given previously.
A similar, but larger ‘multiplication table’ can be worked out for
expressing the foolean union of the various conbinations of the octal
digits, The making of such an octal table is left as an exercise for
the reader.
‘Tne Boolean union is also called the ‘logical OR! expression.
‘The reason for this terminology 1s easy to see if we refer back to
the colunn=ty=colimh development of the binary digit computation for
‘the Boolean union, In each case, we put a 1 dn the result line when
either the first OR the second binary digit in the eoluan 4s a1 .
In other words, the result line is the "oR" of the two digit:
THE BOOLEAN INTERSECTION -- LOGICAL ‘ANDY (BI)
‘The Boolean intersection’ primitive with the mnemonic BI is
similar in fora to the Boolean union primitive. However, it has a
different rule for its computation. A simple example of ite use isi
#(BE,L,3)"2
Another example is:
#(BI,ASRED231,,HOW ARE YOU~f6)* pf
Again the prefix strings with signs are ignored after scanning.
The formation of the Hoolean intersection value string is again
defined by reference to the equivalent groups of binary digits. Thexm - 7 "Logical AND*
rule for the 'intersection' of binary digits isi
1 1 # 4
‘
+444
‘The equivalent ‘truth table' for the intersection looks like this:
first argument
from these rules, we can work out the Boolean intersection for 43
and 1526, as follows:
493 4s the 166 dod aL
A 1
1g26 si s aA a ig etal
mee 1 “poner ge
As in this example, when the octal parts of the second and third arguments
of the Boolean intersection primitive do not have the sane number of
digits, the digits of the left-hand ond of the longer string are ignored
when there is no corresponding octal digit in the shorter part, Again a
mull string is taken as the computational default value of the octal part
when the octal part after seanning 19 found to be a null string.
The Boolean intersection is also called the ‘logical AND' because
4n the cplunn—ty-colunn development of the computation with the binary
digits, ve place a 1 4n the bottom line when both the first AND the
Second binary digit in the column is ai. In other words, the result
is the "AND" of the two binary digits, An octal “multiplication table"
can also be developed for the ectal digit representation of the Boolean
intersection."Boolean complenent'
"Logical NOT* x= 8
“truth table’
THE BOOLEAN COMPLEMENT -- LOGICAL *NOT* (BC)
‘The "Boolean complement" primitive, with the mnemonic BC , provides
a method for changing the i's to $'s, and conversely, for all the binary
digits represented by the octal string. Thus the Boolean cosplenent of
the binary string fiff 1s iff! . Two examples of the KC primitive are:
#(BC 3) 4
#(BC HOW ARE YOU+#6)"71
‘Again the prefix part is ignored, and any mull string octal part
results in a null string result, The Boolean complenent takes only
one ectal string argurent, in the second argument position, The rule for
computing the complenant of the binary digits is given by:
digit
resul:
The ‘truth table’ is:
As before, a truth table expressed in octal digits can be developed.
As an example, the formation of the Boolean complement of 1526
As new computed:
526 is the same ast octal
11p fig 161 answert 6251
‘The result string of the Zoolean complement has the same nunber of octal“Logical NT
xX -9 ‘negation®
‘Boolean shift’
"Boolean rotate!
@igite as the ausber of digits in the octal part used for computations
‘The Boolean complezent 4s also called the logical conplenent, or
"Logical NOT', from the relationship of the digits { and f to the
notions of "true" and “false”. The logical NOT or 'negation" of “true” is
"false", Also, the negation of “false™ is "true". Furthermore, the
negation of the negation of “true“ ie “true”, and so on.
‘THE BOOLZAN SHIPT AND ROTATS PRIMITIVES (BS, BR)
‘The last two Boolean prinitives provide the ability to nove the
binary seroes and ones either to the left or to the right, These
primitives are called "Boolean shift' BS, and "Boolean rotate’ BR. In
these primitives, the number of places the binary digits are to be noved
is specified by a signed @ecimal number found at the tail end of the
‘second argunent of the primitive. The Beclean vector to be operated upon
is specified ty the octal digits found at the tail end of the third
arguent of the primitive. If the octal part of the third argument is
& mull string, the mull string is used in the computation. For beth
primitives, the result string has the same number of octal digits as
the octal part used in the computation, The movement of the binary
digits may be either to the left or to the right. If the sign of
‘the decimal number is positive, the binary digits are moved to the left,
If the sign is negative, they are moved to the right.
The Boolean shift primitive HS moves the binary digits down the line,
and when eny binary digit comes to the end of the line, it vanishes. At
the other end of the line, where the empty positions appear, the expty
Positions are filled in with binary rerces. Two exanples of dcolean
shift are:"Boolean rotate’ XIX = 10
#(BS,2,56)'78
#(BS,CATS-5,D0GS 56) "#1
These examples can be verified by writing out the binary equivalent
of the octal parts, and performing the specified shift:
4s the shift by fia the
56 same as: ft 119 42: 111 @ff = same as: 78
is the art as the
56 “Sene'ass aft tid “ty ts: $66.61 “sume as: Gt
It is seen that when the mmber of places in the shift becomes greater
than the total muber of binary places, the result from the Boolean
shift will be all zerces.
The 'Bpplean rotate! with the mnemonic BK , is a variation on the
Boolean shift. With the ER primitive, when a digit cones to the end of
the Line at one end, it ds moved over to the empty position at the other
end of the line, This is why it is called "rotate". The digits rotate
out from one end and inte the other, Taking some examples, we have:
#CBR2, 56) 172
#(RR,CATS=5,00G8 56)'65
‘The prefix parts in the second and the third arguments are ignored, as
with the Boolean shift. The results can be verified in the sane way!
the tate as the
poh as: iff 11 oy 42: 111 gig ome
56 7
is the rotate is the
56 same as: ifi Lif by 5 Lig 1g same as: 65‘artificial intelligence
xm - it “Adentities'
We notice that when there are six binary digits (two cotal digits) as
shown here, a rotation of -5 places is the sane as a rotation of + place.
Similar relationships wi11 be found in all other instances of the Boolean
rotate primitive,
Tt is unfortunate that this Beginner‘s Manual is not the best place
to delve deeply into the many fascinating things that can be done with
the Boolean primitives by advanced users, One of these uses is to perfora
certain kinds of experiments with ‘artificial intelligence’ -- yhich is
concerned with trying to show seemingly intelligent behavior in a machine,
By “intelligent tehavior* is meant behavior more complex than that which
san be sectired with TRAC expressions involving only one, two, or a dozen
EQ or GR primitives for making decisions, With the Boolean primitiv
dozens or hundreds of binary decisions can te made with each primitive
expression,
EXERCISES
1. Where “first” and “second” represent any two octal strings, verify
by hand and ty reactive typewriter with examples that:
#(BU,"first",“second”)*
has the sane string value asi
#(30,#(BI,#(BC,"first") ,#(30,"second")))*
Also verify that these two expressions have the same values when they
are written with BU and BI interchanged. Expressions of this
kind, which are identical, are called *identit:
+ This particular
identity is called the “De Morgan identity*, named after Augustus
De Morgan (1806-1876), an eminent English mathematician, (Statenents2
Be
ae
xm = 12
of De Morgan's identity in other notation may be found in “History of
Symbolic Logic", by Clarence Irving Lewis and Cooper Harold langford,
which 1s reprinted in The World of Mathematics, James R. Newman, eds,
Simon and Schuster, New York, 1955, Vol. 3, Part XII13, pages 1863-5,
and in Introdustion to Logie, by Alfred Tareki, Oxford University Press,
Naw York, 1942, 1946, page 52.)
Write a procedure using EQ which will experimentally test and will
print a YES or NO answer as to whether the octal string represented
by "first" is the same as the string produced by the expression
#(5C,#(BC,"firet”))" .
Where "first" represents any octal string, verify that the expression
#(BU,"firet",#(BC,"firet"))' consists of an octal string of all 7's,
vith the same number of octal digits as there are in "first",
Tt 15 somatines handy to be able to work directly with the binary
digits f and 1, rather than with their octal representation. This
can be done rather simply. Instead of using an octal representation,
‘use only the octal digits f and 1 , ignoring the digits 2 through
7. Howaver, to obtain the Boolean complement, the result string aust
‘be intersected with a string of octal i's . For axampls, the Boolean
complezent of 1f can be computed by #(BI,111111#(BC,16))" , which
produces the correct result #1. With the shift and rotate primitives,
‘the numerical value of the shift in terme of the "new" binary places
aust be three times larger, Thus in order to shift one place to the
left, we use #(BS,3,$18)" , which produces iff. By means of
examples, verify these rules with various combinations of Boolean
Primitives.met “halt!
CHAPTER 20
‘THE TWO HOUSEKEEPING PRIMITIVES (HL, MO)
WHAT THEY ARE
‘TRAG language has two housekeeping primitives, HL and MO. Ina
sense, these prinitives are not a part of TRAC language at all, since
they have nothing to de with the actual manipulations on strings carried
out in TRAC language. Instead, their purpose is to give special kinds
of commands to the computer. In this respect, the housekeeping
primitives are somewhat like the diagnostic primitives -= which also
are not really used in TRAC language manipulations of strings,
‘THE HALT PRIMITIVE (HL)
‘The first of the two housekeeping primitives is halt! with the
mnemonic KL. Its purpose is to enable us to disconnact fron the
computer. The halt HL primitive 1s a mull
This diagnostic means that the processor is operating with the standard
TRAC 1-64 language, and with all the 34 prinitives conforming exactly
to TRAC standards,
when the TRAC processor contains an extended set of prinitives,
in addition to the 34 standard primitives, execution of the mode
primitive #(¥0) has the important effect of tenporarily disconnecting
or disabling these prinitives, thoreby making the processor into a
stondard TRAG Tal processor, ‘Then, in order to show that the processor
is now in a standard condition, it prints out the diagnostic 4s therefore your guarantee that each of the primitives in
the proceasor works exactly as desoribed in this Manual, The great
advantage of a standard TRAC processor is that scripts which work
on one standard processor can be expected to work with minimal trouble
on any other standard TRAC processor. ‘Thus an interchange of useful
seripts between workers in various fields of endeavor can be expected
to take place.
Fortunately this kind of rigorous standerdization of TRAC language
does not prevent the TRAC processor from incorporating other primitives
of @ special nature which may be useful for local situations and problens.
Aa we have seen, these extended primitives can be activated or not,
as desired, from the typewriter keyboard. Thus the choice of a standard
or nonstandard processor is left open to the user of the system.
Ordinarily, the TRAC processor, when it first starts up, will be
dn the standard T-64 level of the language.
Tt is the intent, in future developments and future releases of
TRAC language facilities, to provide well-thought-out standard groups
of primitives which will extend TRAC processors in special directions.
Such extensions will ba announced in TRAC publications,EPILOG TO THE READER
From the reading of these twenty chapters of this Manual, you are
now in full knowledges of how to use TRAC language and all its primitives.
‘The language you have learned is the standard TRAC T=6h level of the
language. Yor your reference purposes, a precise, technical description
and definition of the TRAC T-6 language 1s provided in Appendix A.
from this point on, the things that you can do in TRAC language
with scripts and proceduras 1s limited only ty your inagination and
skill,
Good luck, and may you have a rewarding and exciting time!

## Much more than documents.

Discover everything Scribd has to offer, including books and audiobooks from major publishers.

Cancel anytime.