Network lflo.rking Grou.
'"P	                                             M. Elie
 ~. '!'Jes t for Ccnment.s #51	                                           4 Hay .70
                                                                             L C A-
                     Proposal for a Net"iOrk InterChange Language
IntreXiuction
. In this paper04"1 attempt is made to specify a high level programning Lanquaqe
for co:nputer networks , and rrore specifically the l\.RPA network, The main con
cept introduced. is t.he one of an abstrract; Netv;ork iV.L3chine, which is conai.st.ent;
with the idea of a HOST ask.inq a service fran the o::roputer netvork considered
as an overall canputinJ facility. The dial~e is always between a HCST ar.r1
the Nebvork Ma&.ine ~;Jhich language is always the same, though itS configuration
may va:ry accordir.g to the real remote nOST.          .
. Fran a prcqranrrdnq langu'3.ge po.int; .of vi.ew, this concept is similar to the mX:OL .
  proposed in 1958 [STR05S] but never implemented, oo'J..'E!Ver,· the applicati.on to a
o.::mputer network implies a realtime interaction between programs. Also, ::'~e
possibility for the user to use ~'IL either in a standard rnode or in an exten:1ed
mode where he defines himself hi,s own entities shoul.d give to NIT. a maxinum of
flexibility.
1.	      Basic concepts introduced in NTh
1.1	     Aim of NIL
         The u..'O main objectives of NIL are:
               a)	     to describe the enviror.ment in which a prcqzam is executed
                       (its conplemerrc ); this involves the description of:
                         data formats am data structures
                         excharqes with input and out~t devices and characcerd.stdcs
                       -- expected =;:.uu fhen                -
                       - interface ~rlth operating system
               b) . to express the front end part of an interactive system:
                       The data flcM rhrouqh an interactive systxsn g('nerally decreases
                       as the data. zeaches the kernel of the syst.sm: it is assumed
                       that in ma...'1y interactive systems a separable rrodu Le exists or
                       can be def Lned vzhi.ch involves a great errount, of data exchanqed
                       with the user, and much less exchanqed vath the rest of the
                       systrm, This modul,e is called Front-End. It is Impor-tant; th~t
                       the zesponse time of the syst.em is affected as little as poss.ibl.e
                       by additional trar:.smission delays. Also, it is desirable to
                       keep the data rates as 10;" as possdbl,e on the netvork.
It is assumed t.hat fhe trar.sfer of a Front Ern does r.ot imply to solve the
whole problem of p:o.:;sT<li.11 trC.!'1Sfer&l1i.1 ity •
, .
       Netwo:~:k
               Working Group                                                M. Elie
       Request for Ccmrents #51                                             4 May 70
       1.2     NIL subcategorization
               As pointed out by S. Volansky [    ] it's convenient to divide J.an:ruages
               in several sublanguages cozresponddrq to their main functdons , NIL is
               thus. subdivided in:
                              a oontrol sublanguage
                              an operation sublanguage
                              a data declaration sublanguage
                          -   an environment sublanguage                                        !
                                                                                                .1
                                                                                                I
       1.2.1 COntrol sublanguage
              The control sublanguage states WHEN a ccmputatzion is done: It describes
              the flOtl of control or orderinj of the canputations. ~lith sane infor
              mation contained frcrn the other sections of the language, it also states
              WHERE the canputations are to be executed.
              As a canputer netvork introduces loose connections between several systems,
              the control language of the Neb-x:lrk r-1achine should be able ,in an elaborate
              version/of assigning canputations to available processors, taking into
              account the time delays and resource allocation problems involved. It is
              not our purpose to consider this level at the m:ment.
       1.2.2 Operation' sublanguage
              The operation sublanguage describes the operations to be perfonned on the
              data without indication of the sequencing between operations, it answer's
              to the question of Hal] an operation is performed. The operat.ions are sub
              divided into u.x:> groups.                       .                 .
                      -       a canputation group
                      -       a data manipulation group
              The later is the most irnp:>rtant part of NIL since its main purpose is the
              transfonration of data structures and patterns.
       1.2.3 Data declaration sublanguage
              The data declaration sublanguage is necessary to declare the variables
              and data structures on which operations are perfonned.
              The possibility is given to build structures of atonic e Iementis called
              beads. NIL provides a stan:1ard set of beads used in the "standard rncde" ;
              in the "ext.ended IIDc1e" a user may define new beads and new structures of
              them.
                                                   2
.'
     Network Working Group
     Request for Canrents #51 ,
                                                                              M. Elie
                                                                              4 May 70
                                                                                                I
                                                                                                1
                                                                                                i
     1.2.4 Envirorroent sublanguage
           ' The environment sub).anguage expresses the context in whi.ch a pregram
             expects to operate; ex.pecte:1 characteristics of the peripherals,
                                                                                                I
             semantics of the excharqes with the outside \A.orld through a particular
             operating system.                                                                  ,~
                                                                                                !
                                                                                                I
           Thus a canplete "projrem descriptor" will contain, four distinct sections:
                 'e nvironnent section
                 data declaration section
                 control section
                 operation section
           The identification section is anitted because it corresponds to the leg
           in and socket grabbing port of the initialization procedure.                         !
                                                                               ---- --- - --    1
                                     ,                                                          I
                                                                                                I
     1.3   ' '!he Network Hachine
            One fundanenta'l concept in NIL is that of an abstrac·t Net\'1Ork r-1achine
            which 'has the follo;.7ing characteristics:
                 -   an infinite memory: there is no problem of memory allccation
                     or garbage collection in this machine. But as an item must be
                     accessible, it must still have an address.
                 -   variable word length: a word may be considered as the snallest
                     intelligible and addressable item of data. The atanic element
                     called bead is in fact the machine word, The structure and
                     1eI"X]th of each type of beads are expressed in the data. defini
                     tion sublanguage.                                   ~
            As presented on figure 1.9.1, one HOST              r=:-=-l(--3     Network
            only carmunicates with a Net\olOrk Mach-            ~               Machine
            ine which may operate in bX) medea,
                                                                ,       figure 1.9.1
                     starrlard mode where the beads ..f-4:('H:i~a    .
                     their structures I am the all&',ed -'transforrnations on them are
                     standard and need not to be redefined: standard beads and
                     structures are known of every HOST
                         - - _ ... -- .. .
                                         , --- .,.
                                             '.    .. . ... .. . .
                                                  ",, '    "       .   -:   .
                     extended rrode where in addition to or instead of the standard
                     data definilions and 'manipulation, a HOST may specify new beads
                     structures and transformations. The extended rrode. al.Icws ::-1l.e.
                     user to define his aim ma chi.ne as the Net work Machi.ne , Tlu.S 15
                     then equivalent to the mcdes HY LCCcIL,              YOUR LOCAL proposed
                     in RFC #42 by Ancona. If the definition of a narre has not been
                     altered the st.andard definition is assumed.
        Network vlorking Group                                                M. Elie
        Request for Carments #51                                              4 May 70
        The data definition sublanguage is as we l.L used for the purpose of documenb
        ing the set of s'candard beads.
              The instruction set of the Net\'.Drk Machine stands at a high level per
              mitting global transfonnations of data structures.
              The 'envirorment of the Neu-x:>rk Machine is detennined by the subset; of
              the environuent of the server I s HOST \'mch is used by the program in
              execution; the systen HOST-Netv..-ork Naclllne can take bo-:o main configura
              tions shown in figure 1. 3.2.                           .
•                                    a)	 The Neuvork Hach.ine ·stands for the user of a
                                           pro:;ram provided by t;he HOST (server HOST) '
    ~f-(--/f~=~~
    ~      ~server)
                                     b)	   The HOST machine is the user of a proqram
                                           provided by the Neb-lOrk Machine.
                                           The server machine assigns its hardware .environ
                                           ment to the user machine. This choice is made
                                           so tf'l.at prcgrams can be ranotely used without
                                           bei.ng- mcx1ified; it is up to the user of a remote
    Network                                program to adapt himself and his own environnent.
    Machine
    (user)                                 Thus, when the Network Machine is server, it
                                           defines the Data Definition and Environrrent
                figure 1. 3.2              sections.
.'   ~
         Network ~'Jorking Group                                                        M. E1ie
         Request for Caments #51                                                        4 May 70
         1.4    Irnplenentation                                                                         "
               The data and environment definition sublanguages should be able to
               describe as wel.L envirorment and
               data in HOSTs as data in Net      HOST description    Neu\:ork Hac1'ine
               ,,"ork Machine. At the limit                             • (description
               it should enable .two programs
               written in different languages
                                                                      non
                                                                           rstandard mcx1e)
                                                                               Netv.ork Hachin~
                to a:mnunicate r .
                       as long as the data
                            /       starrlard mode                I
               representation they use are
               expressible in the data de 
                       I                                i
               scription sublanguage.
                                                  I
                                                               /
                                                              GENERATOR                             I
                                                                                                    I
               In each HOST will be
               implenented a "generator"
                  /                                        I
               which will accept rules
                                                             I
               describing the HOST data
               structures arrl environ 
                                                       /                                            I
                                                   I
               ment and will generate
            . ~ Data in \ TRANSLATOR                rata is J,
               an adequate translator
                                                  I-------~
                                                       HOST             for               Neh?Ork Mach±ile
               to translate than in
                   mat
               Netv.;ork Nachine format,
                                                 format
               as sbown in the figure
               1.4.1.                                                  figure 1.4.1
                 once the network machine
                 stanc1a.rds wi.Ll, be settled
               . it seans valuable to think
                 about anulatin:] the tran
                 slator using a micropro
                 gramed unit which would
                 be either added to the                HOOT
                 Host or rather to the nIP"
                 thus avoiding the load of
                 a translation whi.ch may
                 involve lengthy operations                            Figure 1. 4. 2
                 on the bit level - (Figure
                 1.4.2. )
· Network Working Group                                                    M. Elie
  Request for Ccmrents #51                                                 4 May 70
 2.        Data definition sub1anguage
 2.1       Fields
           All ccmnunications with the Network Hachine are done using
           strings of bits: these strings of bits, also referred to as
           messages are parsed by the receiving HOST to reconstruct inside
           its memory the data structures in its a.m rremory and cede.
           Bits are	 grouped into significant fields: a field is a group
           of bits having definite contents • . It may contain:
                 a)    an elarent of data (data field)
                 b)    sate bit pattern specifying' environrrent parameters
                 c)   .a pointer
                 d)    the identification of sane other fields.
           '!he method to describe the fonnats of beads is derived from
           the method of description of a binary message suggested in
           RFC 4/:31:
                 a)  each field is declared with its narre and length in
                     number of bits.
                 b) ccmnon1y used fixed values of a field that correspond
                     .to a special meaning, may be given names.
                 c)	 legal ways of concatenating fields are initiated by
                     rules; men only certain fixed values of a field are
                     allo.'led, they may be either   specified by their
                     value or by the corresponding narre.
     2.2   Data beads.
           Data fields (type (a» are concatenaded to form data beads:
           a bead is an indivisible atomic unit of data .us ed as
           building element of any data structure to be transrnitted
           between HOSTs and Network Mach.ine , A bead is the smallest
           unit of data that can be referenced.
           Thelegal ways of forming a bead by concatenation of several
           fields are indicated in a construction rule. Beads have a
           fixed length and an unambiguous structure. In real machine
           beads are usually defined as an integer number of contiguous
           registers. This constraint does not apply here, though it
           may turn out to be more efficient to favor HOSTs with, for
L	         instance, 32 b.i.cwords , and 4 bytes per word, which .a r e the
           most carmon ....r ord structure on the ARPA network.    !..""
           Data beads may be consd.dered as the operands of the Lanquaqe
           in which fields of type (b) and (c) would be operators.
                                             6
-,
     Nat\vork V\orking Group                                            M. Elie
     Request for Carrrents #51                                          4 May 70
     2.3    Control fields
            '!be way data beads are linked ore to the other and the environ
            ment in which they operate are specified by additional control
            fields whi.ch cannot be referenced and are operators on or
            identifiers of the follo.ving string of beads, or linkage
            between individual beads.
             The scope of a control field may as well be all the beads or
             substructures of a structure, if it is specified at the level
             of the .he ad of the structure. To be more precise, two kinds
             of structures of beads must be defined: hcmogeneous and
            .heterogeneous structures •
            .A structure is defined as hanogeneous if both a unique type
            of bead and a fixed pararreter environrrent for the whole
            structure is specified at the head of the structure.
            A structure is defined as heterogeneous if at least one of
            the follcwing conditions i's true ..
                 - different types of beads are used for building the
                   structure                                           .
                 - the environrnent in which lie tile beads of the structure
                   is changing wi thin the structure.
            Five main control fields need to be defined.
                 a) MODIFY
                 b) . FLAG
                 c) POINI'ER
                 d) IDENI'IFlCATION
                 e) PARAMETER
     2.3.1 MODIFY field
            '!he HODIFY field is a one bit field   preceding every bead of
            a heterogeneous structure: it is a     flag set when follo.~·ed
            by one or several control fields of    type b, d, or e, which aim
            at modifying either the environment    of data beads or their
            type. '!bis field has the value:
                 1	 if the attached data bead type and its envi.romrant; do
                     not change
                 o . if t11e attached elernent is a control field or a '
                     sequence of control fields of type b, d, or e specify
                     ing a change in type/or environment of follo.ving data
                     beads.
                                            7
·   , Network Working Group                                                             M. Elie
       Request for Carrrents #:51                                                        4 May 70
      2.3.2    FIAG field
               \'ben set, the MODIFY field is imnediately follaved by an 8
               bit FLAG field indicating which of the IDENTIFICATION and
               several possible PARAHEiI'ER fields are present; when set to
               one each individual bit means the follcwing:
                     bit number
                        o	                  IDENTIFICATION field present
                       . 1	                 first pararr.eter field present
                         2                  second parameter field present
                                                  -                   - -+-- - _.. 
                       , 6	                 siXth para:rreter field present
                      . 7                   next - fielq#- is another FLAG field ,
                                       ' for sane more pararreters (in case '
                                       \ rrore than 6 parameters may be
                                       I attarned to a bead environrrent) •
                                       \	                  -- - --   --- -    - - - ..
      2.3.3    POINTER field
               The number and nature of pointers to be attached to each bead
               depends on the structure definition. A given list structure
               may need one forward pointer. A ring structure may use an'
               additional pointer to the first element. 'Ihe necessary
               lin1(age between beads are defined in the structure definition
               thereafter the necessary pointer fields autanatically added to
               each data bead. A bead is referenced within a structure by
               an address relative to the head of the 5 tructure. 'Ihus a
               16 bit pointer field should be fully sufficient to contain
               this address.
       2.3.4 IDENTIFICATION field
               The IDENTIFICATION field is an 8 bit field which identifies a
               bead type arrong the list of defined bead 'types . Standard bead
               types are nuubered from zero up and non-standard bead types are
               numbered from 255 dam. The non-standard types mrrnbering is
               special to each server program or to a set of server programs.
               The IDENTIFIC"\TIO~J fields ,f ol I a .., a HODIFY field of value 1 when
               ever the bead type has not been defined alloVer the structure
               in the structure root. Identification fields are also used at
               the level of the head of the structure to specify the type of
               identical elements (beads or structures) used wi, thin this structure.
       2.3.5   P~~R           field
               The' PARN1E.'TER field gives the list of the environment pararreters
               in whi.ch the f cd. Lcwi.nq string of data beads lies. A PARi\HCTER
               field is specific of a bead type; it directly follolls the HODIY:{
               field when there is no arrbigui ty or the type of the next data beads.
                     Network Working Group                                                                           M. Elie
            .'       ReqUest for Connents #51                                                                        4 May 70
                                   Example:           "the par~er field of the standard bead BEN-NVr
                                                      will contain the follcMing fields.
                                           -    a 2 bit field indicating the type of moverrent generated
                                                    00               do not display             nove the beam
                                                    01            ". display final point        point.
                                                    10               display vector             vector
                                                    11               unused
                                           -    a 4 bit field indicating beam intensity, by a nun:ber
                                                fran 0 to 15, 0 meaning a null intensity, and 15 the
                                                maximum possible intensity.
                                           -    a 1 bit field for blinking
                                                    o        off
                                                    1        an
                                           -    a 1 bit field for light pen sensitivity
                                                    o        off
                                                     1       on
                      2.4          Metalanguage definition
                                   A COBOL - report like rreta language is used in the examples
                                   because of its readibility, as well in the beads as in the
                                   structure definitions.
                                               Symbol                         Meaning
                                                 +                            concatanation
                                                {        }                    choice
                                                 [       ]                    optional choice
                                                                                 repetition
- -   --- - - - --   _. --   - -- ~ - - - - - - - _   ... ._ -- -_._ - _._ -- - ---- -_ ._. _- - -- - -- -
                                                                                                     - . _ -~ -  - - - - ----_._- -
                                                                                               1     laver bound on the
                                                                                                     number of identical
                                                                                                     items; if anitted 1
                                                                                                     is assumed to be O.
                                                                                           u     upper bound on the
                                                                                                 nurrber of identical
                                                                                                 iterns; if anitted u
                                                                                                 is assumed to be 00 •
                                                                                           .a number alone rreans:     exact;
                                                                                           nU1lber of repetilion.
                                                                                 9
"   ..   .' "	 Netw"Ork \'k>rking Group "                                                  M. Elie
               Request for eomtents *51                                                    4 May 70
                   .
              label for further use within the same rule
                  =                assignment
             ="
                    ::>            conditional alternative
                                   ,
             (     )               grouping
                                   indicates a special value given to the folloong field narre
                  o
               plus
                  G
               minus
             2.5          Prcposed	 standard beads
             2.5.1 Alphanumeric beads
                          Character:        CHAR
                          A character is canposed of one eight bit field (which has the
                          same name).      Many special patterns, corresponding to currently "
                          used special characters are defined; they are indicated in
                          table 2.5.1, as we l l, as sorre subsets of CHAR. The basic char
                          acter code is declared as s tandard ASCII
                                                        standard EBCDIC
                          or by the name                         CODE
                          follo....e d by the 128 characters in this code corresponding to
                          the 128 ASCII charactars , If no code declaration is specified,
                          the ASCII code is assumed by default.
                          Nu:nber representation
                          Normally the kernel of a proqrarn stays in the ' server's HOST
                          and the user's HOsr should have no arithrnetic operations to
                          perform on the data. In this case, the principles involved
                          in the arithmetic unit conception of a HOST do not need to
                          be described. But the format of fixed and floating point
                          nunbers has to be described.
                                        in the "case when user and server Hosr' s have the same
                                        number representation,for instance the stiandard
                                        representation) the transmission of data in their
                                        nunber representation reduces the data flo..; between
                                        them.
                               -        if the server HOST has a different number representatioi1
                                        than the standard representation, depending on the data
                                        transmitted, there are two alternatives:
                                                             10
     »,
".
          Network Working Group                                             M. Elie
          Request for Ccmnents #51                                          4 May 70
                       + the nunerical data is exchan:jed as decimal nUI1'lters in the
                       standard code
                        + the fixed and floating po.int; fonnat are defined to the
                       _Neuvork Machine and the user HOST performs
                             either a ' direct transco:1.ing fra-n the server binary
                             representation to decimal representation and vice.
                             versa.
                             or a transcoc1ing f ran the server binarY representation
                             to its own binary representation an::l vice versa.
                As most of the numbers exchanged are      to be printed in decilnal or
                are given as decimal input, it is felt that when there is incanpati
                bility between binary represe..T1te"ltions of corresrx::mc1irrg HOSTs,
                exchanges in decimal representation would te the easiest.
                Thus are defined:
                a)   .Number in decimal r~presentati.on whi.ch is not a bead but
                      a string of characters (see 2.3.1)
                b)   Fixed poirrt numbers	 single preci.sion FXP1.'illMl
                                           double precision FXPNUH2
                Field defi.nition     BYTE     8     SIGN      1
                                     SBYTE     7
                      FXP NThU~SIGN + SBY'I'E + {BYTE}3
                                                .:        4
                      FXP NUM2 <-FXP!-'TQM i +	    {BYTE}
                c)   Floating point numbers	 single precision FLPNUMI
                                             double precision FLPl'-JG'M2
                      FLP NUHl ~ SIGN + SBYTE	 + {BYTE}3
                     FLP. NUM2 ~ FLPNUr'-U    +	    {BYTE} 4
                This only ~presses the syntax of t..;e floating po.int; number.
                The sanantics should say: in FLPNUI\'l1
                     SIGN is the sign of the number of fonnat {BY'I'E}3 vlhich is
                     the mantissa
                     SBi.'TE is the exponent, ard its value is based by a value
                     of 401 6
 to insure positive exponents. In fact, FXPNu'H1
                     and FLP~·;(JMl di f f er by their s emant.i.cs ,
                                                   11
Network vbrkir.g Group                                           M. E1ie
Request for Carments #51                                         '4 Nay 70
            These prop=rties will be expressed by specd.al, field
            definition:
                 EXP .(_ SBYTE   (±) I 400 I SBYTE
                rW1r <_,. SIGN   G1 {BY"TE} 3
            and a floating point number         is defined as:
                FLP "= !v1ANT   .pp
                                          12
    Nebvork Harking Group                                             r-1.E1ie
    Request for Crnroents #51                                         4 r-1ay 70
    1.   Special Characters
           Transnission Control Characters
                                     SOH
                                     STX
                                     ETX
                                     Ear
                                     ENQ
                                     ACK
                                     DLE
                                     NAK
                                     SYN
                                     EI'B
                                     ESC
         Printer Control Characters
    horizontal tabulation HT                      1-   'OXl' CHAR
    vertical tabulation                      VT   1-   'OBX' CHAR
    new line                                 NL   1-   'OAX' OlAR
    end of message                         ID-1   1-   '08X' CHAR
                   - _.   
         Te1e   otype
                          Control Characters
    Carriage return                          CR   1-   "ODX' oOIAR
    shift out                                SO   1-    'OEX' OIAR
    shift in                                 81   1    'OFX' OlJ-R
                                             BS   1
         Device Control Characters
                              OC1
                              OC2
                              OC3
                              OC4
           Table 2.3.1
                                                             13
.:
          Neu..urk \,]orki!'B Group                                              M. Elie
          Request for Carrnents if5l                                             4 May 70
          2.   Subsets of Characters
          Numeric characters                1
                                            2
                      NUM           +                aJAR
                                            9
          Printable characters
                     PRCHAR         +
          Intennediate characters        'J~acters "I'
                     ITCHAR         +    \n~l= )            OIAR
          Final Ch3.rac·ters
                     FIN CHAR       +      CHAR     e    ITCHAR
     <,
          Transnission Control
          Characters *
                                          t~}
                                                        CHAR
                    TRACHA..~       +
          Derra Control Characters          DEL         Teletype control character
                    OCQIAR          +	    ' (OCl   I'	 CHAR TYCOIAR {CR  ~
                                           t~~ )	
                                                                      SO "
                                                                       S1   r,
                                                                       BSJ
          Alphabetic characters
                    M:l?H       +
          Printer Control
          Characters
                       ~HAR         +
                   Table 2.3.1:	 Special ASCII characters and groups of ASCII
                                 characters.
          *see USACII standards
                                                          14
-   <,   Netwurk ~vorking Group                                         r.1. Elie
         Request for Ccrrments #51                                      4 Hay 70
         2.5.2 ' Graphic	 Beads
                As proposed in RFC #5 by J. Rulifson, the screen of any graphical
                display is taken to be a square; the coordinates of points are
                normalized fran -1/2 to +1/2 on roth axes. The pos.ilion of the
                first podrit; of a structure is determined by the deflection fran
                the origin whi.ch is the rest po.int; of the beam; fol1m"d.ng points
                are detennined by their deflections (AX,AY) fran the last beam
                pos.i.tdon • .
                       Thus, only u.o data fields need to be defined:
                DEFLECl'ION	        which is a 12 bit field: the deflection is
                                    defined by a mmber between - 1 and +1 with
                                    the precision usual to the server.
                ANGLE	              which is a 15 bit field defining an angle fran 0
                                    to 211 in radians between the horizontal axis and
                                    an axis passing through the origin. The first bit
                                    of it indicates if the angle must be taken clock
                                    wise or counterclock.\vise.
                The data beads	 are:
                MOVE
                Deperrling on the parameters which are set when this bead appears,
                MOVE may specify:
                -   an invisible movement of the beam; in this case the beam
                    intensity is null
                    a new point: in this case the team intensity is on only
                    when the team has reached the new point.
                -   a vector: in this case thebearn intensity is set to a certain
                    non zero value
                           MOVE + {DEFIECl'ION}2
                Arc of circle:       ARC
                An arc of circle is defined vJ its center, fo'l.Lowed by its start
                ing point and fhe angle of its ending axis.
                           ARC + {DEFI.ECrrCN} 4+liJ."\"l(;I.E
                                                            15
 .
. ".                                                                           ·M. Elie
       NeUt.Drk ~Alorking- Group
       Request for Colments #51                                                 4 May 70
       2.6     Proposed parameter fields.
       2.6.1   Character str.i.nqs.
               In character strings sane of the control characters are really
               parameter fields: they act as an operator on the folloftTing
               strin:; of characters. Le. :
                      10\'1er shift
                      upper shift
                      new line
                      escape
               But as the code and use of these characters are detiemtined in
               the standard codes, they are not included in parameter definition.
               I ,t may be taken advantage that these characters are in the Ut70
               left columns of ti'e ASCII or EBCDIC standard code: they cor.respond
               to codes with the first three bits Jll..lll in EBCDIC ard the ' first
               two bits null in ASCII.
       2.6. 2 Graphics parameters
               The follOt.-,.i.nq parameter fields are defined:
                     scale                SCALE           4
               beam intesity              I~"T            4
             light pen sensivity          SENS        +   SV·iTrCH
                   blinkim                BLINK       +   S"I"1I'ICH
                      beam              B.E1J'1 +   SWITCH
                ~~rDCH    is. a 1 bit field Which may take the values:
                          00<-'1'      S\"1I'ICH
                         OFF <.- '0'   S"I'1I'I'CH
               A switch parameter stays ON, as long- as it is not reset          to
               OFF.
               The beam intensity is expressed. by a number' fran 0 to 1. 0 is
               black and 1 as light as the display can go. .Numbers in between
               specify the relative log of the intensity difference. BEAM
               permits to swi.tch the BEAM on or off without chancJing the
               Current INT parameter.
       2.7     StructLrres
       2.7.1 Structure definition.
               The structure def ini ·t i on consits mainl y i n t.he specif i cat i on of
               thetor.olcgical relation..s between data beads:
                           sequential relations; DO r:ointer field necessary
                           link.s through a mmber of p:>inters.
                                                           16
'" .
        Netv..urk v.larking' Group                                                 M. Elie
        Request for 'Cannents #51                                                  4 May 70
        2.7.2   Standard structure type.
                'l\-x)   basic standard structure types are chosen
                VECIOR	 to represent 's eque nc e of data beads (strings, arrays,
                                 tables ••• )   '   '
                PLEX	            to represent any kind of directed graph, tree, ring .•. )
                VECTOR (CiN, •••N   +- VECroRIIDR + VEX:TOP.BODY
                                 C)
                          VECrORBODY+(=C+l:{defi.r!ed bead}Ni + [VEC'IOPBODY]
                          VECTOPJIDR +'VECTOR' IDEN"TIFICATION + C + N        + N2 + ••• -tNc
                                                                         l	
                C is the number of parts (co.limns) in the vector, each part hav
                :in:J    ~:TC   elsuents.
                It is also probably interesting to define a canpressed vector
                CCMPVECTOR in whi.ch sequence of the identical elErnents~are trans
                rni tted as 1 elanent + .a special bead + the number of identical
                eleuents in sequence.                      '
                PLEX (H)
                The first bit of a podrrter field indicates if the p::>inter po.irrcs
                to a tenninal el.ement; or not. If it is the case, forward
                p?inter	 fields are not added to the data element.
                M is the nunber of data elsuents in the ' structure.
        2.8     Objects
        2.8.1   object 'definition.
                An object is defined by a semantic rule including, on the right
                hand side r a name to identify the object
                          'La set of parameters of the object definition.
                           (operands: name of tie beads used as data e'lemenbs
                on the left: :  ,    --                
                hand side loperators: parameter fields
                            structure of the data beads .
                Le.   The definition of a new object called SQUARE is: SQUARE ';,- 
                (A,L~Ae) RYI'lh(ANGLE:Z,) (VECrOR (l, 4) (OCl\!'1'OFF' +
                MOVE (A) + B.EJ..I-I 'ON' + f.'lOVE (O,L) + r..:OVE (1.,0) +
                HOVE (0 ,~L) + NOVE (e.L, 0) )
                v.]here Rar refers to a transformation defi.ned in the data rnani.oul,«
                ation Lanjuaqe , aril. VECTOR is defi.ned as a atardard structure:
                                                          17
·"
     Neu.~"'Ork
             \'Iorking Group                                                               M. Elie
     Request for Ccmnents #51                                                              4 May 70
               The identifier of the le\" structure is SQUAnE
              .The structure type used is VECTOR wi.th dimension 1 and 4 el.enents                     .'
               The elerrents of the VECTOR are standard beads HOVE
               The parameters are A, L , ard A G
               Parameter fields BEAH ,IOFF ' and EEAH ION' are used ,
     2.8.2    Alphanumeric standard objects.
              Ccrnpressed character string (CQ."1STRmG)                          ,       "t\.
              a::JMSTRING   ~ VECIOR   (1)   (   [PRCHAR] n   +   ~NlJi'll )                  .
                                                                  V!'+}.,"'tJM       I     EOF)
                                                                  :C+CHAJJR
                                                                  EOP
              A canpressed string of characters is any mmber of times a
              strin:3' of any number of printable characters fo'l.Lcwed by one of
              the follcMing characters                      .
                        horizontal tabulation fol.Iowed by the mmber of correspond- .
                        in:; blan.1.::.s to be added
                    -   vertical tabulation fo Llrwed by the nurnber of lines to
                        be ski.pped,
                    -   escape fo'l Lowed by any character
                    -   new line
                    -   end of page
              The canpr-essed string is ended by an EOF character.
                        Co1e table (CODE)
                        CODE.(-VECroR (1; 128)    [~28
              CODE is the name of the translation table assumErl for a given
              program. When definErl by the user I he must give fran
              column 1 to column 8 the 8 bit pattern equdvaLent; to the
              correspor.ding ]lEerr cede.
                                                       18
                                                                 ..   ~
     .                .
Netv.:ork ~·;orkilXJ Group                                                       H. Elie
Request for Ccmnents #51                                                         4 .I-1ay 70
                                                                                               "
            Binary card image
                B CARD (-VEX:TOR (1; 120) {CHAR}120
         packed dec.irrB.l number ffiU·1           4     bits field
                                                        .::~~'
                       x
                       X
                       X
                       X
                           HNUH         PN1JI·1   f-                      HNUH
                       X
                       X
                                  1£.n.:31
    .   PDNUH    f--   ~NL"r-t}                   +    DSIGN
        _ . Decimal mmber (unpacked or zoned
                                         _ lL..n<31
                   DNU1    f--     {i-roi.1]
                                           + D SIGN+ PNUM
                                                                                                   -I
                                                        19