Home
        November 23, 1976 Portability of Large Cobol
         Contents
1.        l                                           S m   lta Mo    ssesnewen vem eme wu     Programmer     Program Preparation       5e ku   l  A d 4    i   Text      Command       Flow     Flow  Ig      t                                dede ded d d    R5  KC eeceeceeececen Q e de de e eode de e n    Georg  a Institute of Technology COBOL Workbench    Section 2 CAPABILITIES s Page 52    2e6e2 Audit Irall of Changes    The Document Control System will automatically maintain an  audit trail of all changes made to a document  see Appendix  33  This will allow the programmer or systems analyst to  identify changes made to a document tn a chronological man   nere Thus  corrections need not be considered permanent  because they can always be recovered  It should be noted   though  that the Document Control System will never discard  any changes rather  if the change is not desired  it simply  will not be applied during the construction of a particular    revisione     26 3 Ability to Maintain Different Releases Versions    The Document Control System will provide the capability to  maintain separate RELEASES of all documentse The need for  separate RELEASES occurs whens for examples one RELEASE of a  program is in production while a newer RELEASE is in  development  In addition to maintaining separate RELEASES   one must be able to maintain the different VERSIONS of all  RELEASES  Thuse the Document Control System will allow one  to obtain or create any VERSION of any RELEASE of a 
2.     change  delete specified texts then accept text  to replace it    delete specified ranae of lines    edit named file  syntax  e Cfilename      print remembered file name  syntax     globally perform command  syntax     a pattern command    insert text before specified Line   join the specified Lines into a single Line   syntax  j string     string  is inserted    between each pair of Lines joined     mark Lines with given  kcsingle character name       name  syntax     move lines from one place to another    from heresto here m theretp2      syntax     print mark names of specified Lines    options command  Syntax includes   op prompt  to set command prompt    print specified Lines    quit  exit the editor gracefully     read a file into the buffer    Cfilename       syntax  r    substitute  syntax  s change this to this  p    translit  syntax  t from range to range Cp J    Characters in the  from range  are converted to  their corresponding characters in the   to range      COBOL Workbench    f    filename j     Aopendix 5    eve    ove    ete    W    EDITOR Page 212    un substitute  restore Lines that were changed  by substitution     overlays orint alk Lines in the given ranges  waiting at the end of each Line for text that  is to be appended     write buffer  syntax  w Cfilenamed     excludes converse of  g   perform command on  all Lines that do not match a saiven pattern   syntax  x pattern commancd     copys reproduce a block of Lines in another  place  syntax  fr
3.    0071  MOVE SPACES TO REPORT RECORDe    0072  MOVE FINAL TOTAL TO FINAL TOTAL OUT     0073  WRITE REPORT RECORDe     0974  CLOSE  SALESCePILES     0075  REPORT  FILEe   0076  STOP RUN    0077      6078  DISTRICT TOTAL PROCESSING     0079   OVE ZERO TO DISTRICT TOTAL     5080     0051     0082  MOVE DISTRICT TO PREVIOUS DISTRICT    0085  PERFORM SALESMAN TOTAL PROCESSING UNTIL     6084  DISTRICT IS NOT EQUAL TO PREVIOUS DISTRICT   0085  OR NO MORE DATA     C086     3087      00258  MOVE SPACES TO REPORT RECORD     0082  MOVE PREVIOUS DISTRICT TO DISTRICT OUT     0090  MOVE DISTRICT TOTAL TO DISTRICT TOTAL  OUT     Georgia Institute of Technology COBOL Workbench    Appendix 2 EXAMPLE Page 151   0091  WRITE REPORT RECORDe    0092  ADD DISTRICT TOTAL TO FINAL TOTALe    0093     0094  SALESMAN TOTAL PROCESSING      0095  MOVE ZERO TO SALESMAN TOTALe    0096     0097     0098  MOVE SALESMAN TO PREVIOUS SALESMAN     0099  PERFORM PROCESS AND READ UNTIL    0100  SALESMAN IS NOT EQUAL TO PREVIOUS SALESHAN   0101  OR DISTRICT IS NOT EQUAL TO PREVIOUS DISTRICT   0102  OR NO MORE DATA      0105     0104     0105  MOVE SPACES TO REPORT RECORD      01068  MOVE PREVIOUS SALESMAN TO SALESMAN OUT     0107  MOVE SALESMAN TOTAL TO SALESMAN TOTAL OUT    0108  WRITE REPORT RECORD     0109  ADD SALESMAN TOTAL TO DISTRICT TOTAL     0110     0111  PROCESS AND READ     0112  ADD SALES DOLLARS TO SALESMAN TOTALe    0113  READ SALES FILE    0114  AT END MOVE  NO  TO MORE DATA FLAG    58  W   COMP  IG
4.    Georaia Institute of Technology COBOL Workbench    Section 5 IMPLEMENTATION Page 1531    processors in the torkbench se  The initial studies that have  been performed in obtaining this goat have focused on  identifying what features of COBOL are utilized by orogram   mers in the execution of their task  It apears that this is  a valid approach to this problems and all that remains to 5e  done is to utilize a broader sample of programs and applica   tion areas in order to obtain high confidence jin the    validity for the design of Workbench CO080L     The Last major problem area that was not completely solved  during this research project was the selection of a method  to store and produce var  ous versions of a document that is  undergoing continual change and revision  The basic ab   proaches to this problem are described in Appendix 3  This  fs another area in which it appears that more  detailec  knowledge of the environment in which the system is to be  utilized will be required before a specific implementation    technique can be selected     Georaia Institute of Technology COBOL workbench    Section 6 SUMMARY Page 132    SECTION 6    SUMMARY    This research project has been successful tn achieving its  goals in the study and development of the COBOL Programmer ts  Workbenche The concept of the Workbench and the  capabilities it provides have been shown to be quite valids  and the Demonstration Workbench clearly illustrates the  feasibility of implementing a complet
5.    d    deletes only the current Line  It is the same as  ec  or       Gel s    After a deletions the current Line pointer is Left pointing  to the first Line after the group of deleted Liness unless  the Last Line in the buffer was deleted  In this casey the  current tine is the Last Line before the group of deleted  Lines     Seleld Text Patterns    Frequently it is desirable to be able to find a particular   pattern  in a piece of texte For examples  suppose that  after proofreading a report you have typed in using ed  you  find a spelling error  There must be an easy way to find  the misspelled word in the file so it can be corrected  One  way to do this is to count all the Lines up to the tine  containing the errors so that you can aive the Line number  of the offending Line to  ed   Obviouslys this way is not  very fast or efficient    td  allows you to  search  for  patterns of text  Like words  by enclosing the pattern in  slashes       jumps   jumps over    Ed  Looks for the pattern you specifieds and moves to the  first tine which contains the pattern  Note that 1f we had  typed     jumped        ted  informs us that dit could not find the pattern we  wanted      td  searches forward from the current Line when it attempts  to find the pattern you specified  If  ed  reaches the Last  Line without seeing the patterns it  wraps around  to the  first Line in the file and continues searching until it  either finds the pattern or gets back to the Line where it  started  L
6.    documente    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 53    2  6   Linkage of Comments on Documents    To encourage as much feedback as possible on programs and  supporting documentations  the Document Control system  provides the ability for user comments about documents to be  dated and Linked to the document to which they refer  Thus   users can comment on any errors which they believe they have  discovered or make suggestions for changes to the documents   The systems analyst responsible for a document will be able  to examine all comments pertaining to the document  He can  then act upon them and report back to the originator of the  comment as to the status of the document or the point raised    by the user     Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 54    2  7 DOCUMENT PRODUCTION    2e7Tel Program Production    The Workbench has the capability to produce record or  documentation copies of the various VERSIONS of the source  code  howevere it cannot produce the object code version of  the proaqrame That has to be produced in the target compiler    environmente    2e7e2 Documentation Production    The Workbench will be able to process the documents as they  are stored in the various Gibranin and produce printed  reports which are formatted according to appropriate stan   dardse The Workbench witt provide a Formatting Program  which will accept commands imbedded in the text of the  documents  
7.    ply  redirection      It is not necessary to redirect both standard input and  standard outputs either may be redirected independently cf  the other  For examples      ee   copy    can be used to print the contents of file  ee  on the  terminal   Remember that standard outpute since it was not  specifically redirected  refers to the terminale  Not    surprisinglys   the Last variation of  copy        copy old ee    is also useful  This command causes input to be taken from  the terminal  until an end of file is generated by typing a  control C  and placed on the file  old ee   This is a quick  way of creating a small file of text without usina a text  editor     It is important to realize that all Subsystem programs  behave uniformly with regard to redirectione It is as    ee ae oe ee ae ule  gt  GER Ge ee ee ee ee RANA  Be me we Ee EE CE ee OE ee CENE       correct to redirect the output of    says  Lf   J Lf   file List  as it is to redirect the output of  copy      Although the discussion has been Limited to one input port  and one output port up to this pointe more of each type are  availablee In the current implementations there are a total  of six  three for input and three for output  The highest   numbered output port is generally used for error messages    and is often called  errouts  you can  capture  error mes   sages by redirecting this output porte For examples if any  errors are detected by  Lf  in this command    J Lf 35 gt errors    then the resulting erro
8.    vironment that will react to any stylo of programming    desired by the programmere    Georgia Institute of Technology COBOL workbench        m ame   mee ee                      om      D UU erase o    SOCE Ton  o IMPLEMENTATION Page 124    Se4 OPERATION OF THE DEMONSTRATION WORKBENCH    Simolicity of operation by the user has been one of the  orimary objectives in the desion of the wdorkbenche This is  one area in which we feel that the research project has been    extremely successful     As mentioned above  the workbench user invokes the service  desired by merely givina a single name command to the com   mand interpreter interface  towevers at the same times the  proorammer is able to change or modify the standard opera   tion of the workbench by outkding personalized command fites  or entering sinale more primitive commands to the commanc    interface     nno of the crimury foundations for this flexibility is thc  standard file structure for all files created oy the Vork   henche  Re ard  less of whether a file is created and or  modified cy a command file operation or by individual  Software Tools commandss it retains its standard or   aanizations and therefore can be easily integrateds  concatinatecs or operated on with other files in a uniform    mannere    Georgia Institute of Technology COBOL Workbench        e           n    am ml ur Ey IO sae      Section 5 IMPLEMENTATION   Pade 129    Se5 MAJOR PROBLEMS ENCOUNTERED    There were actually only two major problem
9.   DECLARATIVS  DELCTE  DELIMITED  DELIMITER  DEPENDING  DESCENDING  DESTINATION  DETAIL  DISABLE  DISPLAY  OIMIDE  JIVISIOM  DOWN  DUPLICATES  OVI LAM C   EDI   ELSE   EMI   ENABLE   END   END OF  lt PAGL  ENDING  ENTER  ENVIRONMENT  FOP   EQUAL   ERROR   ESI   EVERY  EXAMINE  EXCEPTION  EXIT   EXTEND   FD   FILE  FILE CONTROL  FILE LIMIT  FILE  LIMITS  FILLER  FINAL   FIVST  FOOTING   FOR   FROM  GENERATE  GIVING    Georgia Institute    pd    x  S4          mn    O1    E    Eri  un ES t  c0 CcOoco oco OF VN OF OM ODO FMW c0 cocco gc  1c20030c5270c000500000500c50c50c 00    RA    0    re PO E  O C2 ta U we    1012  0    t   0    amp   113  Q   4c    COBOLewbc    of Technolooy    GO   GREATER  GROUP  HEADING  HIGH VALUE  HIGH VALUES  10   I  0O CONTROL  IDENTIFICATION  IF   IN   INDEX  INDEXED  INDICATE  INITIAL  INITIATE  INPUT  INPUT OUTPUT  INSPECT  INSTALLATION  INTO  INVALID   IS   JUST  JUSTIFIED  KEY   KEYS   LABEL   LAST  LEADING  LEFT   LENGTH   LESS   LIMIT  LIMITS  LINAGE  LINAGE COUNTER  LINE  LINE COUNTER  LINES  LINKAGE  LOCK  LOV VALUE  LOW VALUES  MEMORY  MERGE  MESSAGE  MODE  MODULES  MOVE  MULTIPLE  MULTIPLY  NATIVE  NEGATIVE  NEXT   NO    Pace 266    1243  148       Q   0   27    T    xu     A BR 7c   2           C     OP t9 ho C4 FOOD    Cal  Do D ON  Re Cre Q C    i    45 C4 Co cn Qi c 4 S fo COD 4C  D o B aa B aos B CO tp CO CO  J CO Cr re    po    CA  C    O     c  on    COBOL Workbench    Appendix 9    NOT   NOTE   NUMBER   NUMERIC  OBJECT COOMPUTER  OBJ
10.   You are now in the editors   ready to goe Note that fed  does not print any prompting  informations this quiet behavior is preferred by experienced  userse    If you would Like    prompts   it can be providedas  try  the command  op norompt        At this points fed  is waiting for instructions from youe  You can instruct fed  by using  commands   which are single  Letters  occasionally accompanied by other informatione  which you will see shortly      Sele2 Entering Text   the Append Command    The first thing that you witt need is text to edit  Workin   with  ed  is Like working with a blank sheet of paper  you  write on the papers alter or add to what you have writtens  and either file the paper away for further use or throw it  awaye In fed   terminologys the blank sheet of paper you  start with is called a  buffer   The buffer is emoty when  you start editing  ALL editing operations take place in the    Georgia Institute of Technology COBOL Workbench    too  2o sm lor  DA        II    Appendix 5 EDITOR Page 192    buffer  nothing you do can affect any file unless you make  an explicit request to transfer the contents of the buffer  to a file     So the first problem reduces to finding a way to put text  into the buffer  The  append  command is used to do this     a    This command appends  adds  text Lines to the buffere as  they are typed ine    To put text into the buffers simply type it ins terminating  each Line with a newline     The quick brown fox  jumps over  t
11.   aids for this specific project  It remains to be seen whether or not these aids are  generally applicable to other programs or even other environments  Using these aids   it was possible to completely screen and convert a complete module of the program  EDIT by the use of automatic scanners and text editors operating on the source code   It has been possible to automatically translate the source code for all incompatabili   ties between the two programming systems except for the SEARCH verb  It was decided  not to automate the translation of the SEARCH verb since that feature of the Prime    COBOL compiler is being modified     Interim Report on Portability of Large COBOL Programs 25    Working papers are being prepared in the following subjects   Editing COBOL for Porting  by Allen Akin  Automated Conversion of COBOL Source Code  by Neal Rhodes  COBOL Portability and the Prime File System  by Martin Maldonado  The following personnel have participated in this project   Scientific Staff  Philip H  Enslow  Jr  Principal Investigator  John J  Goda  Jr   Lawrence Gallaher  Student Assistants  Thomas Allen Akin  Perry B  Flinn  Daniel H  Forsythe  Martin F  Maldonado  Neal A  Rhodes  Andrew N  Sheppard  The following is a list of significant meetings  visits  and other events    pertaining to this project     6 Jan Initial visit to Fort Lee by Philip Enslow  Received initial tape containing  EDIT System  20 Jan Visit by Major John Baker to Georgia Tech  Received tape containing
12.   eeGey    tables  chartse lists  figures  etcede    2     1   2 Documentation Format Standards    Another aspect of the documentor s environment is a set of  documentation standards  These are designed to ensure that  all documents of a particular type or belonging to a  particular organization use the same set of formatting con   ventionse The definitions of the standards are maintained  in Libraries and are thus readily available for consultation    during the documentation preparation processe    Since the ultimate goal of documentation preparation is a  finished documents the documentor will have to consider the  format of the finished product during the preparation stage  of the documentation process  This means that the  documentor wilt have to insert formatting commands within  the text in order to produce the desired results when the  text is processed by the Formatting Programe These imbedded  formatting commands are also the key to achieving standard  formats within the documentation   amp y constructino a set of    formatting macros  see section 34 6 2 10   and storing them in    Georgia Institute of Technology COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 69    Librariess one can provide the necessary aids to help the  documentor easily construct documents conforming to a set of    format standardse    This technique was used to provide the section headings in  this report  Five macros were available  h    4 his hee hie  h4  depending on the level of th
13.   elements  Each element is either a template In which amper   sands     amp   are replaced by the  lt command name gt  or a flag  instructing the command interpreter to search one of its  internal tables  The flag   int  indicates that the command  interpreter s repertoire of internal commands is to be chec   kede  An internal command is implemented as a subroutine of  the command interpreters typically for speed or because of a  need to access some private data basee  The flag   var   causes a search of the user s shell variables  see below for  further discussion of variables and functions   The follow   ing search rule will cause the command interpreter to search  for a command among the internal commands  shell variables    and the directory  bins in that order         Inte vare bin  amp      The purpose of the search rule is to allow optimization of  command Location for speed  and to admit the possibility of  restricting some users from accessing  privileged  commandse   For examples the search rule      vars project Library  amp      would restrict a user to accessing his variables and those  commands in the directory  project librarye He could not  alter this restrictions since he does not have access to the   internal     set  commands the   int  flag is missing from  his search rulee     K  Argument  s to be passed to the program being readied for  execution are gathered by the command interpreter and placed  in an area of memory accessed by the Library routine   g
14.   i    T             X       pe        EUR  emot co    E        i          Programming   I T d T     D        Skeletons                  movere aaa l aaan aaa l aa aaa one em          i        Baseline    i i T   T   D        Programs                  a a eae eee a ee tea ec et ee          l        Program RELEASES         T           amp  VERSIONS   i   i     j l  a Mu aaa PNE qe dee ecu ERE Ee  MeL                 Notational       i   D T   j  Shortands       j     i  A I a a a            es ie l  i   i          Personal           D   i  Programs           i     ro aa MESE OT URP RAR aaa aaa        i        Breadboard     p      g   D   j  Programs                ee EI a WERE aa PEEL EX E DM  T  Tested   In Development    Georaia Institute of Technology COBOL Workbenc    2o M           Section 3    Library    General    Project    Release    Personal    Test    Georgia Institute of Technology    Application                 Compiler Unique Macro               FUNCTIONAL COMPONENTS    TABLE 35 5 6172    WORKBENCH LIBRARIES ANO THEIR USES    Uses    Supports work on a Large  number of projects and ap   plication areas     Primarily to support work in  a specific application areas  Cees payrolls inventory    etce    The development files for a  specific projecte    The documentation actually  released to users     Anything that is not ready  for public use     eges has  not been tested or is not  intended for public usee    Test harnesseSe    Compiler unique macros which  are u
15.   no    no    yes    no    no    no    Page 253    SUMMARY QF COMMANDS GROUPED BY FUNCTION    Explanation    Set margin adjust   ment mode     Force a break     Center N input text  Lines     Turn on fiti mode     Turn on automatic  hyphenatione    Turn off marain ad   justment e    Turn off fill mode    Also inhibits ad   justmente     Turn off automatic  hyphenstione    Single blank after  end of sentencee    Extra blank after  end of sentence     COBOL Workbench    Appendix 6 FORMATTER    6 12 2 Spacing and Page Control    Command Initial If no Cause  Syntax Value Parameter Break  ebp  f NT  next yes  els N N   N  no  ene N   N 1 yes  ens on   no  epi  N N 66 N 66 no  epri  N N   ignored no  ers     no  esp N   N   yes    Georaia Institute of Technology    Page 254    Explanation  Regin    new pagte  Set Line spacinGge    Express a need for N  contiguous Linese    Turn on  no space    mode     Set page Lenoth   Set page number     Turn off  no space   modee    Fut out N rlank  Linese    COBOL Workbench    Appendix 6    6 12 35 Margins and Indentation    Command Initial  Syntax Value  ein  N N 0   elm  N N 1   eml  N N 3   eme  N N 2   ems  h N 2   e m    N N 3   epo  N N z0   eti  N NS    FORMATTER    If no    Parameter    M 2    MM    Cause  Break    yes    yes    no    no    no    yes    yes    yes    6 12 4 Headings   Footings and Titles    Command Initial  Syntax Value  efo  L c r  blank  ehe  L c r  blank  elt  N N 60  etl  L c r  blank    Georgia Institute of    If n
16.   print the resulting Lines  Another example  deleting all  Lines that begin with an asterisk could be done this way     Georaia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 207  g Xa3a  d     G  has a companion command  x   for  exclude   that per   forms an operation on all lines in the buffer that do not  match a given pattern  For examples to delete all Lines  that do not begin with an asterisks use    x Xaax ad     G  and  x  are very powerful commands that are essential  for advanced usages but are usually not necessary for begin   nerse Concentrate on other aspects of ed  before you move  on to tackle global commands     9e  le15 Marking Lines    During some types of editings especially when moving clocks  of texts it is often necessary to refer to a Line in the  buffer that is far away from the current Line  For  instances say you want to move a subroutine near the  egin   ning of a file to somewhere near the ends  but you aren t  sure that you can specify patterns to property locate the  subroutines One way to solve this problem is to find the  first Line of the subroutines then use the command     subrout1ine   subroutine think    az  47    and write down  or remember  Line 47  Then find the end of  the subroutine and do the same thing      end   end    71    Now you move to where you want to place the subroutine and  enter the command    47s  Time  which does exactly what you wante    The problem here is that absolute Line numbers are easily  f
17.   s in 74 COROL     c  If the FROM phrase is not givens the data is  transferred from the user s terminale    d  As in 74 COBOL    e  As in 74 COBOL    f  If the size of identifier 1 is less than the size  of the data being transferred  the Left most  characters of the data being transfered are stored  in identifier 1 5 Left justifieds and the remaining  space is filled with blanks    h  As in 74 COBOL    4  TIME is imolicitly described as an elementary data    item with PICTURE of 939   6 V   it contains hourse  minutes  and seconds in that order     ADD    D   identifier 1   Literal 1 5  L     identifier 2      Literal 2   J eee TO identifier m C ROUNDED JC s    identifier n L ROUNDED l1 l eee Cs ON SIZE ERROR  imperative statement 1     D   identifier 1   Literat 1        identifier 2      Literat 2 3 C      identifier 3   Literal  3   J eee  GIVING identifier m   ROUNDED JC    identifier n f    ROUNDED J J eee   3 ON SIZE ERROR imperative statement      CORRESPONDING   CORR   identifier 1 IO icentifier 2 t  ROUNDED 1     ON SIZE ERROR imperative statement J   74 COBOL   a  In formats 1 and 2  e each identifier must refer to    an elementary numeric items except that in format  2 each identifier following the word GIVING must  refer to either an elementary numeric item or an  elementary numeric edited items in format    each  identifier must refer to a group item     Georgia Institute of Technology COBOL Workbench    Appendix 9 COBOLewbe Page 271    b  Fach Literal must be
18.  1li5    5 2 SYSTEM ENVIRONMENT AND TOOLS AVAILABLE    The research team was fortunate in having available for this  project an extremely powerful hardware and software er   vironment on which to implement the Demonstration Workbench   The computing systeme  a Prime 4005 is one of the  Large  or   mega  minicomputers which rivals mainframe systems as larce  as the IBM System 370 158 and 168 for computational power   A further advantage of this specific computer system was the  extremely Large virtual address space available   Howevers  there were Limitations on the size of object frograms that  could be generated by the versions of the CO3OL compiler  that were available during the early phases of the projecte   The hardwares howevere provides only a portion of the er   vironment in which the Demonstration workbench was    established     The research systems environment available was also areatly  enhanced by having available on the Prime 400 system the  Seoragia Tech Software Tools Subsystem  Kernighan 19763   The  Georgia Tech Software Tools Subsystems which is described  briefly below and in more detail in the appendixs provides  not only an extremely hospitable environment for the users  but also an extremely powerful environment for the construc   tion of command files that support the use of the subsystem  components in the implementation of the Demonstration Work   bench  The availability of the Georgia Tech Software Tools    Subsystem was invaluable in expediting the
19.  4 1 Original Requirements    Among the documents maintained by Document Control are those  specifying the requirements for the software systems  The  original requirements for a system are found in version one    of release one of the document containing the requirements     Z542 Current Requirements    As the requirements for a system changes the document  containing these requirements will evolve new versions and  possibly new releases  To obtain the latest requirements   one need only specify the name of the document containing  the requirements and the Document Control System will obtain  the correct release and versione It should be noted that  the treatment of these documents is the sare as the user    documents mentioned above     Georgia Institute of Technology COBOL Workbench    me aa                       NEL U Red sr ria    Section 3 FUNCTIONAL COMPONENTS Page R7  3 5 4 5 Change Requests    Change requests received from either users or the proponent  organization for whom the system was designed are reviewed  by the proiect management staff and then entered into the  documentation data base so that they will be available for  consideration when the next major release of the program jis    prepared     3 5 4 4 Approved Modifications    Rased upon change requests from users or based upon changes  in the functions that must be provided by the data proces   sing systems the proponent or the proponent organization or   owner  of the system in consultation with the deve
20.  4 COMMAND INTERPRETER Page 172      1  is interpreted as an expression rather than as a  character strings  Also note that  fi  terminates the   if   commande    In the futures  typed variables and better control structures  will ne added to the command interpreter     4 1 12 Conclusion    This concludes the tutorial sections for the command  interpreter  Despite the fact that a good deal of material  has been presented  much detail has been omitted  The next  next few sections include a complete summary of the  capabilities of the command interpreter and some examples  which may prove helofule    4e2e SUMMARY QF SYNTAX AND SEMANTICS    This section is the definitive document for the syntax and  correspondino semantics of the Software Tools Subsystem Com     mand Interpretere It is composed of several sub sectionss  each covering some major area of command syntaxs with  discussions of the semantic consequences of employing    particular constructs  It is not intended as a tutorials  nor is it intended to supply multitudinous examples  other  sections in this document are provided to fill those needs     4 2 1 Commands    Ccommand     z     net        4  lt net gt    J  lt Cnewlined    The command is the basic unit of communication between the  command interpreter and the user  It consists of any number  of networks  described below  separated by semicolons and  terminated by a newlinee The networks are executed onc at a  times left to right  should an error occur at any poin
21.  Beehive International B200    ca chromatics Color Graphics Terminal    consul ADDS Consul 980    fox Perkin Elmer 1100    haz Hazeltine 1500 series    isc Intelligent Systems Corporation 8001 Color  Terminal    regent ADDS Regent 100    sbee Reehive International Superbee    sol Processor Technology Sol computer with software to    emulate a Beehive B200     tvt Southwest Technical Products TV Typewriter II     Georgia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 216    5 2 2 Editing Options     Se  allows the user to set various options which control  the editing envrionmente To set an options the user must  specify the  option   o  commands This consists of the tet   ter  o  followed by one of the following str  nas of charac   ters     a causes absolute Line numbers to be displayed in  the Left hand margin of the screen  Default  pehavior is to display upper case letters with the  Letter  A  corresponding to the first Line in the  windows    C inverts the case of all Letters typed by the user   ieas converts upper case to lower case and vice  versa   This option will cause commands to be  recognized only in upper case and alphabetic Line  numbers to be displayed and recognized only in  lower casee    d i lt dir gt   setects the placement of the current Line pointer  following a  d   delete  commande  lt dir gt  must be  either   gt   or       If   gt   45 specified  the  default behavior is selected  the Line followino  the deleted Lines becomes the n
22.  COBOL Workbench         w      x    Appendix 1 GLOSSARY Page 143    the Workbench are to facilitate the development of   brototype or breadboard  COBOL programs from a collec   tion of reusable COBOL modules and to facilitate the  preparation of COBOL programs that may be easily con   verted to a number of different target machines each  having its own unique dialect of the COBOL Language     Georgia Institute of Technology COBOL Workbench     Suo steno est GN Iaekg en hu c     Appendix 2 EXAMPLE Page 144    APPENOIX 2    AN ANNOTATED EXAMPLE OF  TRANSPORTING A WORKBENCH COBOL PROGRAM    In this example  the  baseline  program is written in  COBOLecemos the demonstration version of COBOLewbCe The two  target operating environments are the Control Data Corpora   tion CYBER 70 74 and the PRIME Computer P400 systeme This  example focuses on the differences in the form and content  of the source programs howevers the principal technique il   Lustrated  the use of macro Librariese can also be applied  to some of the other iIncompatibilities in the operating en   vironmente    IMPORTANT NOTES In the examples given belows lower  case Letters are used to indicate calls to  reusaole modules and compiler unique  features  Lower case is used here solely as  an aid to the reader s comprehension and con   veys no added information to the macro  processor  ALL characters are treated by the  macro processor as if they were upper case     2 1  MACRO LIDRARIES    The macro Libraries contain 
23.  DLOGSII   PO9AGL  and Replenishment Process   20 March All differences between IBM OS COBOL and P400 COBOL identified  Incompatible  constructs within EDIT commented out and P400 constructs inserted  PERFORM   VARYING INDEX currently not operable by P400  fix promised 25 Jan  fix  mailed 2 April    SEARCH and SEARCHALL not currently supported in P400 COBOL  manually replaced  by standard code   Conversion of REPLENISH in progress  Significant differences found between  tape copy and printed copy of REPLENISH  Work Suspended until this difference  can be rectified   31 March Visit by John Severin to Georgia Tech  It was determined that we did not have  an up to date copy of REPLENISH  Severin agreed to send us a current version   19 April Received tape containing REPLENISH  agreed to send 31 March  mailed 15 April    25 April Visit by Giora Pelled to Georgia Tech  He indicated there was eight  weeks of slippage at Fort Lee   3 May Telephone conversation between Enslow and Pelled  indications are there will    be no slippage in the demonstration     Interim Report on the Portability of Large COBOL Programs 35    4 May      May    11 May    Telephone conversation between Enslow and Baker  impossible to deliver  material to Georgia Tech in time for demonstartion originally scheduled   for June    Programs required to convert files to P400 ISAM format written and tested   Additional incompatibilities between IBM OS COBOL and P400 COBOL uncovered   EDIT code modified accordingly  
24.  Multiple RELEASES VERSIONS i   IIe Documentation Subsystem    Ae Document preparation    le Originals     2e Updating 1   Be Document Control f  le Support Muttiple RELEASES VERSIONS     2e Audit Trail of Changes     3e Linkage of Comments     Ce Document Production    ie Programs     2   Supporting Documentation                  a       m     e        VA A         c         a                                    c                                                           X X                         U                ee                      Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 15    2 2 PROGRAM PREPARATION    Program preparation is the first major capability provided  by the Programming Subsysteme It consists primarily of the  capabilities to produce the Baseline Program RELEASE ans the  Compiler Unique VERSIONS of that RELEASE  The Programmina  Subsystem also provides the capability for quickly and  easily implementing a  breadboard design  of a programming  system utilizing reusable modules and other facilities of    the Workbenche    2 2 1 Overview of Program Preparation       One of the goals of the Workbench is to provide a program   ming environment which will assist the programmer throughout  the entire developments   implementations operations and  maintenance processes  This implies the development of a    number of software tools  Another goal is the concurrent    development of proarams for different target machines  The  app
25.  Organization of this Report    Following this introductory sections which establishes the  environment applying to the need and value of transportable  baseline programse Section 2 presents an overview of the  facilities and capabilities that would be provided by a com   plete COBOL Prosgrammer s Workbench  Section 3 describes the  functional components that constitute the Workbench  Sec   tion 4 discusses how the Workbench would be utilized to ac   complish the various tasks required durina the designs im   plementations and maintenance of large programs and systems   Section 5 presents some details on the implementation of the  demonstration version of the COBOL  Programmer s Workbench  that was implemented at the Georgia Institute of Technologye  Following a summary section  the appendices provide more  detail on topics such as Workbench COBOL  the transportable  subset of the Language   techniques for document controle a  description of the major components of the Georgia Tech  Software Tools Subsystem which was utilized extensively in  the implementation of the Workbench   a glosSarys ands per   haps of most interests an annotated example of the operation    of the Demonstration Workbench     Georgia Institute of Technology COBOL Workbench    Section i INTRODUCTION Page 4    1 2 MOTIVATIONS FOR THE COBOL WORKBENCH    There are a number of objectives modivating the design and  implementation of a facility such as the COBOL Programmer s  Workbench  A few of these are outl
26.  Source Code Control System  SCCS 3 As defined in Bell Labe      Proarammer s Workbench CRochkind 751   this system  maintains and provides access to all revisions of anv  document     Standards Enforcer  A routine that operates us a   Dreprocessor  to verify that the standards for  COBOLewbe or COBOLek are followed in both program text  and documentation     Georgia Institute of Technology COBOL Workbench    H tmt S T Heino i REN ye MURS deu ooo loc ETE pee Lor Mou    Appendix 1 GLOSSARY Page 142    Test Harness  A main program which provides a framework  into which a modular unit can be placed for the purpose  of testinge A driver programe expressed as a macro and  stored in TESTLIB     See functional testing     Text Documents  ALL program documentation apart from com   ments internal to the code  Usually includes  proaram  soecificationse project memos  error reports   and a  user s quidee Maintained on Line     Text Documentation Preparation System  This system is  provided to assist the systems analyst in the prepara   tion of att of the system documentation required for  the support of the prototype systems  the base Line  systene and those unique varieties of the system that  are produced to run on the various target machines     TESTLIB  A tibrary file containing macro definitions of  utility functions and modules to aid the programmer in  testing both modules and programs for both correctness  and performance  Should contain only tested code    Transportable  4 prog
27.  The square brackets are used  to match  classes  of characters  For examples     LA Z 3     will find the next Line containing a capital let   tere     XLabcxyz 1     Will find the next Line beginning with an ae b   ce  Xe Ys Or Zs and     L  0 91   will find the next Line which contains a non     digit  Character classes are also frequently used  with the  closure  operator  x        Closure  The asterisk is used to mean  any number  of repetitions  including zero  of the previous  pattern element  Cone character or a character  class in brackets      Thuss     a  b   will find lines containing an  a  followed by any  number of characters and a  ob   For examples  the  followina Lines will be matched    ab   abnormal   Recording Medias by Ore Joseph Pe Cunchy  As another examples     Xz 5      will match only those Lines containing all egual     Georgta Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 202    signs  or nothing at allde If you wish to ensure  that only non empty Lines are matched  use     Xz 2        Always remember that      closure  will match zero  or more repetitions of an element     a Fscapee The  at  sign has special meaning to both  ted  and the Subsystem I O routinese It ts the   escape  characters which is used to prevent  interpretation of a special character which fol   LowSe  Note that to enter a single  3  from a  terminal you must type twos the Subsystem I O  routines remove one in the process of interpreting  escaped character
28.  Unique   4   A        Text     Command      Flow     Flow  Y   Y  a               Yek dee ke fe de de de fe de kx    n n  Qm mmm Q ee de e e eoe de oe ode oh de dee    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 17    24 2 2 Programmer s Environment    The proarammer s environment may be described as the  inter   face between the human and the machine  It consists of  those tools which are provided to assist directly in the  task of preparing code  Depending on the particular systems  the programmer may be faced with a  hostile  or a   friendly hospitable  environment  A hostile environment  may complicate the programming task in many ways  primitive  file system  restrictive naming convent  ionss obscure error  messagess etce A system may also make programming difficult  by providing the programmer with only a few tools of Limited    capabilities     The Workbench contains a number of very powerful  yet easy  to use software tools to simplify the programmer s task and  to permit a more efficient interface between the human and  the machines These tools include a special editor for  entering COBOL texte a standards enforcer to verify the  clerical correctness of code before further processinasg  skeleton programs to aid in code preparations test routines  to aid in the test process  anda well structured file  system to allow all of these to work together efficiently    and productivelye    Georgia Institute of Technology COBOL Workbench    
29.  a numeric Literal    c  The composite of operands must not exceed 18  digits    d  In format le values of operands precedina the word    TO are added togethers then the sum is added to  the current value of identifier m storing the  result immediately into identifier me and repeat   ing this process respectively for each operand  following the word TO     e  In format 2  the values of the operands preceding  the word GIVING are added togethers then the sum  is stored as the new value of each  identifier ms  identifier ns eess the resultant identifiers     f  In format 3  the data items in identifier 1 are  added to and stored in corresponding data items in  identifier 2  A pair of data itemss one from  idcdentifier 1 and one from identifier 2 carrespond  if  1  they are not designated by the word FILLER    and have the same data name and the same  quantifiers up toe but not includings identifier 1  and   dentifier 24  2  both data items are    elementary numeric data items     a  The compiler insures that enough places are  carried so as not to Lose any significant diaits  durina execution     h   Size error condition    1  A size error exists whene after execu   tion of the adaition and subsequent  decimal point alignment  the integer  portion of the absolute value of the  result is too Large to fit into the  receiving item  This does not apply to  intermediate results  If rounding is  specifieds it occurs prior to the check  for the size error    11  If a size error occurs
30.  according to the  commands specified within the text utilizing default set     tinos for those options not specified by the user     2 7242 Documentation Format Standards    The Workbench will also provide the capability to define  documentation standards and aid documentors in following  these standards  Standards may vary from project to project  or from one type of document to another within a single  projecte The Workbench will provide a uniform technique to  Locate definitions of the various standards and the means to    automatically produce documentation meeting those standards     Georgia Institute of Technology COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 57    SECTION 3    FUNCTIONAL COMPONENTS OF THE COBOL PROGRAMMER S WORKBENCH    35 1 OVERVIEW QF WORKBENCH COMPONENTS AND ORGANIZATION    The user sees the Workbench as a collection of capabilities  and functions that provide him with support in accomplishing  his programming and documentation tasks  Functionally    these capabilities can be divided into several major sub   systems or components as shown in Figure 3el le Since the  major activity of the Workbench is the preparation and  processing of documents  whether they are program modules or  supporting documentations the subsystem providing control of  those documents is certainly a central component of the  Workbench  The Document Control Subsystem as shown in  Fiaure 35 1 1 might be compared to the file system of a  regular computer  howevers as 
31.  and terminate  The characters at and  to the right of the current cursor position are  deleteds and the Line is terminated     DEL Kill alle The entire Line is erased  along with  any error message that appears in the status Line     ESC fscapee The ESC key provides a means for enterina   se s control characters Literally as text into  the file  In fact  any character that can be  generated from the keyboard is taken Literally  when it immediately follows the ESC key  If the  character is unprintable  as are alt of sets  control characters d   it will appear on the screen  according the current nonporintable replacement  character  normally a blank      The set of control characters defined above can be used for  correcting mistakes while typing regular editina commandse  for correcting commands that have caused an error message to  be displayeds for correcting Lines typed in append modes or  for inline editina using the  vy  command described below     Georaia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 221    Se20e4  Se  Command interpretation    There are a few differences in command interpretation  between the regular editor and the  se   The only effect of  the  p  command in fse  is to position the window so that as  many as possible of the  printed  Lines are displayed while  including the Last Line in the range  In facts the window  is always positioned so that the current Line is displayed   Typing a  b  command with no Line numbers positions t
32.  and the SIZE  ERROR phrase ts specified  the values of  the receiving items affected by size  errors are not altered  After execution  of the Statements the imperative  statement of the SIZE ERROR clause is  executed  Cit is executed only once per  statement execution     1110 If a size error occurs and the SIZE  ERROR phrase is not specified  the  values of the items affected by size  errors are unpredictable     Georgia Institute of Technology COBOL Workbench    Appendix 9 COBOLewbe Page 272    1  If truncation has occurred and the ROUNDED option  is specified  then if the most significant digit  of the truncated part is five or mores a one is  added to the absolute value of the result     2  PEP  11   a  As in 74 COBOL    D    s in 74 COBOL    c  If the size of the intermediate result field is  areater than 18   the excess high order digits are  truncatede   d  4s in 74 COBOL    e  As in 74 COBOL    f  As in 74 COBOL   but a pair of ats items    correspond if they are elementary numeric data  items  end they have the same nam  e    o  A maximum of i8 digits are carried    thus anything  over this is lost     h  Size error condition   i  As in 74 COBOL   ii  As in 74 COBOL  i  113  if a size error occurs and the SIZE ERROR  phrase is not specified  the high order  digits are truncated     i  As in 74 COBOL   3  PRIME  ADD  identifier 1   Ltiteral 1 2 Cs     fdentifier 2    Literal 2 3  J  eee TO identifier m C ROUNDED J  E 3  ON  SIZE ERROR imperative statement    ADD    d
33.  assigned to them is  released to the system  Note that variables created by    operations within a command file are automatically released  when that command file ceases to execute  Also note that  the only way to destroy variables at the global Lexical  Level is to use the  forget  commande    The value of a variable may be changed with the  set  com   mande The first araument to  set  is the name of the  variable to be changed  If absent  the value that would  have been assigned is printed on  set s first standard out   pute The Last argument to  set  is the value to be assigned  to the variables  It is uninterpretede that ise treated as  an arbitrary string of texte If missing   set  reads one  Line from its first standard input  and assigns the result   ina stringe If the variable named in the first argument has  not heen declared at any lexical levels  set  declares it at  the current lexical level     Variables are accessed by names as with any commande  Note  that the user s search rule must contain the flag   var   before variables will be evaluated   The command    interpreter prints the value of the variable on the first  standard output  This behavior makes variables useful in  function calls  discussed below   In additions the user may  optain the value of a variable for checking simply by typing  its name as a commande    42 6 IXeration    Citeration gt             element gt    Celement            Iteration is used to generate multiple command Lines each  diffe
34.  but may be desired due to the possible increase in     program efficiency   Those sections of code which rely on  such features must be identified and recoded using only  features available from the target compiler  If the source  program was developed for a compiler which accepts 3 very    rich dialect of COBOL and the target compiler accepts only a    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 28    minimum  this process may be very Long and ER As  this cannot be automateds the possibility of introducing  errors to the translation which were not present in the  original is very high   In some casess transportation may be    found to be impossible     The above procedure only describes the transportation of a  COROL program from one particular compiler to another  particular compilere The entire process is repeated every  time the source program is to be moved to a new environments  Also   since no compiler is accepted as the  source  com   piler  programs may have to be transported between any pair    of COBOL compilers     In an easily transported COBOL programe only a subset of  COBOL is used   consisting of those features which are  available in some form from all COBOL compilerse Where this  is not possible  as in the case of certain machine dependent  features such as occur in input and output operations  these  compiler unique features are isolated in easily identified  sections of code which may be changed without requiring the  r
35.  command     J echo Alas   poor Yorick  Alas   poor  not found        This strange behavior is caused by the fact that the comma  is used for dark mysterious purposes elsewhere in the com   mand languages  The comma actually reoresents a null I O  connection between nodes of a network  See the section on  pipes and networks for more information   In facts all of  the following characters are potential troublemakers     Georgia Institute of Technology COBOL workbench    Appendix 4 COMMAND INTERPRETER Page 164      53583825     23 FC J       blank    The way to handle this problem is to use guotese You may  use either single or double quotes  but be sure to match  each with another of the same kind  Try this command now       echo  Alas  poor Yoricki I knew him well    lass poor Yorick  I knew him well     J    You can use quotes to enclose other quotes     J echo  Guoth the raven   Nevermore    gt     uoth the ravens   Nevermore         A final word on quotations  Note that anything enclosed in  quotes necomes a single argumente For examples the command      echo  Can I use that in my book    has only one arguments out    echo Can I use that in my book     has sevene    4 1 5 Command Files    Suppose you have a task which must be done often enough that  it is inconvenient to remember the necessary commands and  type them in every time  For an examples Let s say that you  have to print the year end financial reports for the Last  five years  If the  print  command is used to pr
36.  d a NN yy p L3  m  cc ud ctc e hee  f          at s T E zm  aS Ls           am e dede ceo von depo des   lx pA 47     0027 m       PORTABILITY OF LARGE COBOL PROGRAMS        THE COBOL PROGRAMMER S WORKBENCH    FINAL TECHNICAL REPORT    GIT ICS 79 09    25 November 1976   50 June 1979    Philip He Enslowe Jre    Septembers 1979    Use Se ARMY RESEARCH OFFICE    Grant Number DAAG29 77 G 0045  ARO Project Number P 14752 A EL  GIT Project Number G356 618    School of Information and Computer Science  Georgia Institute of Technology  Atlanta  Georgia 30332    APPROVED FOR PUBLIC RELEASE   DISTRIBUTION UNLIMITED     THE VIEWs OPINIONS  AND OR FINDINGS CONTAINED IN THIS REPORT  ARE THOSE OF THE AUTHORS AND SHOULD NOT BE CONSTRUED AS AN  OFFICIAL DEPARTMENT OF THE ARMY POSITION  POLICY  OR  DECISIONe UNLESS SO DESIGNATED BY OTHER DOCUMENTATION     Georeta Institute of Technology COBOL Workbench    Unclassified  SECURITY CLASSIFICATION OF THIS PAGE  When Data Entered   READ INSTRUCTIONS    REPORT DOCUMENTATION PAGE BEFORE COMPLETING FORM    2  30OVT ACCESSION NO  3  RECIPIENT S CATALOG NUMBER    5  TYPE OF REPORT  amp  PERIOD COVERED                1  REPORT NUMBER       4  TITLE  and Subtitle     Portability of Large COBOL Programs     The COBOL       Final Technical Report         Programmer s Workbench   PERFORMING ORG  REPORT NUMBER    GIT ICS 79 09    8  CON TRACT OR GRANT NUMBER  s          7  AU THOR a         DAAG29 77 G 0045          Philip H  Enslow  Jr        10  PROGRAM E
37.  develooment of    Georgia Institute of Technology COBOL Workbench    Section 5 IMPLEMENTATION Page 116    the Demonstration Workbenche    Se2el Prime 400 Computer System    The Prime 400 computer system is a fairly recently  introduced system  1976  that falls into the category of the  Large or mega minicomputer size    The Prime 400 shows strong  influences of the Multics System in both its hardware and  softwaree It is an extremely powerful minicomputer provid   ing an excellent environment for software development    projects such as this     De2elel Hardware    Tho Prime 400 is of the large mini or meaga mini class of  computerse It possesses a powerful  srocessors large main  memorys Large virtual memory  and can handle up to 65 users   Shared code facilities and a multi rina protection mechanism  are also provided  The Prime 400 uses microprogrammed Logic    and possesses a writable control store     Ci    ecelelel  emory   The Prine 400 provides both a Large real and virtual memory   The maximum size of ohysical memory is  amp  million bytes  Tf  is incrementally expandable by 256K byte boards  In addi   tion to main memory  a hich speeds bipolar cache memory cf    OK pytes is providede    Georgia Institute of Technology COBOL Workbench    Section 5 IMPLEMENTATION Paae 117    Virtual memory is provided in terms of paging and  seao   mentatione The maximum size of virtual memory is 512 mil   Lion bytess but each user program is Limited to 32 million  byteSe The page si
38.  diri   sort Lf  c dir2   sort          common  3    The two  Lf  and  sort  pairs produce Lists of file names  that are compared by  common  se which produces a List of  those names common to both input Lists     Command files tend to be used not only for often performed  tasks but also to make Life easier when typing Longs complex  commandse Quite often these Long command Lines make use of  Line continuation    a newline preceeded immediately by an  underscore is ignored  The following command file is used  to create a keyword in context index from the heading Lines  of the Subsystem Reference Manual  Although it is not used  frequently  it does a great deal of work and is illustrative  of many of the features of the command interpreter     H make cmde ek     build permuted index of commands  files  doc    f commands files _    change X    find X hd    sh     change   ehd   L   Je  C  j1   L7   1 2    891  kwic  d  extra spelling discard _    sort  d   unrot  w  width    cmd k    First a few words on how Subsystem documentation is stored   The documentation for Subsystem commands resides in a sub     directory named  commands_files   The documentation for  each command is in a separate file with the name  doc_ lt command gt e The heading Line in each file can be    identified by the characters   hd  at the beginning of the  Lines     The entire command file consists of a single network  The   files  command produces a List of the full path names  the   f option is passed on
39.  environment consists of tools   Librariess and documentation format standardse The basic  tool for documentation is the Text Editor  The Libraries  contain text which can be used during the creation of new  documents and macros which can be usec during the formatting  Stage to make the documentation task simpler  see section  3e6e2  1   The final aspect of the documentor s environment  is a set of documentation format standards and aids to help    produce documentation fitting the standard     Figure 3 44 1 1 depicts the Documentation Preparation System     The documentor interacts with the Text Editor to create and    Georgia Institute of Technology COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 66    modify documents which are maintained in various libraries   To maintain order among the documents  a Document Control  System  see section 5 5  stands as an interface between the    Text Editor and the Librarian     5 45   1  1 Tools and Libraries    To encourage the practice of good documentations the  documentor needs a good set of tools  Chief among these  tools is a Text Editor  see section 3e4e2  which allows the  user to create and modify text in an on line fashion  In  addition to the Text Editors other simpler tools are also  usefule Fxamples of these are a file copiers a cut and  paste toole a pattern searching tools a toot for comparing  the similarity of two files and identifying their dif   ferences  etc  These tools are designed to provide the  documento
40.  filel file2 file3  gt  copy   alti  fites    This complex example copies the contents of files  filei1      filed2e  and  files  into the file named   all_filese     Georqia Institute of Technology COBOL Workbench    Appendix 4 COMMAND INTERPRETER Page 170    4e1 10 Function Calls    Programs in the Subsystem receive information through their  command line araquments as well as their standard ports    so  it is sometimes useful to deliver the output of a program to  the command interpreter for further processings rather than  to a pipe  The    function call  mechanism is available for  this purposee For examples recall the situation illustrated  in the section on pipes and networkss suppose it is neces   sary to actually print the manuals whose names were found   This is how the task could be done     1 print  lf  c   find 01     The function call is composed of the network  Lf  c   find    01  and the square brackets enclosing ite The output of  the network within the brackets is passed to print  as a  set of arguments  which it accesses in the usual manner   Specificallys all the Lines of output from the network are  combined into one set of arguments  with spaces provided  where multiple Lines have been collapsed into one Line     Print  accepts multiple argumentss however  suppose  t was  necessary to use a program Like  fos   that accepts only one  araument  Iteration can be combined with a function call to  do the job     3 fos    Lf  c   find  011     This command for
41.  files as    for examples with a  form lettere If you omit the  lt file gt  parameter   fmt  still  closes all of its current input files  Sut instead of usina  a file name you supply with the nx commands it uses the next  file named on the command Line that invoked fmt  If there  is no next files then formattine terminates normallye    Neither the so command nor the nx command causes a break     6 8 2 Functions and Variables    Whenever  fmt  reads a Line of input  no matter what the  source may bes  there is a certain amount of  pre processin      done before any other formatting operations take place   This pre processing consists of the interoretation of  func   tions  and  var  iables    A  function   is a predefined set of  actions that produces a textual results possinly based on  some user supplied textual input  For examples one  hypothetical function might be named  t  ime s  anc its result  might he a textual representation of the current time of  days    Ss Bris i Gi Ge     A  variable    on the other hands is simply one of   fmt s  internal parameters  such as the current page Length or the  Current Line spacina value  The result of a variable is  just a textual representation of the value of that  parametere    From the standpoint of a users functions and variables are  very similare In facts they are invoked iaentically  y  enclosing the appropriate name in square brackets     Ctimej   is    Georgia Institute of Technology COBOL Workbench    Appendix 6 FORMATTE
42.  found ts deleted     s jumped  p  over    S X x   jumps  p  jumps over    Recalling that a missing pattern means  use the Last pattern  specified   try to explain what the following commands do     s   fp  jumps over  s    p    jumps over     Note thats Like many other commandse the substitute command  assumes you want to work on the current Line 1f you do not  specify any Line numbers      What if you want to change  over  into  over and over   whe  micht use    s over over and over p  jumps over and over    to accomplish thise There is a shorthand notation for this  kind of substitution thet was alluded to briefty in the Last  section   Recalt the discussion of  tagged  paternse d Ey  defaults the part of a Line that was matched by the whole  pattern is remembered  This string can then oe tneluded in  the replacement string by typing an ampersand    amp    in the  desired position  Sos instead of the command in the Least  examples    s over  amp  and  amp      could have been used to get the same result  If portion of  the pattern had been tagged    the text matched by the tagged  part in the replacement could be reused by typing  aai      s jump      vaultaal p  vaults over and over    It is possible to tag up to nine parts of a pattern using  braceSe The text matched by each tagged part may then be  used in a replacement string by typing   aan  where n corresponds to the nth     in the pattern  What    does the following command do     Georgia Institute of Technology COB
43.  from an IBM 360 40 environment to the environ   ment of the PRIME P400 minicomputer  The sample program being transported is the DS4  Logistic System under development by the U  S  Army Comuter Systems Command at Fort  Lee  Virginia  The experience and knowledge gained through this practical exercise is    providing a realistic base for the research project     One goal of the project is the development of automatic program conversion aids  for COBOL programs and programming standards that facilitate transporting COBOL pro   grams to minicomputer environments  Even though it has not been possible to obtain  the entire sample program for conversion to the minicomputer environment  a large    amount of progress has been made on two of these goals     Another specific goal of the project is the investigation of the performance  of the execution of large COBOL programs on a main frame system as contrasted to the  minicomputer  This investigation will focus primarily on the effects of differences  in the organization of the operating system and the hardware components of the two    host systems     Progress on the transporting of the main program has been regulated by the avail   ability of completed program modules from the Fort Lee group  This has been the pacing  factor  and long delays encountered in receiving material from Fort Lee have greatly    effected the original schedule of the project     Substantial progress has been made in the development of automatic transporting
44.  idea of  program  mutants  to ensure that the test  cases generated by step 4  represent an    adequate test of the proaram Logic     5  Jerive statistics on performance of the    module being tested     Georgia Institute of Technology COSOL workbench    Section 4 UTILIZATION Page 112    TESTLIR includes COBOLewhe modules designed  for the collection of performance datae The  appropriate modules are selected and callea   macro calis  hy the test harness  Pere  formance data which might oe collected  includes     CPU time used     main memory used     pagina      number of iterations    7  Pepeat steps 3   6 above for each ZOFOL 3i as    i coes from 1 to n     Georgia Institute of Technology COBOL Workbench      otc ne nye eso    s  um soe mm aba nn      a w  e ce uS    Section 5 IMPLEMENTATION Page li    SECTION 5    IMPLEMENTATION OF THE DEMONSTRATION WORKBENCH    An important goal of this research project was empirical  studies of the concept of the COBOL Programmer s Workbench  and the implementation issues involvede There have been a  Large number of proposals to achieve program portability   howevers very Little of this work has been reduced to prac   tice  Tt was felt essential that a urscttost cemonstration  of at teast the generat concepts be included in this  research project  Although ft was not possible to construct  a complete version of the Workbench  it is felt that the  Demonstration workbench that was produced clearly  demonstrates the feasibility of the conc
45.  interpreter supports named string storage areas  for miscellaneous user applications  These are called  variables  Variables are identified by a names consisting    of Letters of either cases  digits  and underscoress not  beginning with a digit  Variables have two attributes     value and scope  The value of a variable may he altered  with the  set  commands discussed below  The scope of a  variable is fixed at the time of its creations simplys  variables declared durina the time when the command    Georgia Institute of Technoloay COBOL Workbench    Appendix 4 COMMAND INTERPRETER Page 182    interpreter is taking input from a command file are active  as lona as that file is being used as the command source   Variables with global scope  those created when the command  interpreter is reading commands from the terminal  are saved  as part of the user s profile  and so are available from  terminal session to terminal sessione Other variables  disappear when the execution of the command file in which  they were declared terminatese    Variables may be created with the     declare  commande   Declare   creates variables with the given names at the  current lexical Level  within the scope of the current com   mand file   The newly created variables are assigned a null  value  unless an initialization string is provided     Variables may be destroyed prematurely with the    forget     commande The named variables are removed from the command  interpreter s symbol table and storage
46.  is D  Ssubstr   tabcs4 1  is empty  If n is omitteds the  rest of tho string is used  subdstr     abce2  is bc     undefine name    ilndefine  is used to remove the definition associated  with    name  Note that the name should be surrounded  hy brackets  if it is supplied as a Literals  otherwise  it will be evaluated before it can be undefined  Exar   ples    undef inet substr1   undofine   x3J     dia Institute of Technology COBOL Workbench    Appendix 8 THE PRIMOS FILE SYSTEM Page 261    APPENDIX 8    THE PRIMOS FILE SYSTEM    The PRIMOS operating system for the Prime 496 computer  sup   ports as one of its services a flexibles hierarchical file  system that provices users with the facility to maintain  targe quantities of data in an orderly   Logical manners  These next few sections are indended to provide a brief  overview of the file system s capabilities and features  It  is somewhat tutorial in nature and does not attempt to cover  all of the available features  nor to present the details of  implementation     Bele ORDINARY FILES    A file is a named collection of informations preserved upon  some storage mediums such as magnetic disk  Some files may  contain text as in an article or a hooks others may contain  binary data produced by or to be used as input to some  programy and still others may contain the actual executable  instructions of the program iitselfe In other wordss no  particular structure is forced upon a file by the systen   while some programs may o
47.  it has been included in the project  Librarye    General  The two File Description modules in the Project Library il     Lustrate how two rather drastic differences between CYBER  ana PRIME COBOL are treatede These differences are      LABEL RECORDS statement must say      STANDARD in PRIME     OMITTED in CYBER    FILE IO must be  Se VALUE OP GPAIBETLD Lb  c2 dr PRIME      omitted in CYBER    Examining the macro Library definitions for  cyber  anda   D400  in each Library shows how the P400 Library causes  entries annotated  cyber  to be deleted and entries an   notated  p400  to be copied into the transported procram   The  cyber  Library causes just the reverse actions  The two  definitions for    file id  handle the second problem coy  generating the proper statement for the PRIMO and ignordna  it completely for the CYBER     Georgia Institute of Technology COBOL Worktench    c fey cc         e         Appendix 2 EXAMPLE Page 146    File Description Module for  SALES EILE     FD SALES FILE  p400C   LABEL RECORDS ARE STANDARD   cyber LABEL RECORDS ARE OMITTED     file id SALES   DATA RECORD IS SALES RECORD   21 SALES RECORD      05 SALESMAN PICTURE X 5    05 CISTRICT PICTURE XXX   95  SALES DOLLARS PICTURE   5 V99     File Description Module for  REPORT File       FI REPURT  PILE    p4CO  LABEL RECORDS ARE STANDARD   cyber LABEL RECORDS ARE OMITTED     file id REPORT   DATA RECORD IS REPORT RECORD   01 REPORT RECORD     95 CARRIAGF CONTROL PICTURE X    05  SALESMAN OUT PIC
48.  one  for the heading itself  one for the blank Line after the  headings and two for the first two Lines of the next  paragraphs The temporary indentation value is then set to  coincide with the current indentation value  Vexts the  first parameter passed to the macro  the text of the sub   headina   is boldfaced and a new paragraph is beauns The   bp  macro will insert the slank Line after the headin     Seoraia Institute of Technology COBOL Workbench    Appendix 6 FORMATTER Page 247    6 10 5 Major Headings    An example of a macro to produce major headinas is the fol   Lowino     eff mh     major heading  ede mh  esp 3  ene 5  ece  eul  ebf  ee   2 SD  epp  een mh    This is similar to the sub heading macro  three blank Lines  are put outi a check for enough room is made   the parameter  is centered  underlined and boldfaceds another t lank Line is  put outs and a new paragraph ds beoun     6 10 4 Quotations    Lengthy quotations are often set apart from other text oy  altering the teft and right marains to narrow the width of  the quoted texte Here is a pair of macros that may be used  to delimit the beginning and end of a direct quotation     e bq     begin direct quote  ede ba   e Sp   ene     ein  5   enm  5  elt  5  een doa    e eq     end direct quote  ede eg   eSp  ein  erm  een     gt    i   Q nun    Notice the Lt command in the first macro  To avoid affect   ina page headings and footingss the left margin is not ac   justed3 rathers an additional indentation is ap
49.  or ranae of values in Level 33 con     sitione    THe PRIMUS FIle syste     aL    The PRIMOS operating system for the Prime 490 computer sup     ports as one of its services a flexible  hierarchical file    system that orovides users with the facility to matntain    Large auantities of data in an orderlys Logical manner  A    bricf overview of the fite system s capabilities and    features is provided in Appendix   e It is somewhat tutorial    in nature    featurese    and does not attempt to cover all of the evailable    nor to present the details of implementation     Georgia Institute of Technology CAROL slor  kbench    ee i oc ee aho E ME UT err    Section 5 IMPLEMENTATION Pace 124    5e2e2 The Georgia Iech Software Iools Subsystem    Sececel General    The Subsystem consists of a command interpreter that sup   norts easy interconnection of proaramse a Larae collection  of software tools    and the capability for developing  customized toolse It runs as a cotlection of user orocrams  under standlarda versions of the PRIMOS IV and V operatin3  systems  thus retaining all security provided by PRIMOS 5s  welt as atlowince users to ignore the Sutsystem if they so  desirce Even soe the Subsystem is sufficiently conr   prehensive to permit use of the computer without a workin  a    knowte iae of PRIMOS     The concepts used in the Subsystem are derived from the text    Tools  Xernichan 761  The Georgia Tech Software    Software  Tools Subsystems howevere has undergone develonm
50.  phenomenon of forcing out a partially filled Line is known  as a  break  and occurs implicitly with many formatting com   mandse To cause one explicitly  the  break  command    ebr    is avatlable     6 2 2 Hyphenation    If   while filling an output Lines it is discovered that the  next word will not fits an attempt is made to hyphenate it   Although  fmt  is usuatly quite good in its choice of where  to split a words   it occasionally makes a gaffe or two   giv   ina reason to want to turn the feature off  Automatic  hyphenation can be disabled with the   no hyphenation  com   mand    enh    Long enough for a troublesome word to be processeds and then  reenabled with the  hyphenate  command    ehy    Neither command causes a breake    Georgia Institute of Technology COBOL Workbench    Appendix 6 FORMATTER Page 225    6 2 3 Margin Adiustment    After fitlina an output Lincs  fmt  inserts extra blanks  between words so that the Last word on the Line is flush  with the riaht marcins giving the text a  professional  ap   pearancee This is one of several margin adjustment modes  that can be selected with the  adjust  command    ead   mode      The optional parameter  lt moce gt  may be any one of four single  characters   b e  c    IL  or  rp   If the parameter is 3 5   or missinge normal behavior will prevail    both margins  will be made even by inserting extra blanks between wordse  This is the default margin adjustment mocee If  c  is  specifieds Lines will be shifted to th
51.  procedure segments and a Linkese seament fer  statically allocated variables and Linkages to common data   Stack manatement is provided by means of hardware   and    procedure calls are managed by microcodee    Se2ele2 Standard System Software    The Standard Prime 400 Systems Software of interest in this  project is the PRIMOS Operating System  the  PRI O Fite    Systemy and the Prime CCROL Programming Systeme    a er ee Oy wg Caer Ri Meee E         Ee AMEND Ge Coe  ou REED DU Lnd FEED ete aes ee    The ovreratina system for the Prime 400 computer system   PRIMOS   orovides interactives batche and real time super   visory services within a single system  It can handle up to    63 concurrent processes including interactive users at local    Georais Institute of Technoloay COROL workbench    vA PAG ect eeu decens   I Ur AEE eee uL     Section 5 IMPLEMENTATION Page 120    or remote terminals  phantom userss and RJE processes  The  Prime 400 system contains a segmented and paged virtual  memory with a 32 megabyte address space and up to  amp   menabytes of main memory  In additions a 2K byte bipolar  cache memory is utilized  PRIMOS can maintain a disk    capacity exceeding 24 4 billion pytes     PRIMOS is embedded in the virtual address spaces of atl  processese This results in providing access to any operat   inc system resource in the same amount of time as it takes a  user process to call a subroutines The multiple ring  orotection system ensures that this feature does not 
52.  simul   taneously  The exact method is Left to the implementor of  the command interpretere In any cases  the flows of data  described by    pipe connection  s and  lt i fo redirector   s are  guaranteed to be presente There are times when it would be  preferable to know the order in which a   net   will be  evaluated  to help with this situations   compound node  s may  be used to effect serialization of control flow within a  network   lt     lt Net gt  s separated by semicolons or newlines are  guaranteed to be executed seriallys left to right   otherwise  the command interpreter would exhibit unpredictable behavior  as the user typed in his commands  Suppose it is necessary  to operate four programss  three may proceed concurrently to  make full use of the multiprogramming capability of the com   puter systems but the fourth must not be executed until the  second of the three has terminated  For simplicity  we will  assume there are no input output connections between the  programs  The following command Line meets the requirements  stated above     programl s  program253 program4 s program3   Recall that the comma represents a null i o connectione   Suppose that we have a slightly different problem  the  fourth program must run after atl of the other three had run  to completion  ThiSs toos can be expressed concisely     programls procramee program  is  program4    Thuse the user has fairly complete control over the execu     Georgia Institute of Technology COBOL Workbe
53.  t prompts which is the prompt string the command  interpreter prints when requesting a command  If you object  to  I  as a prompt  you can change it with the  set  com   mands    J set _prompt    OK       OK   set   prompt    X      set   prompt    j    1    You may create and use variables of your own   To create a  variable in the current scope  level of command file  execution   use the  declare  comand       declare i i k sum    Values are assigned to variables with the  set  command   The command interpreter checks the current scope and all  surrounding scopes for the variable to be set  if found  it  is changeds otherwise it is declared in the current scope  and assigned the specified value     Variables behave Like small programs that print their  current values  Thus the value of a variable can b    ob   tained by simply typing its names  or it can be used in a  command line by enclosing it in brackets to form a function  call  The following command file  which also illustrates  the use of  if    eval    and  agoto   will count from 1 to  the number given as its first argument     declare i     set ji   1    loop  if  Cevat i   gt   Carga 17   goto exit  fi  i  set 1   Leval 3   1   goto Loop  sexit    Note the use of the  eval  functions which treats its ar   guments as an arithmetic expression and returns the expres   sion s values  This is required to insure that the string  i    Georgia Institute of Technology COROL Workbench                              Appendix
54.  the Lines from two lines before to  one tine before the current Line      Georgia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 198    You can also use     in Line number expressions       1p  jumps over     f 1p  means    print the Line that is one Line before the  Last Line in the buffer  the next to the Last Line       Some abbreviations are available to help reduce the amount  of typing you have to doe Typing a newline by itself is  equivalent to typing    1p   typing an up arrows       fol   Lowed by a newline is equivalent to typing    1p 3 and typ   ing a Line number expression followed by a newline is  equivalent to typing that Line number expression followed by   p   Examples      type a newline by itself   the lazy doge    jumps over    1  The quick brown fox    It might be worthwhile to note here that all commands expect  Line numbers of one form or another  If none are supplied    ed  will use default values   Thuse   w file  is equivalent to   letw file  and   a  is equivalent to   2a     which meanse append text after the current Line      5 1 9 Deleting Lines  As yet  you have seen no way of removing Lines that are no  Longer wanted or needed  To do this  use the  delete  com   mand  d     le2d  Deletes the first through the second Lines   d  expects    Line numbers that work in the same way as those specified    Georgia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 199    for  p   deleting one Line or any range of Lines
55.  to  Lf   of the files in the sub   directory  commands  files  that have path names containing  the characters   doc_  followed by at Least one additional  charactere  The next  change  command generates a  find   command for each documentation file to find the heading  Line  These command lines are passed back to the shell    sh   for executione The outputs of all of these  find   commandss namely the heading Lines from all the documenta   tion files   is passed back on the first standard output of  sh  The second  change  command uses tagged patterns to  isolate the command name and its short description from the  header Line and to construct a suitable entry for the kwic  incex generatore Finallye  kwic    sort     and   unrot   produce the index on the file  cmdek      Georgia Institute of Technology COBOL Workbench    of    Appendix 4 COMMAND INTERPRETER Page 187    To this points only serially executed commands have been  discussed  however sophisticated or parameterized  Controt  structures are necessary for more generally useful ap   plicationse The foliowing command file    ssr   4 shows a  useful technique for parameter setting commandse Like many  APL system commandse    fssr   without arcuments prints the  value it controls  in this cases  the user s command search  ruLede while  ssr  with an argument sets the search rute to  the araument givens then prints the value for verification    Ssr    Looks Like this       ssr     set user s search rule and print it    i
56.  to by the  lt node number   3   and any   lt node gt  may be referred to by an alphanumeric   label       lt Node gt  Labelling is discussed   n the section on   node     syntaxe belowe  If the first  lt node gt  of a  lt net gt  is lLabelledy  the  lt net gt  may serve as a target for the  goto  command  see  the Applications Notes for examples     As will be seen in the next sections further syntax is  necessary to completely specify the input output environment    of a  amp   node  3 the reader should remember that  lt node  separator gt s control only those flows of data between  BRroCceSSeSe    A few examples of the syntax presented above may help to   clarify some of the semantics  Since the syntax of   node     has not yet been discussed   lt noder gt s will be represented by   the string  node  followed by a digits for uniaueness and as   a key to    node number  s     A simple Linear   net   of three  lt node gt s without defaults   model 1 2 1 node2 11l3 1 nodes     Data flows from output port 1 of nodei to input port 1 of  node2 and output port 1 of node2 to input port 1 of nodes35      The same   net    with defaults    nodel   node    node3   Note that the spaces around the vertical bars are  mandatory   so that the lexical analysis routines of the com   mand interpreter can parse the elements of the command unam   hiquouslye   A simple cycle    nodel 11 2   Data flows from output port 1 of nodel to input port 2 of    nodele Other data flows are unspecified at t
57.  will perform an  e  command for you if you    Georaia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Fage 195    give it a file name on the command Line     Sele6 Errors   the Query command    Qecasionallys an error of some kind will be encountered   Usually   these are caused by misspelled file names   although  there are other possibilities  Whenever an error occurs     ed  types    ALthough this is rather cryptics it is usually clear what  caused the probleme If you need further explanations just  enter     and  ed  will respond with a one line explanation  of the error  For examples if the Last command you typed  was an  e  commande fedt is probably saying that it coulc  not find the file you asked fore You can find out for sure  by entering         e myfile           I can t open the file to read    Except for the messages tin reponse to    4  fed  rarely aives  others more verbose error messages  if you should see one of  theses  the best course of action is to report it to someone  who maintains the editor     51 7 Printing text   the Print command    You are Likely to need to print the text you have typed ifs  to check it for accuracy  The  print  command  p  is  available to do this   p  is different from the commands  seen thus farj  e    wu   and  a  have been seen to work on  the whole buffer at once  For a small files it might te  easiest to print the entire buffer just to check on some few  Lines   but for very Large files this is clearly impracti
58.  with as  many words as possible before centering takes place     6 2 5 Summary   Eitking and Margin Adiustment    Command Initial If no Cause   Syntax Value Parameter Break Explanation   ead c poth both no Set margin adiust   ment mode    sbr E   yes Force a breake   ete N N  N 1 yes Center N input text  Lines    of i on   no Turn on fill mode      hy on   no Turn on automatic  hyphenatione   sna     no Turn off margin ad   justmente   anf     yes Turn off fill mode    Also inhibits ad   justmente    enh     no Turn off automatic  hyphenetion        S5 off   no Single blank after  end of sentence    xh on   no Extra blank after    end of sentence     Georgia Institute of Technology COBOL Workbench    Appendix 6 FORMATTER Page 227    6  5  SPACING AND PAGE CONTROL    63 1 Line Spacing    Fmt  usually produces single spaced outputs but this can be  changeds without a breaks using the  line spacina  command    els N    The parameter N specifies how many Lines on the page a sinc   Le Line of text will use  for double spacings N would be  twoe If N is omitted  the default  singled  spacing is  reinstated     Blank Lines may be produced with the  space  command  esp H    The parameter N is the number of blank Lines to produces if  omitteds a value of one is assumed  The sp command causes a  break  if the current Line spacing is more than one  the  oreak will cause blank Lines to be outpute Then the blank  Lines generated by sp are output  Thuse if output is teina  double spaced an
59. 09090999992099020264 0  el Goals for Testino SuppOrteeeececccececcecce  coccoccecccocseccccecte  e2 lest HarneSSeeeeecceccececoecccooscccccccccsscsocecesceccccecceccce il  e3 Test Control SyStemeeececcceccoecceccetccccocccccocccccccceccecccec t     e4 Test Data Generat  ioneeeeecccecccecccceccccccccccecceccecceccetl  e5 Automatic Verification SyStemeececceccocccccccccccecec  cococ tJ   e b Object Time Mon  itorSeeeececececcecceco  ccceccccccecsectosccseocsocscs i    4 PROGRAM MAINTENANCEsceecec0090990200900909909909029022090902022202 ts 7  el Nature of Maintenance Activitieseececcecccoccecccccecccecccceo i   ec Maintenance SuppoOrteeeececcoececcececccceeccc   co  cocceecesocccec  c D  e5 DOCUMENTATION PREPARATIONeeeeeooccecccocccecoccccecooccceccceccefh  ei Overview of the Documentation Sub systemeeeeccccceccccecccectG  ec On Line Document Handlinaseeeesseocecesecccsecceos  cseocese  cot  el Preparing DocumentSeeeeececcececcececcccccsccsocceecccceccecce th   e e Updating Documentseeeeececeoecccoccocccesoccecccccccsceceo t   e6 DOCUMENT CONTROL     soo5oe0o200200009902999209299090909002229c29209e69220629 D      Georgia Institute of Technology COBOL Workbench      Page vi    el Overview of Document Controleeeeesececscccecoccccccoceccoc 0  a2 Audit Trail of ChangeSeeeeseccececceoecceaeceo  ccceccccc  ocoo D2  eS Ability to Maintain Different Releases VersionSacceesvesd2    4 Linkage of Comments on Documentseeeeeseccecccceccccccoocce 2   e  DOCUMENT PRODUCTIONeseeo0  e90290090909
60. 2209099009992920929260092999069 4  el Prosram ProductiOneeeecsceccecccceccccccccctcceeccsoctcesose D    eo Documentation Productionseseeecececcccccococcecccscsvco  scc  oco D    ol Formatt  indeeeeeoeccecececcceccooccveocsoccs  ectsoccceco  sco  cccoctocs D        2 Documentation Format Standardseeeesecccceccecc  occccccoc D6  Section 3e FUNCTIONAL COMPONENTS  e62s2o06025060606009009092099060609009029092 27    el OVERVIEW OF WORKBENCH COMPONENTS ANO ORGANIZATIONeeeseocec0o57  ec PROGRAMMING SUBSYSTEMaeeosc0o00e0c020902090909920920909929006026929 rd  el Program Preparation  seseeeccccccececcceccocc  ccccsoc  cccccccsoco dd  ei Workbench COBOL     COBOLe  wDCeeeecocccocccec  ececccocoscos nd   ec COBOLeGemOssoeccececeoecceceeceoc  tt o22009090002000202960009020c022     e  COBOL Screen FCditOrneeecccceccccccecccoccccccocccsccceeceb     4 Standards   nforcereeeescceccccccceccccee  cccecccccsccccccecscocbl   ec Prodram ProcessinOeeeeeceeccececcceccc  c  esccctcctccscsccoccecocceosbl  el Library SuppoOnrteeeeeeececceccceceocececceecccccccccstccceccecch l   ec Program ProCeSSOleeecocccecsccececececocsssccecccccc  sscocccoecscecb          DOCUMENTATION SUBSYSTEMeesccco20200009200209009909299c0cccccccb    4 DOCUMENTATION PREPARATIONeeeeceecs909290090990992002092002299209920900  el Documentor  s Environmenteseeeesecccoccesocecceccccc  occecceco  occei  el Tools and Librarieseseeeeeececceccocceeccceecccesecceccccoccecceb   ec Documentation Format Standardseeeeeecccccccccocceccccse  esce
61. 25180    Georgia Institute of Technology COBOL Workbench    Appendix 2 EXAMPLE Page 14     2 4  PROCESSING    the    the initial program  Library and then  In the examples  are  the  the  and    Workbench utility  convert    ended utilizing the Project  utitizina the  acro Libraries   below the intermediates expanded versions of the program  not Listed  OnLy the two compiler unique forms of  program are dlisted completelys however  the results of  expansion are readily apparent in the file definitions  in the calls to  nlevel        Using    24 1 Prime 400 Version    Since the standards enforcer is not availables we will sim   oly proceed to the compilations Linkings and execution of  the P409 version of the programe  2e4elel Prime 400 Program   REV 14 COBOL SOURCE FILE  EXeP4C0 08 09 77   0901     0002     0003     0004  IDENTIFICATION DIVISION     0005  PROGRAM ID     0006  TWOLEVEL      0007     0008  ENVIRONMENT DIVISION     0009  INPUT OUTPUT SECTION     00102  FILE CONTROL     0011  SELECT SALES FILE ASSIGN TO PFMS     0012  SELECT REPORT FILE ASSIGN TO PFMS     0013     0014  DATA DIVISION     0015  FILE SECTION     6016     0017  FD SALES FILE    0018  LABEL RECORDS ARE STANDARD    0019     0020  VALUE OF FILE ID IS   SALES     0021  DATA RECORD IS SALES RECORD     0022  01 SALES RECORD       0023  05 SALESMAN PICTURE X    5     0024  0S  PISTRICT PICTURE XXX     0025  05  SALES DOLLARS PICTURE 3 5 2V539    00238  i    0627     0028  FD RFPORT FILE    0029  LABEL RECO
62. 29000600622055    2 COMPARISON OF COBOL FEATURES   eocc0occ  0990oc0c9090000ccccc  c60U    Georgia Institute of Technoloay COBOL Workbench    le5 1    Cecoel l    2e5elnl    Petel l    Celecn l    3el l    5e4einrl    5 e5 l    5 656 271   amp  ed2el l    4eeecn l    e2272  424 1    4e2eSel    424      A esecrl    aeSe2el 1    ae Sede So 2 71    Page xii  LIST QE EIGURES    Relationships Between Program RELEASES   VERSIONS  and MODIFICATIONS 6260666600600 0067    Program PreparatiOneseeececccccececccecccccccccccsceccel  b    Preparation and Modification of  Supporting Documentationeeeeccccccceccccc  occsh    Document Control of all Documentationeseeoeccccol  Production of DocumentationeeeeececcceocccoececceccccceD    Major Functional Components of the  COBOL WorkbencheeeeeecoecocceccececcoscccccccccccoB    Preparation of Supporting Documentationeeeececct    Preparation and Control of Programs  and DocumentatiOoneeeeeecsccecoeccoecceccecccccoceccc 7    Documentation Productioneeeeeececccccccceccccccc D    Production of a Program in COBOL ekecvccccccsesd 4    Production of Reusable Modules and  Their Documentat  iOoneeeeecccecccccoecceoccoccece JO    Production of Reusable Modules in COBOL ekeceeed  amp   Preparation of Compiler Unique Macroseeseeeccce 7    Utilization of the COBOL Programmer s    Workbpencheseeeeececceccccccocccececcecccceccccceccco  occceclill    Testing of a COBOLewoc ModuLeeceeecccccoccccecccclO7    Sequence of Four Deltas Indicating Four  Revisions of a Mo
63. 5    1  448 02    18  207 69  32  185 60    2  593 29    56  194 15  39 11215440  50  51 80    5  367 595    Georgia Institute of Technology COBOL Workbench    Appendix 3 DOCUMENT CONTROL Page 155    APPENDIX 3    DOCUMENT CONTROL    The information contained in this appendix was extracted  from a research paper by Timothy Ge Saponase That research  paper served as partial fulfillment of the first year Phele  research requirement at Georgia Teche    Document Control is the Workbench facility that provides for  the generations modifications and general management of all  revisions of any documente Among the documents which are  serviced by Document Control are COBOL modules   secificationss manuals   catalogss and reports  Most of the  discussion concerning Document Control will refer to COBOL  modules    but it is equally applicable to any other document     Sele CAPABILITIES    A cocuments such as a program  may oo through many  revisions  At any time several of these revisions may be in  use  For examples one group of people may be working with  program A in productions another group may be correcting  known bugs in program Ase and still another aroup may be ex   tending the capabilities of program Ae This obviously could  result in avery chaotic situation if all three groups are  using the same programe Thus   it is necessary for Document  Control to maintain and follow a document through all of its    revisions  Document Control should be able to create any  revision at a
64. ANSI  74 COBOL files oroanized as INDEXED or  RELATIVE are establishec as MIDAS  Hultiple Index Sata Ac   cess System  files  A MIDAS file can be accessed by mul   tiple users in a sequential or random manner and can have  Locks specified at the  data record level to resolve    concurrent usage conflicts  Up to six keys or key synonyms    can be used to perform a partial file searches    Primo  COBROL   implements  to a minimum of Level 1  the  nucleus     table handlino  sequential  relative and indexed  1 33 Liorary  and interproaram communications modules  The  deoua nodule is implemented with the REACY TRACE se RESET  TRACE    and EXHIBIT NAME features supported in the procecure  division  The Level 2 features which are implemented are  the following    1  STRINGC UNSTRING statenentse   2   onditional expressions     a  Conjunctive operators Cane ory not      Georaia Institute of Technology COBOL workbench    AR   me xe as      ma  Tav EE A 1T  TRAE RIS ae    messed    Section 5    3   4   5   6   T          3     11     9e2ele2e6535    IMPLEMENTATION Pace 123    2  Relational operators  c   gt s  lt l  not  e    not  gt e not de    c  Full parenthesis supporte  a  Implied subjects and relationshifse  e  Nested IF statements     OPEN with EXTEND    INSPECT statemente   ALTER statement    COMP 35 pack decimal    COMPUTE with multiple rece  ivina fields   PERFIRM VARYING with index    SEARCH statement    ALTERNATE RECORD KEYS WITH DUPLICATES for IN   MEXED filese   A series
65. APPLIB name  A Library file containing macro definitions   in COROLewbe  of utility routines and modules commonly  needed in a particular application area  Typical exam   ples include APPLI3 PAYROLL and APPLIB INVEN     Base Line System  The COBOL wbc program that defines the  delivered COBOLen programs for the various target    mechinese    Breadboard  A program developed primarily as an ex   perimental model of a production procrame rasily  modifiable to permit both requirements changes and  eventual optimization     See prototype     Capability  A tasks purposes  or function which may be  carried out in some unspecified manner by a Language or  systete An example of a capability in  c0BOL   s the  abitity to sort files according to the value of a given  field  this might be performed by the use of a SORT  verbs by a call to an external procedures or by the in   Line inclusion of the appropriate COBOL commandse    COBOL Programmer s Workbench  A comprehensive collection of  capabilities and facilities to assist the COBOL  proarammer in the development and preparation of com   plete COBOL systems supported by full cocumentatione  Other capabilities of the Workbench are to facilitate  the development of  prototype or breadboard  COBOL  orograms from a collection of reusable COBOL modules  and to facilitate the preparation of COBOL programs  that may be easily converted to a number of different  target machines each having its own unique dialect of  the COBOL Llanguagee   See 
66. BLEMS ENCOUNTEREDeeeecec o099002009099906999099209220c1c   7    Section Be SUMMARYeecec060090209092090290920990909909909900909090909000092   901J       REFERENCES amp seece0o0o0060009020009090000900600000902   0902090690009009000002c01J3 54    Aopendcdix le GLOSSARY eee neve eveeseseeneeevesrseesecnveseseseosseseli amp     Appendix Oe EXAMPLE eevee ee ese aseanseeeeenevevesecsesvevssesesecceeelt4    el MACRO LIBRARIESee6e5s0699o2900920009990029909990900o999002000cc202215 4  ec PROJECT LIBRARYeoeoee0690606060909000000009099000900000090020000920  01 4P  eS WORKBENCH COBOL PROGR  A  Me 6eec0ce000006200250922920290600c920021  27  e  PROCESSINGeecscceo0609209009900909090009999909000000900009000090909992921 t9  el Prime 400 VErsS TOT  0 5 6 6 6 6 6 6 6 66 0 6 6 6 646 066  0 6 6 00 6 60 68 66 06 ee 1 49  el Prime 400 Programeeeeeeeeececccccececcececc  o  c  oceccocce  cccl   eo Prime 400 Qutputeececcccccecccccececcccccceccceccoccsceccceccl2l   ec CYBER Versloneeeecocccecccoecoececcececoeccoccsecececceoecccccecceccccccc  occvocccol2c  ei CYBER Programeeeeeecececcecececcecc  cececcceeccesscscccsccccsccl22    e2 CYBER OQutputeeeeececececceccceceoeoececccoccccieccocssocscvoeccceeoccll2    Appendix Se DOCUMENT CONTROL    ee co06co00090o000c0900900909920092  229099 909cc1525    el CAPABILITIfS4 eeeee6ee06c0060606006000900000900090900909099099060620621J7  se2 THE MECHANISMe  soeo0o6o006006060090906009002099900000060900200096092296015  ol Adding New Delta  Seeeecceccoecececececcececcce  ccc
67. Coding errors in original code  such as   not opening files before a WRITE  found and corrected    Discovered the absence of AAC TABLE on original EDIT tape  Placed telephone    call to Fort Lee requesting copy of AAC TABLE  sample transactions and output     9 June Received tape with AAC TABLE and sample transactions     30 June EDIT running to normal termination  Test run with transaction cards in progress     Future work on this project planned for the remainder of the first year and the    second    year consists of the following    Completion of the conversion of the complete sample system  DS4    to the minicomputer environment   Completion and check out of the automatic translation aids   Preparation of reports covering Conversion Aids and System Performance  Measurement and Analysis   Performance measurements of the sample program on various hardware con  igura   tions for both the large main frame system and the minicomputer system and an  analysis of these measurements to develop cause and effect relationships as  appropriate   Development of a table driven COBOL program capable of providing a general   purpose  interactive data input interface including prompting and data edit    and checking features     SEMI ANNUAL NO  4 PROGRESS REPORT    ARO PROPOSAL NUMBER  14752   A M    PERIOD COVERED BY REPORT  1 July 1978   31 December 1978    TITLE OF PROPOSAL  Portability of Large COBOL Programs    CONTRACT OR GRANT NUMBER    DAAGC29 77 G 0045    NAME OF INSTITUTION  Geo
68. ECT PROGRAM  OCCURS   OF   OFF   OMITTED   ON   OPEN   OPTIONAL    COBOLewdc    OR 162    ORGANIZATION  OUTPUT   OV  OVERFLOW  PAGE  PAGE COUNTER  PERFORM   PF   PH   PIC  PICTURE  PLUS  POINTER  POSITION  POSITIVE  PRINTING  PROCEDURE  PROCEDURES  PROCEED  PROCESSING  PROGRAM  PROGRAM ID  QUEUE  QUCTE  QUOTES  RANDOM   RD   READ  RECEIVE  RECORD  RECORDS  REDEFINES  REEL  REFERENCES  RELATIVE  RELEASE  REMAINDER  REMARKS  REMOVAL  RENAMES  RENAMING  REPLACING    Georgia Institute of    oe  GO    Pe   nC  OW aon oD cc Ft c coc 5 TOT ccc co PW TAO MW CA CO cO Oo OO Ww    CA    I    e PO    O GC JC c CN     COO c5    Technology    Page 267    REPORT  REPORTING  RFPORTS  RERUN  RESERVE  RESET  RETURN  REVERSED  REWIND  REWRITE   RF   RH   SIGHT  ROUNDED   RUN   SA   SAME   SD   SEARCH  SECTION  SECURITY  SEEK  SEGMENT  SEGMENT LIMIT  SELECT   SEND  SENTENCE  SEPARATE  SEQUENCE  SEGUENCED  SEQUENTIAL  SET   SIGN   SIZE   SORT  SORT MERGE  SOURCE  SOURCE COMPUTER  SPACE  SPACES  SPECIAL NAMES  STANDARD  STANDARD 1  START  STATUS   STOP   STRING  SUB GUEUE  1  SUB  QUEUE  2  SUB QUEUE  3  SUBTRACT  SUM  SUPPRESS  SYMBOLIC  SYNC  SYNCHRONIZED     s  wet    t3 2 Oc  OQ ta     c5      a    GDN oon COC    f2    D e  FW OC    C3 C         Ut   o  mF OO OW Or OO    n3  i  e     jr c oao 0 ce     2     0  c M e    t  cD e    m    53 CY 753 Ot es 495    BR  Ex    cc    n3   CO Wm    COBOL Workbench    Appendix 9    TARLE  TALL Y  TALLYING  TAPE  TERMINAL  TERMINATE  TEXT  THAN  THEN  THROU
69. EM ee um adero GENE  pipon heo  phe pinn a AS D    Procramming Skeletons that are applicable only to a  particular project are kept in the project s Project  Librarye They are written in COBOLewbc and have been    tested  They may call modules which are housed   n other    Librariese    3 5 163 4  Baseline Program   The baseline program as contained in the Project Library is  a tested proorame It   s written in COBOL wbc and may  contain calls to modules developed especially for the  project and maintained on the project libraryse as well as  calls to tested modules contained in the other libraries    described in this sectione    SeS5ele5e5 Sreadboard Programs  Breadboard programs that are developed for a particular  project are kept in the Project Library for the project     These programs are written in COBOLewbce They have not been    r  gorously tested  but are still believed to be correct     Georgia Institute of Technology COBOL Workbench    LOMA      cu      Section 3 FUNCTIONAL COMPONENTS Page 79  5 5 1 4 Release Library    The Release Library contains those proarams which have Leen  released for general use  This includes tested Baseline  Proarams eteten in COBOLewbe and the compiler specific  RELEASES and VERSIONS of the Baseline Programs which are  written in the ET E E diatect of COBOL  COBOL ek    provided by the target machine on which the program is to    rune    5 5 1 5 Personal Libraries    The Personal Libraries are used by the programmer to store  any mate
70. For instance        as fox rabbit     will change the first  fox  to  rabbit  on every Line that  is named  a   The     command works in the same manners  except that it performs the command on those Lines that are  not marked with the specified namee For examples to celete  all Lines not named  k 4  you could type    tkd    5el   16 Undoing Ibinas zz the Undo Command    Unfortunately  Murphy  s Law  auarantees that if you make a  mistakes it will happen at the worst possible time and cause  the areatest possible amount of damage     Ed  attempts to  prevent mistakes by doing such things as working with a copy  of your file  rather than the file itself  and checking com   mands for their plausibilitye However  if you type    d  when you really meant to type   a  tec  must take its input at face value and do what you says  It is at this point that the  undo  command becomes useful    Undo  allows you to  undelete  the Last group of Lines that  were deleted from the buffer  In the Last examples some  inconvenience could be avoided by typing    ud  which restores the deleted Line   By default  undo  will    also delete the current Lines  ud  keeps the current Line    Georgia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 210    from beino deleted      The problem that arises with  undo  is the answer to the  question  What was the Last group of Lines deleted   This  answer is very dependent on the implementation of ted   and  in some cases 1s subfect to chanae
71. GH  THRU  TIME  TIMES   TO   TOP  TRAILING  TYPE  UNIT    Gece    COBOLewbe Page 268   2 UNSTRING 0   7 UNTIL 86   2 UP 95   g UPON      0 USAGE         USE 0   0 USING 65  177 VALUE 1724  0 VALUES W   2 VARYING   8  456 WHEN 11  G WITH 0  80 WORDS 0  5091 WORKING STORAGE 14     WRITE el   1 ZERO 486   D ZEROES c6   0 ZEROS ER    COMPARISON QE COBOL FEATURES    Some Examples of the  Comparison of COBOL Features Offered by    the 74 COBOL Standards PDP 11 COBOL   and PRIME COBOL    The followina are excerps from a more comolete study of  differences    machines     ACCEPT    ACCEFT identifier 1 FROM      a     b     C      d     Georaia Institute of Technology    identifier 1   FROM    the    found   n various features of COBOL on several    ACCEPT  mnemonic name 1     DATE   RAY   TIME      74 COBOL    Sata is transferred according to the rules of    MOVE e    be     nhemonic name must specified in the SPECIAL     NAMES paragraphe  device that  is usede    Tf the FROM phrase  the implementor specifies    is not givens the  as standard    If the size of the data being transferred is    identical to the size of identifier 14 the data is  transferred and stored in identifier le    COBOL Workbench    Appendix 9 COBOL ewbc Page 269    e  Tf the size of identifier i is less than the size  of the data being transferred  the tleft most  characters of the data being transferred are  stored in identifier 1    Left justifiedi characters  to the right are ignored     f  If the size of id
72. ICI PICTURE XXX   05  SALES DOLLARS PICTURE 9 5 9V59   FO REPORT SF ECE  LAFEL RECORDS ARE OMITTED  DATA RECORD IS REPORT RECORD   01 REPORT RECORD    05  CARRIAGE CONTROL PICTURE X   05 SALESMAN OUT PICTURE X 5    0  FILLER PICTURE XXX   05   SALESMAN TOTAL OUT PICTURE    5 1   94t  9 99   05 FILLER PICTURE X    8    US  TELISTEICTeoH PICTURE XXX   OS EILLER PICTURE XXX   OS DISIKLCTIeIOTAL 0BT PICTURE    5  1 9   49 94  099   0  CEE PICTURE X 8     OS FINAL TOTAL OUT PICTURE     9  5   9 99     COBOL Workbench    Appendix 2 EXAMPLE Paoc 153  00044   90045  WORKING STORAGE SECTION    00046   00047 01 FLAGS    00048 05  MORE DATA FLAGC PICTURE XXX VALUE  YES    000459 88 MORE DATA VALUE  YES   00050 88 NO MORE DATA VALUE   Ph Ti  00051   00052 92 3SAVE ITEMS    00053 05  PREVIOUS SALESMAN PICTURE X 5     00054 05  PREVIOUS DISTRICT PICTURE XXX      00055   00056 91 TOTALS COMPUTATIONAL    00057 05  SALESMAN TOTAL PICTURE S9 8 V99 VALUE ZERO   00058 05  DISTRICT TOTAL PICTURE S9 8 V59 VALUE ZERO   00055 05 FINAL TOTAL PICTURE S9 B V99 VALUE 2  ROC      TWOLEVEAO 0112    00060    TWOLEVEAO 0112    00061  00062  00065  00064  00065  00066  00067  00068  00069  00070  00071  00072  00073  00074  00075  00076  00077  00078  00079  00080  00081  00082  00083  0005234  00085  00086  C0087  00088  00089    Georcia    COBOL    COBOL    PROCEDURE DIVISION   PREPARE SALES REPORT   OPEN INPUT SALES FILEs  OUTPUT REPORT FILE   READ SALES FILE  AT END MOVE  NO   TO MORE DATA FLAG   MOVE ZE
73. In particular   the user is    specifically enjoined not to assume a  Left to riaht serial  executions since some  lt net gt s cannot be executed in this man   nere    Input output relations between  lt node gt ds are specified with  the  lt node separator  construct  The following discussion  may be useful in visualizing the data flows in a  lt net gt   s and  clarifing the function of the components of the  lt node  separator gt d e    The entire   net    may be represented as a directed oraph with  one vertex for each    node    typicallys equivalent to each  process  in the nete Each vertex may have up to n ares  terminating at it  representing input data streams   and m  arcs originating from it  representing output data streams    An arc between two vertices indicates a flow of data from  one   node   to anothers and is physically implemented by a    pipes    Each of the n possible input points on a  lt node gt  is assigned  an identifier consisting of a unique integer in the range 1  to ne These identifiers are referred to as the port numbers  for the standard input ports of the given   node    Similar   Lye each of the m possible output points on a   node   is as   signed a unique integer in the range 1 to me referred to as  the port numbers for the standard output ports of the given   amp node       Lastly  the   node  s themselves are numbered  starting at 1    and increasing by 1i from the Left end of the  lt net gt  to the  riahte    Georgia Institute of Technolog
74. LEMENT  PROJECT  T ASK    9  PERFORMING ORGANIZATION NAME AND AODRESS AREA  amp  WORK UNIT NUMBERS    School of Information and Computer Science  Georgia Institute of Technology  Atlanta  Georgia 30332    CONTROLLING OFFICE NAME AND ADDRESS  U  5  Army Research Office  P  O  Box 12211    Research Triangle Park   iC 27709  14  MONITORING AGENCY NAME  amp  ADDRESS IfI different from Controlling Office                            REPORT DATE    September  1979  13  NUMBER OF PAGES   273   xiii    SECURITY CLASS   of thie report     11                   Unclassified  15a  Sura Ie ADIP DOWNGRADING  DUL    NJ   U       Same as Item ll        16  DISTRIBUTION STATEMENT  of thia Report     Approved for public release  distribution unlimited     17  DISTRIBUTION STATEMENT  of the abstract entered in Block 20  if different fram Report     N A       1a  SUPPLEMENTARY NOTES  The view  opinions  and or findings contained in this report are those of the  author s  and should not be construed as an official Department of the Army  position  policy  or decision  unless so designated by other documentation           19  KEY WORDS  Continue on reverse side if neceasary and identify by btock number   COBOL Software Tools  Management of Programming  Portability of computer programmers  Programmer productivity  Programming Tools     20  ABSTRACT  Continue on reverse sido ii necessary and identily by block number   The COBOL Programmer s Workbench is a fully integrated collection of automated  soft
75. MINATION    Date  December 21  1979    Project Title  Portability of Large Cobol Programs    Project No  G  36 6158  Project Director  Dx  P  H  Ens  ow  Ja     Sponsor  U  S  Aumy Research Oj cce  Research Triangle Park  N  C     Effective Termination Date  6 30 79  Clearance of Accounting Charges  6 30 79    Grant Contract Closeout Actions Remaining     _X Final Invoice and Closing Documents   _X Final Fiscal Report   u Final Report of Inventions   _X Govt  Property Inventory  amp  Related Certificate    Classified Material Certificate    Other  Assigned to  I  formation  amp  Computer Sciences  School L xot tory   COPIES TO    e  Project Director   Library  Technical Reports Section    EES Information Office  Project File  OCA     Project Code  GTRI       Division Chief  EES   School Laboratory Director  Dean Director   EES  Accounting Office  Procurement Office   Security Coordinator  OCA   Reports Coordinator  OCA      CA  4  1 79     Portability of Large COBOL Programs    Progress Report    Dr  Philip H  Enslow  John J  Goda  Jr     20 October 76 thru 30 June 77    U  S  Army Research Office    ARO Proposal Number  14752 A M  Grant Number  DAAG29 77 G 0045    School of Information and Computer Science  Georgia Institute of Technology    Approved for Public Release     Distribution Unlimited     Interim Report  on    Portability of Large COBOL Programs    The initial work on this project was focused primarily on a practical exercise  in transporting a large COBOL program
76. MPONENTS Page 89    3e6 DOCUMENT PRODUCTION    3 6 1 Program Production    Program production is a function provided by the COBOL com   piler and programming system applicable to the target en   Vironmente The Workbench tools provide the capability to  produce a compiler unique VERSION of a baseline program  RELEASES however    the only dialect of COBOL that can be  translated into an object program by the Workbench is    COBOL ewhCe    Se6e2 Documentation Production    To produce printed documentations the documentor must direct  the Text Formatter and the desired printing tools  The text  to be formatted is obtained via the chain from Document  Control to the librarian to the Libraries and passed alona  through the Formatter and printing tools to the device which    is to print the documentation     3e6e2  s1 Text Formatter    Documents itn their finished forms are obtained by running  them through the Text Formattere This formats the text ac   cording to commands intermingled with the text and default  settings for those options not specified by commands  The    Text Formatter allows the user to make either the Left or    Georgia Institute of Technology COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 90    FIGURE 354 6 2 1    DOCUMENTATION PRODUCTION         Libraries        Xie eee ex         Librarian        Document      Control                   ot               ENS E E      Documentor      sxuxsskewew   w    Formatter                            Georgia Institu
77. NORED FOR DECIMAL ITEM    59 1 W   COMP  IGNORED FOR DECIMAL ITEM    61  W   COMP  IGNORED FOR DECIMAL ITEM     0000 ERRORS 0003 WARNINGS  P400 500 COBOL REV 14 0  lt TWOLEV gt     2e4  1   2 Prime 400 Output    The output of the P400 version of the program is     Georaia Institute of Technoloay    41  20354 37  ir   110 00  69  154 65  1  448 02  18  207 63  32 1185 60  2  595 29  36  194 15  49  121 40  50  51 80  3  567 55     13 4208 66    COBOL Workbench    Elf        a        Appendix 2    EXAMPLE Page 152    2  4 2 CYBER Yersion    The    Cyber version of our sample program was written to tape  on the Workbench    Cybers     PRIME system  and then transferred to the  where its compilation and execution yielded the fol     Lowina results     2ete2  el CYBER Program    800001  002802  00005  00004  090505  00006  00007  90008  00009  00019  20011  00012  00013  000124  00015  20016  00017  00015  9001F  00020  00021  00022  000235  00024  00025  390926  00027  00028  00029  00050  090051  00032  00035  00034  000255  00056  00057  00058  00059  90040  00041  60042  60045    Georgia Institute of Technology    AO 0112 COBOL  IDENTIFICATION DIVISION   PROGRAM  I0D    TWOLEVELe  FNVIRONMENT DIVISION   INPUT OUTPUT SECTION   FILE CONTROL   SELECT SALES FILE ASSIGN TO INPUT F2   SELECT REPORT FILE ASSIGN TO OUTPUT F i   DATA DIVISION   FILE SECTION   FD  SELESePFILE  L BEL RECORDS ARE OMITTED  DATA RECORD IS SALES RECORO   01 SALES RECORDe  05 SALESMAN PICTURE X 5    OS  DISTR
78. Name Page   eFC 2   e SD   enf   eta 53  _sasics l   F4illina and Margin Adjustment 2  Spacina and Page ControlNs    Sp   efi    result should Look about Like this     Section Name   age     agSiCcSeeeeeeceococceoecsoec  cocecocccetososoocsceccccocscccc  ccco  col  Filling and Margin Adjustment ecccvcceccencveesesesoel  Spacing and Paaoe Melaka selene a a a 94934 2594449  449729 5    6e6e2 Summary z Tabulation    Command Initial If no Cause   Syntax Value Parameter Break Explanation   sta MET T  9 17 eee all no Set tab stops    ete c TAR TAB no Set tan charactere   eC C 3L ANK BLANK no Set tab replacement  charactere    6 7  MISCELLANEOUS COMMANDS    It    is rarc that a document survives its writing under the    pen of just one author or editor  More frequently  several  different people are tikety to put in their two cents worth  concerning its format or content  Sos if tre author is  particularly attached to something he has writtene he is    well advisec to say so  Comments are an ideal vehicle  for  this purpose and are easily introcuced with the  conmment    comman     Georsia Institute of Technotioay COROL Workbench    Appendix 6 FORMATTER Page 237    ett Ccommentary text      Everything after the   up to and including the next newline  character is completely ignored oy  fmt       6 7 2 Boldfacing and Underlining      Fa5t  makes provisions for boldfacing and underlining Lines  or parts thereof with two commands     ebf    I  boldfaces the next N Lines of input texte 
79. OL Workbench    Appendix 5 EDITOR Page 205    s       J        882 881     Final words on substitute  the slashes are known as   delimiters  and may be replaced by any other character  ex   cept a newlines as Long as the same character fs used  consistently throughout the commande  Thuse    s tvaults vaulted p  vaulted over    is Legale    Also  note that substitute changes only the first  occurrence of the pattern that it findss if you wish to  change all occurrences on a Lines you may append a  a   for   global   to the commande Like this     s  I  gp     w  amp voaulted over    Selel2 Line Changes and Insertions    Two  abbreviation  commands are available to shorten common  operations applying to changes of entire Linese These are  the  change  command  c  and the  insert  command  i      The change command is a combination of delete and append   Its format is    startina Linesending Line c    This command deletes the given ranae of Lines    and then goes  into append mode to obtain text to replace theme Appenc  mode works exactly the same way as 3t does for the  a   com   mands input is terminated by a period standing alone on a  Line  Examine the following editing session to see how  change might be used     lesec   Ed is an interactive program used for   the creation and modification of  texte   c   the creation and modification of  texte    Text  may be any collection of character  datae    As you can sees  the current line is set to the Last Line  entered in append m
80. Project Title     Project No     Project Director     Sponsor   Agreement Period   Type Agreement     Amount     Reports Required     GEORGIA INSTITUTE OF TECHNOLOGY   L     OFFICE OF CONTRACT ADMINISTRATION    SPONSORED PROJECT INITIATION    Date  November 23  1976    Portability of Large Cobol Programs      j    fp A  Poe zu  229 fe      36 618 ATA    Dr  Philip H  Enslow  Jr     J  S  Army Research Office  Research Triangle Park  N C     From 11 25 76 Until 11 24 77    Grant No  DAAG29 77 G 0045     125 000   ARO  23 200   GIT  G 36 321            148 200 Total      Progress Report  Technical  When Justified     Sponsor Contact Person s   Final Report    Technical Matters     Contractual Matters    COPIES TO     Project Director  Division Chief  EES     Technology Division  thru OCA     U S  Army Research Office iod Pd Renneker  P O  Box 1211  Research Triangle Park  N  C  27706 Closing Administration Only  Defense Priority Rating      Assigned to _Information and Computer Sciences      School Laboratory     Library  Technical Reports Section  Office of Computing Services    School Laboratory Director Director  Physical Plant    Dean Director   EES  Accounting Office  Procurement Office    Security Coordinator  OCA  Other    EES Information Office  Project File  OCA   Project Code  GTRI                                 M            m    Reports Coordinator  OCA       CA   3  3 76     GEORGIA INSTITUTE OF TECHNOLOGY  OFFICE OF CONTRACT ADMINISTRATION    SPONSORED PROJECT TER
81. R Page 242  When  fmt  sees such a construct in an input Lines  it ex   cises everything in between the brackets  including the  brackets themselvess and inserts the result of the function    or variable  nizable as  the string   O2   precedinc  meanings    in its placee  a variable or   Ctimel  in  the Left    The  number registers   arithmetic operations  formatter specifically  autaratically    are    for    At this writings  Sut the features just    orcbably remain so in future expansionse  ares    available functions and variab    Functions   Jate  jay  time    Variaotes   Cc  c2  in  Lin  Ln  LS         rm    mL    T    en B  as    pe  rm  tE  ti    Naturallys  a function  some textes    ten accumlators on  can be performede    the    functions and variables are  cescribed are rather stable    Les    Current  Current  Current    Current  Current  Current  Current  Current  Current  Current  Current  Current  Current  Current  Current  Current  Current  Current  Current  Current    6e8e3 Summary z Input Processing    Command Initial If no Cause  Syntax Value Parameter Break  enx file i next arg no  eso file   idnored no    Georgia Institute of Technolog    y    is left alone   just type  bracket makes    anything not recoa   To place    gt E time   s   the  it tose its special    which simple  They exist in the  implementation of    numbered sections and paraaraphs     still evolvinae  and will  At this points the  dates Cee 09 28 79  day of the weeks  ege friday  time o
82. RDS ARE STANDARD    0030     0051  VALUE OF FILE IDO IS  REPORT      0052  DATA RECORD IS REPORT RECORD      0033  01 REPORT RECORD     0054  CS   CARRIAGE CONTROL PICTURE Xe  Georg  a Institute of Technology COBOL Workbench    Appendix 2 EXAMPLE Page 150     0035  05  SALESMAN OUT PICTURE Xt5      0636  05 FILLER PICTURE XXX     0937  95  SALESMAN TOTAL  DUT PICTURE    4 1 34  9  99    0038  go   FILLUECT PICTURE X 8      0039  05  DISTRICT OUT PICTURE XXX     0040  DR PELLER PICTURE XXX     0041  05  DISTRICT TOTAL OUT PICTURE  3  4 2 4119   99    3042  Te FILLER PICTURE X 8      0043  05  FINAL TOTAL QUT PICTURE    5   24 439 99    0044     0045     6046  WORKING STORAGE SECTION     0047     0048  01 FLAGSe    f049  RS   MORE DATA FLAG PICTURE XXX VALUE  f tYES      0050  RB   MORE DATA VALUE   YEST    0051  BR  NO MORE DATA VALUE  HO fe   C052     0053  01 3 SAVE ITEMS     0054  05   PREVIOUS SALESMAN PICTURE X 5      0055  05  PREVIOUS DISTRICT PICTURE XXX     00656     0057  801 TOTALS COMPUTATIONAL     0058  G5   SALESMAN TOTAL PICTURE S9 8 2V99 VALUE ZERO    0059  05  DISTRICT TOTAL PICTURE SS R V39 VALUE ZERO    00860  05  FINAL TOTAL PICTURE S9 8 V99 VALUE ZERO    9061         062  PROCEDURE DIVISION    0063  PREPARE SALES REPORT    0064  OPEN LNPUI SALESFILES     0065  OUTPUT REPORT FILE    6068  READ SALES F DLE   C067  AT END MOVE  NO    TO MORE DATA FLAC       0058  MOVE ZERO TO FINAL TOTALa    0059  PERFORM DISTRICT TOTAL PROCESSING   0870  UNTIL NO MORE DATA  
83. RO TO FINAL TOTAL   PERFORM DISTRICT TOTAL PROCESSING  UNTIL NO MORE DATA   MOVE SPACES TO REPORT RECORD    MOVE FINAL TOTAL TO FINAL TOTAL OQUT   WRITE REPORT RECORDe  CLOSE   SALES FILE     REPORT FILE    STOP RUN     DISTRICT  TOTAL PROCESSING   MOVE ZERO TO OISTRICT TOTAL      MOVE DISTRICT TO PREVIOUS DISTRICT    PERFORM SALESMAN TOTAL PROCESSING UNTIL  OISTRICT IS NOT EQUAL TO PREVIOUS DISTRICT  OR NO MORE DATA     MOVE SPACES TO REPORT RECORDe  MOVE PREVIOQUS DISTRICT TO DISTRICT OUT   MOVE DISTRICT TOTAL TO OISTRICT TOTAL OUT     Institute of Technology COROL Workbench    Appendix 2 EXAMPLE Page 154    00090  00091  00092  00095  00094  00025  0009     00097  00098  0003939  0010C  900101  00102  00102  00104  00105  00126  00107  00102  001098  20110  00111  00112  C0113    WRITE REPORT RECORD   ADD DISTRICT TOTAL TO FINAL TOTAL     SALESMAN  TOTAL PROCESSINGe    MOVE ZERO TO SALESMAN TOTAL     MOVE SALESMAN TO PREVIOUS SALESMAN     PERFORM PROCESS AND READ UNTIL  SALESMAN IS NOT EQUAL TO PREVIOUS SALESMAN  QR DISTRICT IS NOT EQUAL TO PREVIOUS DISTRICT  OR NO MORE DATA     MOVE SPACES TO REPORT RECORD    MOVE PREVIOUS SALESMAN TO SALESMAN OUT   MOVE SALESMAN TOTAL TO SALESMAN TOTAL QUT   WRITE REPORT RECORD    ADD SALESMAN TOTAL TO DISTRICT TOTAL      PROCESS AND READ   ADD SALES DOLLARS TO SALESMAN TOTAL   READ SALES FILE  AT END MOVE  NO  TO MORE DATA FLAG      TWOLEVE LENGTH IS 000347  0502005 SCM USED    2e  e2  2 CYBER Output    41 420337  52 11105400  69 3154 6
84. S   e5 StatuSeeseeececceccecececeee  o  oscecoeto  etecoeso  tccs  csoestestcosccotcsciA    e4 User DocumentSesesccecccoeoccecoetooceececcoesc  cscecoeteetcoeoscoesececn S  el Original DUocumenteeeeececececececcceteoccocoesoceococec  c  cccsocceto A     2 Released Modificat  onseeeecsceseccececocsoccececccecc  ccceccce     ea Latest Version Of a Releaseeeeececccoecceccceccocccececco  ccce   o 4 Maintaining Comments on Documentseeeeeoecccecccccccecccco   5   s Working JocumentSeseeeescecececececcccecccececce  cscccoscccccec  ccocco DD   a 4 Management  ocumentSeeeeeeeecoccececeocscececeoc  ceooo  cscccccoes  ccsecccb  iL Oriainal RequirementSeeeseececcccoccc  cececoccccccccccccccoccesi      Georgia Institute of Technology   COBOL Workbench    Page vii    ee Current PFequirementsSeeeececccecceccccccseecceccccccccccebb   e 5 Change RequeStSeeccececoccceccecccccccccccccccccccccccecch    e 4 Approved ModificationSeeeececccceccceccecceccccecccecccccccch    e gt  Maitntaining Comments on DocumentsSeeeeeeoeccccceccceccocccti    ef Working DocumentSeeeeececcceccccccccccceccccccccccccecccei   e 7 Project Status and Controle eocececcccccccccceccecccecccoccecce C     e5 DOCUMENT PRODUCTIONeecoec00  920000992909999209090929990200090090c000 7  el Program ProductiONecceesveceseccccsesesecrseseesesesesene nd  ee Documentation Productioneeeececcceccecccecccecccococe  ccccocecece  el Text FormattereeeecccccccececoocccecceKcscccec tccccccccec    ec Printing ToolSeececcecceccecece  ec cc  occoec
85. Section 2 CAPABILITIES Page 18    2e2  2  1 Special COBOL Editor    The purpose of the special editor is to assist the program   mer in the entering  maintenances and updating of files  containing COBOL code  It is designed to Support the  interactive preparation of COBOL code utilizing a CRT    terminale    The special editor should have the following capabilities   1  Provide the programmer the capability to  enter COBOL code easily   2  Provide the capability to modify or extend  existing code filese  3  Organize and display the code entered in a  standard and easy to read format   4  Provide the ability to refer to code by Line  numbers as well as paragraph namese  5  Provide the ability to recatl and easily  modify modules of code such as file  definitions or a series of almost identical    repetitive calculations     222 2 Standards Enforcer    The purpose of the standards enforcer is to verify that the  programmer has adhered to the COBOLewbe syntaxe names  and    format standards     Georaia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 19    The standards enforcer must check that the following  requirements are mets  1  Code is written in a machine  and compiler   unique form  In the Workbenches this is ac   complished by verifying that all statements  are acceptable within COBOLewbe syntaxe  2  Naming conventions are followed correctly   At the Least  it is possible to determine  that a variable used in several code segments  maintains the s
86. THE DEMONSTRATION WORKBENCH    Canceptually the orcanization of the Demonstration workbench  is quite simple  It consists of the following major com   ponents    ls The PRIME 400 Computer System   2  The PRIMOS Operating System   3  The Georgia Tech Software Tools Subsystem   4    collection of Software Tools command files  The Last component above trensforms the total environment  from a general purpose support environment into a system  which will provide the specific capabilities of the COBOL  Proocorammer s workbencthe in this specific areas the reat  power of the Software Tools Subsystem proved invaluable to    the proiect team     A casual or  non systems programmer user of the Worktench  does not need to see the individual components Listed above   It is also highly unlikely in normal use that a casual user  would need to examine or understand the contents of the com   manc files or their operation  One of the extremely useful  features of the Software Tools Subsystem is the ability to  treet executable command files in the same manner as any  other files and if the user sittina at his terminal enters  the name of that files then it will be automaticatly  executede This allows us te define and utilize extremely  sinple anc meaningful command names for utilization by the    COBOL prourammere It is also the extreme flexibility    Georaia Institute of Technology COBOL Workrench    Section 5 IMPLEMENTATION Page 127    provided by the command interpreter that provides ar en
87. TURE X 5     09 FILLER PICTURE XXXe   05  SALESMAN TOTAL OUT PICTURE    4   54 1 9  990   03 FILLER PICTURE X a     cS SISTRICT QUT PICTURE XXX    Uo   EIBLER PICTURE XXX    05  DQISTRICT TOTAL OUT PICTURE  3 34    4  9 99   Gs  FEILLER PICTURE X R     05  FINAL TOTAL OUT PICTURE    4   4119 99     Reusable Code Modules Identified as    definet nlevels  MOVE 32 TO PREVIOUS lt   2    PERFORM 241 UNTIL     nievel     fifelselh2eee  2 IS NOT EQUAL TO PREVIOUS   2    Jdnl  Cifelsel   t3eges OR  3 IS NOT EQUAL TO PREVIOUS 13    dnt  Lifelse t 4355   OR  4 IS NOT EQUAL TO PREVIOUS   4  didnt    OR NO MORE DATA   Ydnt    Geora  ia Institute of Technology    COBOL Workbench    Appendix 2 EXAMPLE Page 147    2 5  WORKBENCH COBOL PROGRAM    Now that the preliminaries are out of the ways  the procram    mer can create a program in  Workbench Cobol   a combination  of COBOLececs and macro calls     Baseline Program    inctudetPROJLIS NLEVEL      FACTWOLEVEL    ENVIRONMENT DIVISION    INPUT OUTPUT SECTION    FILE CONTROL e  SELECT SALES FILE ASSIGN TO reader   SELECT REPORT FILE ASSIGN TO printer     DATA DIVISION    FILE SECTION   inctudeCPROJLIB FD SALES FILE   include CPROJULIB FD REPORT FILE     WORKING STORAGE SECTION     01 FLAGS   05    MORE DATA FLAG PICTURE XXX VALUE auotetYES    88 MORE  DATA VALUE auotetYES    BB   NO MORE DATA VALUE quote  Nd de  01 SAVE ITEMS   05  PREVIOUS SALESMAN PICTURE X 5    05    PREVIOUS DISTRICT PICTURE XXX   01 TOTALS comp3e  05 SALESMAN  TOTAL PICT
88. These commands will inform the Formatter as to  how the text should be printed  for examples what words  should be underlined or bold faceds what text should be  centereds how many Lines should be skipped between sections  of the texts etc  In additions the Workbench will provide  the means for defining documentation standards and siaina    documentors in following these standardse    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 55    FIGURE 2e7e2 1    PRODUCTION OF DOCUMENTATION      Documentor               5  Librarian                                                              ceo etal UTER  mrt                  l      Formatting   Libraries      Process    lt             l  Das  CERNE ec EREE              i     i    PEE       Formatted    1 Documents    Hon ete         Text   Command    Flow   Flow       Y Y                           dedo de d dh     o ooo Q hehehe dee e dee n    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 56  2elTe2  l Formatting    The Workbench will contain a Formatting Process which will  print documentation according to the users specification or  a Standard set of specifications stored in the General  Librarye The user will imbed commands in the documentation  text stored in libraries which tell the Formatting Process  what form of output is desired  There will be default set   tinas for parameters not specified by the user  Thus   the  Formatter will produce a formatted document
89. URE S9 8 V99 VALUE 7Z7ERQ   05   DISTRICT TOTAL PICTURE S9 8 V99 VALUE ZERO   05  FINAL TOTAL PICTURE SS9 8 V99 VALUE ZERO     PROCEDURE DIVISION   PREPARE SALES REPORT   QP N INPUT SALES FILEs  OUTPUT REPORT FILE   READ SALES FILE  AT END MOVE quote NO   TO MORE DATA FLAG   MOVE ZERO TO FINAL TOTAL   PERFORM DISTRICT TOTAL PROCESSING  UNTIL NO MORE DATA   MOVE SPACES TO REPORT RECORDe  MOVE FINAL TOTAL TO FINAL TOTAL  OUT   WRITE REPORT RECORD   CLOSE   SALES FILE    REPORT FILE   STOP RUN     Georgia Institute of Technology COBOL Workbench    Appendix 2 EXAMPLE Page 148    DISTRICT TOTAL PROCESSING    MOVE ZERO TO DISTRICT TOTAL     nlevelCSALESMAN TOTAL PROCESSINGe DISTRICT     MOVE SPACES TO REPORT RECORDe   MOVE PREVIGUS DISTRICT TO DISTRICTSOUT   MOVE DISTRICT TOTAL TO DISTRICT TOTAL OUT   WRITE REPORT RECORDe   ADOD DISTRICT TOTAL TO FINAL TOTAL     SALESMAN TOTAL PROCESSING    MOVE ZERO TO SALESMAN TOTAL      nlevelL CPROCESS AND READSSALESMANSDISTRICT     MOVE SPACES TO REPORT RECORD     MOVE PREVIOUS SALESMAN TO SALESMAN OUT   MOVE SALESMAN TOTAL TO SALESMAN TOTAL OUT   WRITE REPORT RECORDe   ACO SALESMAN TOTAL TO DISTRICT TOTAL      PROCESS AND READe  ADD SALES DOLLARS TO SALESMAN TOTAL   READ SALES F ILE  AT END MOVE quote  NO  TO MORE DATA FLAGe    Program Data    The data for this program is present in the file  sales      41 10019032  41 10000500  41 10010005  52 10011000  69 15097405  69 10006062  18 20020769  se 20018560  536 20019415  39 300122140  cn  35000
90. Usually designed with portability  as a major goal  Must be machine independent     See portables machine independent  COBOL wbcJ    Georgia Institute of Technology COEOL workbench            i ee              Appendix 1 GLOSSARY Page 138    Conversion  The modification of a program written in one  COBOL dialect for execution on a machine accepting a  different COBOL dialect     See portable  COBOLewbc     Delivered Program  The COBOLek program as it will run on  the target machine k in a production environment  The  crogram as intended for use by the customer or other  end user  At this point the program specifications are  fixed until the originat COBOlLewbc program is modified  and new COBOLek code is delivered     See revision     Dialects The particular COBOL syntax required by a civen  COBOL compiler  Alsos  those  lanauage features sup   ported by that compiler    CSee  COBOL ks COBOLewbcs machine dependent  compiler   dependent J    Document Control System  Maintains each program and each  revision or version thereof  as well as any related  text documents  online in an easily accessible and  easily modifiable forme    Element  A characteristic of the Language as defined by the  1974 COBOL standard     Feature  A characteristic of the Language as implemented by  a compiler on a specific machinee    Functional Testing  Testing to show the functional  equivetence of each of the family of COBOL 1 modules or  orograms derived from a particular COBOL wbc module or  progrem
91. able may be set to a single charac   ter or an ASCII mnemonic for a character to  be used as the  kill   or Line deletes    control character for Subsystem terminal in   put processing  The change in kill character  becomes effective only after the Subsystem is  re entered and the initialization routines  read the shell variable storage file     prompt This variable contains the prompt string  printed by the command interpreter before any  command read from the user s terminal  The  default value is a right bracket  J e     Qquote opt This variables if set to the value  YES    causes automatic quotation of each Line of  proaram output used in a function call  It  is mainly provided for compatibility with an  older version of the command interpreter   which performed the quoting automatically   The program  quote  may be used to explicitly    Georgia Institute of Technology COBOL Workbench    Appendix 4     search rule    COMMAND INTERPRETER Page 190    force gquotatione    This variable contains a sequence of comma   separated elements that control the procedure  used by the command interpreter to locate the  obiect code for a command  Fach element is  either  1  the flag   int   meaning the com   mand interpreter s table of internal com   mands     2  the flag    yar   meanina the  user s shell variables  or  7  a template  containing the character ampersand   amp  s mean   ing a particular directory or file in a  directorye In the Last cases the command  name specified by t
92. above for the  maintenance of the   aseltne Programe Howevers there will be  continual maintenance on compiler unique VERSIONS of the  program to provide immediate correction of errors jin the  desian of the program as well as in its automatic processing  by the Workbenche Such changes will be made directly on the  distribution VERSION of the program in COBOLek and will    produce MODIFICATIONS of VERSIONS     4 2 8 Summary    The best summary possible is a figure relating the various  activities described abovee This information is provided in    Figure 4e2e3 le    Georgia Institute of Technology COBOL Workbench    Section 4 UTILIZATION Pace 101    FIGURE 442548 1    UTILIZATION OF THE COBOL PROGRAMMER S WORKBENCH   Notes on following pages     Programmer      Reusable Module  1   System Analyst     gt   COBOL                2 2 2    2 22      Editor      mee     Program  SSS S   S esses dei c    Complete     Modules  1   2    Program  1   2   AE epa V emp cme a ED ae eniap V CHEE GEED ORD  i        Personal     Program      Library         gt   Processor                nsQ      3       Baseline Pgm          Project    rM   Library   lt        i    Program   Reusable j      Processor  4       2       PEERS       4    Modules  eee ee  i  TEO VECES ATI CEES GED  V Ean ee FE EED E oy qUUED eee O ae E EA E    i      Program   Reusable   Application      Processor             i Library    lt    Systems i  5    Modules      Programmer RENE                      i    SETI  ERC Sa a 
93. age and placed in  the General Library or one applicable to a specific applica   tion area or project under developmente Since similar files  may exist tn all of these various Libraries   the order in  which they are searched is very importante This topic is    also discussed belowe    2e2  2  3 1 Reusable Modules    An exemple of the use of reusable modules may be seen in the  very Large class of problems in which a transaction file is  processed against a master file to produce a report  The  mainline processing may be performed by the followina    module     Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 21    OPEN INPUT MASTER F ILE  TRANS FILE  OUTPUT REPORT FILE    PERFORM PROCESS TRANSACTIONS  UNTIL NO MORE TRANS    CLOSE MASTER FILE  TRANS FILE  REPORT FILE    STOP RUN   Once this module of code jis thoroughly tested4 it can be  copied from the appropriate Library for use without  modification in similar programs  Since this module is  Logically quite simple and relatively shorts it may appear  easier to write it again for each new program than to expend  the additional effort required to check out the code and  catalog it in a Library  The major advantage of considering  this short program segment as a reusable module is thet  these nine Lines of code can be included in some Larger    module by means of a simple macro calle Thus many errors     even simple typographical onese are avoidede    Continuing the same examples other reusable 
94. age headinwe   om3  N Nad Nz2 no Set bottom margin  before page footina    ema  h N 3 N  3 no Set bottom margin  including and after  page footinge   epo  N N G N 0 yes Set page offsete   erm  N N 60 N 60 yes set right margin    eti  N N 0 N 0 yes Temporarily indent    Left margine    6e5e HEADINGS   FOOTINGS AND IITLES    6 5 1 Three Part Titles   A three part title is a Line of output consisting of three  segments  The first segment is Left justified4  the second  is centered between the Left and right marginse and the  third is riaht Justifdied  For example    Left cart center part right part    Georgia Institute of Technology COBOL Workbench    Appendix 6 FORMATTER Page 223    is a three part title whose first segment is  left cart    whose second segment is  center part   and whose third sea   ment ts  right part      To generate a title at the current position on the pages the   title  command is available     etl  left part center part right part    In facts this command was used to generate the previous  example  The parameter to the title command is made up of  the text of the three parts  with each segment enclose  within a pair of delimiter characterse Heres the delimiter  is a slash  but any other character can be used as Llona as  it is used consistently within the same commande  If one or  more segments are to be omitted  indicate this with two ac   jacent delimiters at the desired position  Thus     etl    Paae 1     specifies only the third segment and would p
95. age is reached   AS with the tl commands the  tt  may be used to access the  current paye number  As an illustrations the following com   mancs were used to generate the page headinas and footings  for this auide     ehe   Fmt  Userts Guide     efo     4        6 5 5 Summary z Headinas  Footers and Iiiles    Command Initial If no Cause   Syntax Value Parameter Break Explanation   efo  i c r  blank blank no Set running page  footince   ehe tlecr  blank blank no Set running page  headinge   elt  N Nz60 Nzen no Set Length of  header  footer and  titles    etl  L c r  blank blank yes Senerate a three    part titlee    6  6   TABULATION    Geora  a Institute of Technology COBOL Workbench    Appendix 6 FORMATTER Paae 235    6  6  1 Tabs    Just Like any good typewriters   fmt  has facilities for  tabulatione When it encounters a special character in its  input called the tab character   analogous to the TA key  on a typewriter   it automatically advances to the next out   put column in which a  tab stopt  has been previously sete  Tab stops are always measured from the effective Left    margins that ise the Left margin plus the current incenta   tion or temporary incentation value  Whatever column the  Left margin may actually be ins it is always assumed to be    column one for the purpose of tabulations    Originally    a tab stop is set in every eighth columns start   ina with column nine  This may be changed using the  ta     command    eta   col     col  ese    Each parameter s
96. alent to        1 ed file    Georgia Institute of Technology COROL Workbench    Appendix 4 COMMAND INTERPRETER Page 180    Now that the syntax of   node   has been covered    just two  further considerations remain  Firsts the nature of an  executable program must be defined  Seconds the problem of  execution order must be clarified     In the vast majority of cases  a Xnode   is executed by  bringing an object program into memory and starting ite  However  the  lt command name   may also specify an internal  commands a shell variables or a command filee Internal com   mands are executed within the command interpreter by the in   vocation of a subroutinee When a shell variable is used as  a command  the net effect is to print the value of the  variable on the first output ports followed by a newline   If the filename soecified is a text file rather than an ob   ject files the command interpreter  guesses  that the named  file is a file of commands to be interpreted one at a time   In any cases command invocation is uniforms and any  lt i o  redirector   or  lt pipe connection    given will be honored   Thuse it is allowable to redirect the output of a command  files iust as if it were an object programe or copy a shell  variable to the Line printer by connecting it to the spooler  through a pipe     As mentioned in the section on Cnet gt sSs the execution order  of nodes in a  lt net gt  is undefined  That is  they may be  executed serially in any ordere concurrentlys or even
97. all of the tools necessary to produce COBOL    code which is both portable and reusable     Basically  the Program Processor in the Workbench can be  used to expand calls to reusable modules into in Line code  and to translate programs written in COBOLewbc into programs  which will execute correctly on a particular    compiler machine environment     Georgia Institute of Technology COBOL Workbench    Section 5 FUNCTIONAL COMPONENTS Page 64    3053 DOCUMENTATION SUBSYSTEM    As contrasted to the various steps involved in programmings  the three aspects of documentation     preparations controls  and production     do have rather clear divisions and can be    discussed separately     Georgia Institute of Technology COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 65    304 DOCUMENTATION PREPARATION    To encourage the production of complete and up to date  documentation  the Workbench provides an environment well  suited to the documentore This environment includes toolSs  Libraries  and a set of documentation format standardse A  major portion of this environment is provided by the Text  Editor which serves as the user s primary means for creating    and modifying documentation     Se el Documentor s Environment    The Workbench provides an environment for the documentor  which is designed to make the documentation task as easy as  possible  This encourages the documentor to maintain com   plete documentation and to keep this documentation up to   date  The documentor s
98. ame data type throughout its  uSee  3  A check is made for clerical errorss such as  the misspelling of reserved words or of  variable names  Following thiss the code is  processed through a  pretty print  program to    guarantee clerical uniformity     2  e2  2  5 Library Support    There are a number of different  Libraries  utilized by the  Workbenche and several of these collections of files may be  utilized by the same Workbench activity  A complete discus   sion of the various Libraries and their components will be  Qiven later after more of their uses have been covered  As  far as supporting the COBOL Programmer s Environment is  concerneds it should be obvious that some of the files that  should be available are    1  Blocks of code providing definitions of    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 20    characteristics applicable to a specific  Program under development such as the File  Definition statements     2  Blocks of code providing a framework for the    2    evelopment of a special or tailored version  of a commonly encountered function such as  the File Definitionss an edit routines a  repetitive calculations etc    3  Larger blocks of code that are treated as   open subroutines  and inserted in the  program under development as in L  ine code     4  atce    These files might have been developed by a programmer for  his own use and kept in his private or Personal Librarys or  they may have been developed for wider us
99. an entry  Now there  is nothing that prevents us from having within a directory a  file that is itsetf a directory  This phenomenon is known  as  nestin   of directories and may be carried out to any  depths aivina rise to a hierarchical structure     dirl  DO PREIS DORT RE ERE VERE RR NER RR RE              LEE QoS filel file2 dir3 filed  N er   Se Rape ONC ree             file4 dir4 diro files dir        file4 filed    It should be noted that while the names of all files within  a clven directory must be unique among themselves  it is  oerfectly leaal to haves in separate directories  two dif   ferent files with the same name  Soe in the example  abovee  file  that resides within dir4 is distinctly separate from  file4 that resides within dir2e    At the topmost Level of the hierarchy is the master file  directory  MFD   which always begins at a fixed Location on  a civen storage volume  In addition to several entries  required by the systems the NFD contains any other direc   tories and or ordinary files that an installation may see  fit to maintaine  Normallys a directory is established  within the    FO for each individual user of the systeme Each  such directory is known as a user file directory or UFD       Now that we have a structure containing multiple nested    directories and potentially duplicate file names  the  problem arises as to how a specific files say the one named   fileo  in the examples is referenced  or worsees how one    file named  filea  is referenc
100. anation  so look this over once and move one     The pattern that may appear within slashes  or backslashes   is called a  regular expression   It contains characters to  Look for and special characters used to perform other  operations  The fotlowing characters   X         G8        have special meanina to  ed        deginning of Line  The  X  character appearing as  the first element in a pattern matches the begin   nina of a linee It dis most frequently used to    Locate Lines with some string at the very begin   Ning  for examples      XThe     finds the next Line that begins with the word   The   The percent sign has its special meaning  only 1f it is the first element of the pattern   otherwise  it is treated as a Literal percent  S172ne      Any character  The question mark  7  in a  regular expression matches any character  except a  Feginning of line or a newline   It can be used  Like this     a 5   to find strings like  a b    a b    Georgia Institute of Technology COBOL Workbench    Appendix 5   EDITOR Page 201    a b  arbitrary    Howevers nw is most often used with the   closure  operator      see below        Fnd of Line  The dollar sigon appearing as the  Last element of a pattern matches the newline  character at the end of a Line  Thuss     today      can oe used to find a Line with the word  today   at the very end  Similar to the percent sians the  dollar sign has no special meanino in positions  other than at the end of a patterne    LJ Character classes 
101. ance aroup of the  programming organization may work on more  than one system    6  The individuals that develop the system are  not necessarily available for for its  maintenance  most oftens they will not be  availablee   7  The data processing systems will be executed    on a variety of hardware configurations which    Georaia Institute of Technology COBOL Workbench    Section 1 INTRODUCTION Page 6    may not utilize COBOL systems identical to  that utilized by the development agency    8  The design cycle for a new system or a major  modification to an existing system is ex   tremely Long and costly    9  The time pressures involved for the delivery  of a new system usually preclude being able  to produce a trial designe   Figure 123 1 illustrates the meanings of the terms used in  this report to describe the various programs existing in the  operating environment        RELEASES  VERSIONS   and    MODIFICATIONS     le 5   1 Multiple Execution Environments    An extremely important characteristic of the environment  projected for the utilization of the COBOL Programmer s  workbench is the requirement that the COBOL data  processinc  systems developed be capable ot balne executec on a  wide   variety of computer systems  The variety of execution en   vironments may include totally different systems supplied by  different hardware manufacturers as well as variations in  the operating systems under which ideniical hardware systems  may be executinoa  The different environmen
102. anded into their related  definitions     See macro  module  CSee also Appendix 73    Maintenance  The changes necessary to keep a delivered  program executing correctly according to the original  specifications despite discovery of errors and changes  in machine environmente  CSee modification     Georqia Institute of Technology COBOL Workbench    e aile Gi  o des TL or    Appendix 1 GLOSSARY Page 140    Modification  The changes necessary to change the specified  behavior of a delivered programe   See maintenance  revision     Module  A program unit which performs a single function and  is expressed ina reusable form so that the same code  may be used to perform the same function wherever it  appears in the same program or other programs  Written  in COBOL ewhHCe   See macro     Module Interface  The standards governing module calls and  interrelations between the segments resulting from  modular expansion into the COPOLewbcec program  For the  purposes of the Workbench  all modules are expressed as  macros and module usage must meet the same standards as  macro usages    Nonportable  A program written to fit a specific machine  environment anc incapable of running without    pa sumi m  HR  OS GENERAR Gu defen AEE ely  nijunb vA     See portable     Portable  A program written to run in any machine en   vironment and on any compiler  Generally  this is ac   complished by restricting the program to the use of  those hardware features which are common to all of the  machine e
103. any featuresy such as  automatic margin alignments paragraph indentations hyphena   tion and pazinations that are designed to greatly ease an  otnerwise tedious jobe    It is the intent of the next few sections to familiarize the  user with the principles of automatic text formatting in  general and with the capabilities and usage of    fmt  in  particulars    6 1 2 Usage     Fmrt  takes as input a file containing text with formatting  instructions  It is invoked by a command with various op   tional parameterss discussed below  The resultant output is  appropriately formatted text suitable for a printer having  backspacina capabilities  The output of  fmt  is made  available on its first standard output port  and so may be  placed in a files sent to a Line printers or changed in any  of a number of waySs simply by applying standard Software  Tools Subsystem 1 0 redirection     when  fmt  is invoked from the Subsystems there are several  optional parameters that may be specified to control its  operatione The full command Line syntax is    fmt C  s J C  p amp first  L   Last    1     lt file name gt       A brief exolanation of the cryptic notation  the items  enclosed within sauare brackets   LJ   are optional    they  may or may not oe specified  items enclosed between braces         may occur any number of times    including zero  items  enclosed in angle brackets    lt  gt    designate character  strinas whose significance is suggested by the text within  the bracketss3 e
104. as which indicates that  the delta of interest is to be danored in the production of  a revisions must be constructed  Thuse one can be assured  that no change can be Lost  which implies that any ac   cidental damage done to the module can ultimately be correc   ted  This then reduces the problem to one of preventing  tamperinge Obviously  tt is impossible to be certain that  the changes being made are valid  ThuSe protection must be  Linited to screening the users trying to make chanaes to   tOodules  This can be implemented by associating a bit  matrix with each module CRochkind 19751  Qne dimension  represents the names of the programmers allowed to modify  the modules and the second dimension represents the  revisions of the modules  Thuse each programmer can modify  only certain modules and certain revisions within those  modules e    3 2 5 Stamping an Identification on a Module    In addition to protection of moduless it is necessary to  stamp an identification on the modules  This should include  the release numbers version numbers date and time the module  was   Last modified  the names of the programmers responsible  for the module  and the status of the module  productions  tests development   It has been suggested that this in   formation be incorporated into the module in such a way that  the Load module witt also contain this information  Rochkinc  1975   In COBOLe this information could be stored jin the  working storage section  In fact by using a standard macr
105. atters   called   fmt    If you have several documents to be prepareds it is  very inconvenient to have to type the ffos  command for each  on  e A special technique called  iteration  allows you to   factor out  the repeated texte For examples    1 fos  filel file2 files   is equivalent to      fos filel    fos file2  1 fos file3    The arguments inside the parentheses form an    iteration  aroupe  There may be more than one iteration group in a  commands but they must all contain the same number of ar   gumentse This is because each new command Line produced by  iteration must have one argument from each groupe As an il   Lustration of this  note that       echo print fos  filet 1 2 3   is equivalent to   j echo filel   I print file2   1 fos file3  Iteration is performed by a simple text substitution  if  there is no space between an argument and an tteration group  in the original commands then there is none between the   r   gument and group elements in the new commands   Thuss    FILETI 2 3     is equivalent to    Georgia Institute of Technoloay COBOL Workbench    Appendix 4 COMMAND INTERPRETER Page 166    filel  file 2  files    Iteration is most useful when combined with function calls   which will be discussed Later     4 1 7 Sources and Destinations of Data    Control of the sources and destinations of data is a very  basic function of the command interpreters yet one that  deserves special attention  Every program and command in  the Subsystem can gather data from c
106. atures    Features of the Source Control Facility include  1  Creation of Module Source File   2  Updating of Module Source File by inserting   djJelLetings and restoring source Lines accord     ina to information stored in the fite or    Georaia Institute of Technology COBOL Workbench    ee Am        Section 3 FUNCTIONAL COMPONENTS Page 83    provided as part of the correction set   3  Ability to completely and permanently remove  correction sets from the Module Source File   4  Generation of a module version correspondina  to the modifications desired by the program     mer and expressed in the correction sete    5  Generation of a news updated Module Source  Filee  6  Comprehensive Listings noting any changes    made to the Module Source Files as well as  the status of all source Lines contained in  the file Cinserteds deleteds modified     7  The ability to group modules together into  larger units and to perform the above func   tions on these Larger units    In order to implement these featuress it is necessary to as     sign each source Line a unique identifier     5e9e2e5 Status    The Source Control Facility is not yet fully implemented   howevere the facility parallels a number of commercially    available tools  such as CDC s programs UPDATE and MODIFY     3 5 5 User Documents    Among the documents maintained by the Document Control  System are user documents  Examples of this group of    documentation are user manuals  reference manualse instruc     Georgia Insti
107. cale  The  p  command therefore accepts  Line numbers  that in   dicate which Lines to print  Try the following experiment       ed file  lp  The quick brown fox  3p  the Lazy doge  le2p  The quick brown fox  jumps over  le3p  The quick brown fox  jumps over  the Lazy dog     Georgia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 196     Ip  tells  ed  to print Line 1   The quick brown fox      3p  says to print the third Line   the Lazy dog  0    1   2p   tells ted  to print the first through the second Lines  and     le30  says to print the first through the third Lines   Suppose we want to print the Last Line in the buffers but we  don   t know what its number ise     d  provides an abbrevia     tion to specify the Last Line in the buffer      p  the Lazy dog     The dollar sion can be used just Like a number  To print  everything in the buffers we could type     1  p  The quick brown fox  jumps over  the Lazy doge    If for some reason you want to stop the printing before it  is done  press the BREAK key on your terminale If you  receive no response from BREAK   ed  is waiting for you to  enter a commande Otherwises fed  will respond with    2    and wait for your next commande    5 1 8 More Complicated Line Numbers     Fd  has several ways to specify Lines other than just num   bers and  t   Try the following command     p  the Lazy doge    Fat prints the Last Line  Does fed  always print the Least  Line when it is given an unadorned  p  command  NOe T
108. cecccccol  l  a3 Writing text on a file   the Write commandeeeeeccccccccl  2  e   Finishing up   the Quit commandeeeeecccccccccecccccccceccl S  05 Reading files   the Enter commandeeeeeeccccecccceccecccesccl 2S  ef Errors   the Query Commandeeeeeececececcecececccocseccesc ceocecol   of Printing text   the Print commandeseccccccvescccsessveel ID  e8 More Complicated Line Numberseeeeeecccecceccecceccccecccocccecl6  e 9 Deleting L  neseeeoecceccecocececececcececccececccccccccosccccececl 0   10 Text PatternseeccccceccocccceceKcooccccocecccc    ccsoteccececcccccel 7  ell Making Substitutions   the Substitute commandeeeseecce2  03  el2 Line Changes and InsertionseeeececceccccecccceccceccecceccceZ20S    15 Moving Texteoesceceoocccecoecceceeccceocecececcecctcccccccccceccececect  el  Global Commasandseeeeccccccceccc  occccccccecccccccececccec2b  e15 Marking LineSeeeccceccececcceeccccocceeccececcoeccececccc2     16 Undoing Things    the Undo CommandeeeeececcccccceccceccccocU9  el  Summalyeseeeececcecoececeeceecocnsootsocsoectooccoeccsccoccosccccoecccsosccli   ol Command Summaryeseeeeeecececcecceccceccececcccccccceccocccecll   e2 Line Number ExpressionSeeeeccoeccccecoeceoececcocvceocceccoece  cccecocl5   e5 Pattern Flementseeeoecccccecoeccee ccccecececccccceccccccccccecccl   oe SLeeeccecccocecoceeeenooctiooeceeoc  ehoooectosoeccsccccccccccooccecccecscecl    el Terminals Supportedeceeeccecoeccecccoceecceccocoeccecocesccoe2lP   e e Editing OptionSeeeeecccceccceccccccecccccsccceccccceccscc
109. co0069000600009909090000990920999099990991   el Overview of Program Preparationeeeeececcccccceccccccccccecl2  e2 PFrogrammer s Environment eeeececececceccecccceccecoccccecc  cceccl   el Special COBOL Editoreeeseccccccceccccccoocceccccccccccecccel    e2 Standards Enforcereeeeecececcccecccecceececeo ccccceccccccccccel    e 5 Library SuppOrteseeesecccececececcecccccecccciccccccccecteccec7   el Reusable ModuleseecsceeccccoeccecccccKcosocccceccccccccceccecl   ec Program Development Skeletonseeesececcccecccccccccoccccccc   e  Use of LibrarieSeeeceecccccecececceeccccccccceccccccciccocsocJ   eS Transportable Baseline ProgramseeeeeecccccccccccccccccceccJ    4 Workbench COB  OL   eoececece0o200c0c9090900009c20090990992090009029099       e 5 Program Processingeeeeeeececcecceceeececoccecceco  ccccecccceoU  el ExpansiOneeeeecscccccececececce  cces  cscccecoocceecoccoccccccccccccoDl   el Expansion Utilizing the Generat LibraryeeeeeeecccccceSjl   e2 Expansion Utilizing the Application L  ibraryeseeeeeccc Sl   eS Expansion from the Project L  ibraryeseeececccevccccccccce2    4 Expansion from the Personal L  ibraryeseeeecceccecccecccceJ2   eo Expansion from the Test Libraryeseeeececscecccceccccccccce    e2 Build ProgramSeeeeeeeeecececeeceecce    eeo  occeocccc  tcosscoceecso JD   e 5 Transport TOlnauesvedoteoteo  6d e Ue V9     999 52SSFPCSATESE XR    Ny SS D   e6 Hreadboard ProgramSeeeeeeeeeccececeoececeoeceecccecsossecscccecsece         PROGRAM TESTING  a2eeo  6c0620202000929292990922920999
110. coccecccl   U  eli VariablesSeseeeeecoececoeccecoeoocec  ecoeo  ocecscotcoceecc  eocoeoeccceccccce  oesoccl l  ele ConclLusSionesccesesesveevesresesseersesesesevecesesnsceeoeaslie2  e2 SUMMARY OF SYNTAX AND SEMANTICSeosoe  ce0000062920902922999 00922172  el Se reise ee ee ee ee ee ee ar ee ee eee ae ee er ee a ae  e2 PUO  9 2 8 99 299 9952521092224 453 VAR N94  vss iv vs ll    235 NodeSeseeeeecccoececco  oceeocooceccooesococeeeosescceietccc  ococcco  osce  ol h    Geora  la Institute of Technology COBOL Workbench    Page 1x    04 CommentsSeeeeeececcecececececececceocccecceccccctececoseccececceccll  oS Variableseeeeeecececcececccecececccceccceccecceccecccecccccescecclhl  eG Iterat  Oneeeeccececcoccceoececceeecocococccce  oscveeccccccl32  eo  Function CallseesoccsccccecccecceccccccccoccececcccccccceccccclP S  e amp  Conclusioneeeeccececcececcccetocceocectcecoceeicosteccesccecccecccl    eS APPLICATION NOTESeooo020c000609090009009022060909009   00900009000c0ccc1D4  el Basic FunctionSeeeeeccoccecocoeccecceceececcecccecctcccooncoeocceccececl34  e2 Shell Control Variableseececcceccccccceooocccceccccceccecccecl3    oS Conclusioneeeeececoecoecceccecoeceo  ceocccececcecocscccecotcetcecco  occcoeccc  FD  Appendix Se EOITOReoeoeceo0c  00  9000909029909090990909099909209200600c0ccco926  1 1    ol EDooocccecececcceKnseeeeeooceecscococsccetocec  ecececcceeeccccececsccll l  el Starting an Editing SOSSTONeececvcscssesesecseossvceseseel Tl  e2 Entering Text   the Append Commandeeeeeeeeecccccec
111. command with the  page number  command    epn  N    The next page after the current ones when and if it 3 occurss  will be numbered  N  No break is caused     The Length of each page produced by  fmt  is normally 66  Lines  This is standard for eleven inch paper printed at  six Lines per inch  Howevers if non standard paper jis used  the printed Length of the pace may easily be changed with  the  paae Lenath  command    which will set the Lenath of the page to  N Lines without  causing a obreake    Finally  if it is necessary to be sure of having enough room  on a pages say for a figure or a graphs use the  need  com   mand    ene M     Fmt  will cause a breaks   check if there are N Lines Left on  the current page andy if sos will do nothing more  Ather   Wises it will skip to the top of the next page where there  should be adequate room     6 5 5  No space  Mode     No spau  ce  mode is a feature that assists in preventing un   wanted blank Lines from appearinas usually at the top of a  page  When in effect    certain commands that cause blank  Lines to be generated   such as bp  ne and Spe are suppres   Sede For the most parte   no space  mode is managec  automatically  it is turned on automatically at the top of  each nage before the first text has appeared  and turnec off  again automatically when the first tine on the page is writ   tene This accounts for the suppression of bp commands at  the top of a page and the discarding of excess blank Lines  in sp commands     Ge
112. compiler independent programs     Input to the program expansion process consists of proaram   mer specification of the COBROLewbe text for the modules the  name of the modules and the name of the Library in which the  module is to be found  The output is a program module  or    complete programs meeting the standards of COBOLewbce    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 31    Expansion may be performed relative to one library at a    times or to any combination of Libraries     The General Library will be available to programmers on all  projects and in all application areas and will include  general purpose modules which are frequently used  These  modules might include the following      data input editing     file structure definition      report generation    Use of these general purpose modules will eliminate much  repetitive coding  The possibility for error will also be  reduced greatly through two causeSe Mistakes caused by  clerical error will be Less frequents since fewer Lines of  code will be entered  More significantly  the General  Library will include only modules that have been thoroughly    tested  reducina the possiblity of incorrect code     The Application Library contains modules developed for an  applications area such as inventory or payrolle These  modules will be thoroughly tested before addition to the ap   plication Library  The application Libraries might include    the following     Georgia Institute of T
113. cost is the utilization of a breadboard programe or system   that provides the basic functionality of the desired system  without the high expenses associated with detailed and com   plete development  This breadboard program or prototype  could then be demonstrated to the proponent organization and  feedback on the design would be obtained at a much earlier  stage and at a much Lower cost without complete development    being reaquirede    The characteristics of a breadboard program prototype system  would be that most of the desired functionality would be  present in the systemi however  the performance of the    system would certainly not be optimized or even  well    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 37    engineered   To the maximum extent possibles the breadboard  system would be assembled out of reusable modules of code  which provide the functionality desired  or close ap   proximations thereto  The overall objectives of breadboard   ing are to provide quick and Low cost prototypes of systems  under design so that meaningful feedback may be obtained at    the earliest date possible     Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 38    2  5 PROGRAM TESTING    The modular approach to the preparation of complex systems  significantly aids in the development of quality programs   While it ts true that in most Large systems absolute program  accuracy can only be approximated  the separate testi
114. d the  scope of this projects namely the problem of  verification  If we are to draw any useful  conclusions from our testina of a  OBOL wbc  program we must be able to verify that a  particular COBOL k program is functionally  identical to the original COBOL wbc program   ALL that we are able to show without dispute  is that a particular COBOLek program was  derived  fees as a macro expansion  from the  original COBOLewbc programe This is not suf     ficient to demonstrate correctness     4  Generate test datae      hat we want here are a set of routines to  j3enerate random data meetina a aqiven data  specification  These routines    could be implemented in any  Language  need not be written in    COBOL     SGeoraia Institute of Technology COBGL Workbench    Section 4 UTILIZATION Pace 111      could be implemented either as  modules  if written in COROLewbDe   or as separate routines Cin which  case there would be at least one  routine for each COBOL 1      would he stored in TESTLI       accept as input COBOLewhe cata  declaration divisions     produce as output random cata  meetine the input data ceclera   tion and the file structure  requirements of the given target    machine    5  rxercise the program Logic     In other words  execute the COBOL 1 orocram  developed in steps 2 and 3 above usine the  random data from step   as inpute  amp  trace  routine to ensure that every Logic branch is  tried might be useful here  Another useful  approach would be to make use of the
115. d the command    esp 3    is givens four blank Lines will be generatede If the value  of N calls for more blank Lines than there are remaining on  the current pages  any extra ones are discard  de This  ensures thate normally  each page begins at the same  distance from the top of the paper     6 5 2 Page Division     Frt  automatically divides its output into pages  Leaving  adequate room at the top and bottom of each nage for runnina  headings and footinase There are several commands that  facilitate the control of page divisions when the normal  behavior is inadequatee    The  begin page  command  ebp  h    causes a break and a skip to the top of the next page  If a  parameter is givens it serves to alter the page number and  so it must be numeric with an optional ptus or minus signe  If the parameter is omitted  the page number is incremented  by onee If the command occurs at the top of a page vefore  any text has been printed on its the command is ignored  ex   cept perhaps to set the page number  This is to prevent the  random occurrence of blank pagese    Georgia Institute of Technology COBOL Workbench    Appendix 6 FORMATTER Page 228    The optionally signed numeric parameter is a form of  parameter used by many formatting commandse when the stan  is omittede it indicates an absolute value to be used  when  the sian is presents it indicates an amount to be added to  or subtracted from the current value     The paoe number may be set independently of the  begin page   
116. d type of  these capabilities which must be provided in order to permit  the develooment of useful COBOL programs is not yet knowne  A number of COBOL capabilities  such as data declaration   are assumed to be necessary  these capabilities will be  included in COBOLecemoe Other capabilities wili be added to  COBOLedemo as their usefulness is demonstrated  The    eventual product of this process will be COBOL wbce    For the purposes of this reports only a casual distinction  is made between COBOLewbc and COBOLedemoe COROLewbc is used  whenever either  COBOL demo or COBOLewbc might be meant    For examples at different stages in the Workbench s  development   COBOLedemo is used only in reference to  developmental activities which will be over when the Work     bench system is complete       2e1     COBOL Screen Editor    In addition to the standard features available in a com   prehensive screen editor  line at a time deletions  ad     ditions  search   scan and substitutions  and full screen    Georgia Institute of Technology COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 61    display of adjacent text    the screen editor utilized in the  programmer s environment would also contain features that  are specifically tailored to the preparation of COBOL  programs  These features would be capabilities such as  automatic formattings automatic searching for sections of    the program by namee etc     Se2ele4 Standards Enforcer    The most important standards enforcer is ob
117. dentifier 1   titeral 1 2          identifier 2      titefal 2 3 3 L 5     identifier 3   ts tral 3 3 eee  GIVING identifier m C ROUNDED 1 C ON SIZE ERROR    Imperative statement   i    a  As in 74 COBOL  4 but cannot have multiple receiving  identifiers or ADD CGRRESPONDING     b  As in 74 COBOLe  C  As in 74 COBOL     d  As in 74 COBOL   but can only have one identifier  after the word TO     Georgia Institute of Technology COBOL Workbench    Appendix 9 COBOLewbe Page 273       As in 74 COBOL   but can only have on identifier  after the word GIVING   f  The CORRESPONDING feature is not available   g   h  As in 74 COBOL     1  As in 74 COBOL     COMPUTE  COMPUTE identitier 1 E ROUNDED J C    identifier 2 C ROUNDED  J J eee   ar  thmetic expression E   ON SIZE ERROR    imperative statement    1  74 COBOL    a  Tdentifier l   identifier 29 ee  s must be elementary  numeric items or elementory numeric edited items     b  This statement allows the user to combine arith   metic operations without the restrictions on com   posite of operands and or receiving data items im   posed by the statements ADDe SUBTRACTe MULTIPLY s   and AIVIDE     2  PDP 11  a  As in 74 COBOL     b  The lengths of the integer and decimal components  of an intermediate result are determined by an al   gorithm which uses the lengths of the operands in  determining these values  The sum of the Lengths  of the integer and decimal components must be Less  than 18     3  PRIME    COMPUTE identit t ROUNDED J   a
118. develop some specific  COEIL  pbroaurammer  s environment including specialized tools  such as customized screen editors  copny from Library  cabpabilitioses programming skeletons  fitl in the blanks  techniquess etces and to try out these specialized tools    with COBOL proorammers in an operation environmente    As has been well argued earlier in this reports there is no  desire to design a new Language for the use of proarammers  preparing transportable COBOL programs  Rather    what is  desired is a Language that is as close as possible to stan   dard COBOL with deviations being made only to accomodate  those absolutely essential requirements necessary for  portablity  Our studies during this projects howevere in   dicate that it does not appear feasable to include the  entire COBOL standard in Workbench COBOL  It does not ap   pear to us that such an extensive Language is at all neces   Sarye The real goal in the design of workbench COBOL is to  provide a Language powerful enough and rich enough so that  experienced COBOL programmers can easily and efficiently im   plement operational COBOL data processing systems  There  have been a number of studies prepared on the development of  portable COBOL subsets  Howevere it should be emphasized  that that is not the aporoach beina taken here  What is be   ing cone here is preparing a  complete  COBOL Language where  those features that have to be tailored toa specific    compiler unioue environment are handled by the  proaram 
119. director gt s mentioned aboves there  are two Lesser used redirectors that are useful  The first  appends output to a files rather than overwriting the file   The syntax is identical to the other output redirectors with  the exception that two funnels  5 gt   are used  rather than  ones For examples    6 gt  gt stuf f    causes the data written to output port 6 to be appended to  the file  stuff    Note the Lack of spaces around the  redirector  a redirector and fts parameters are never  separated from one anothers but are always separated from  surrounding arguments or other texte This restriction is  necessary to insure unambiguous interpretation of the  redirectore  The second redirector causes input to be taken  from the current command source file  It is most useful in  conjunction with command files  The syntax is similar to  the input redirector mentioned aboves but two funnels are  used and no filename may be specifiede As an examples the  following segment of a command file uses the text editor to  change all occurrences of  March  to  April  in a given  file      gt  gt  ed file  a March sf  April     W  q    When the editor is invoked  it will take input directly from   the command files and thus it will read the three commands   placed there for ite   The  command source  and  append  redirectors are subject to   the same resolution of defaults as the other redirectors and   Kpipe connection  s  Thuse in the example immediately aboves   gt  gt  ed file    is equiv
120. dition to the text formatter  other tools directed  specifically at the production of printed material are  needed in order to produce documentation  Among these are    tools to select the range of pages and number of copies of    Georgia Institute of Technology COROL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 92    the document to be printed  The documents may be printed on  a variety of devices including Line printers and hard copy  terminalse Thus  there must be tools to take the output  from the text formatter and convert it to a form appropriate  for the device on which it is to be printed  For examples  documents to be printed on a Line printer need to convert  all back spaces into separate tine outputs with a forms  control that does not advance the papere These tools must    interface with the other tools available on the Workbenche    Georgia Institute of Technology COBOL Workbench    Section 4 UTILIZATION Page 93    SECTION 4    UTILIZATION OF THE COBOL PROGRAMMER S WORKBENCH    4 1 GENERAL    As is perhaps evident from Section 34 the Workbench  conists  of only a few  general purpose  tools that are utilized in   specialized  ways to provide the capabilities outlined in  Section 2 4  This flexibility is provided by the very power   ful and versatile Command Interpreter that controls the    operation of the Georgia Tech Software Tools Subsysteme    The paragraphs below are not meant to be a user manual for  the Workbench  Rathers they provide some insight int
121. dulersseeeecveoccceccoccceocceccol  t    The Results of Adding a Revision    to Release leeeceoccocccceccc    occoocccco  cccoccl      Example Body Part of the Delta File    Of a Moduleeeesecsccecccec  ecececccecccoccec  cceccecc  ococecl 3    Georgta Institute of Technology COBOL Workbench    Page xiii    LISI QE IABLES    2el 1 Capabilities of the COBOL Programmer s Workbdencheel4      5 1 1 Workbench Libraries and Their ContentScececccceccel4    3eS5el 2 Workbench Libraries and Their USeSeeccacccccacsceee     Georgia Institute of Technology COBOL Workbench    Section 1 INTRODUCTION Page 1    SECTION 1    INTRODUCTION    lel SCOPE QF THIS PROVECT    This project was initiated originally as 3a broad based  examination of the problems and difficulties encountered in  transporting very large COBOL proaramming systems and the  development of tools that would assist in such activities   As the project progressed  it became apparent that there  were a number of other issues that should be addresseds such  as the maintenance of transportable programs as well as the  quick development of breadboard proarams to         E  concepts  These concepts have been UT into the  original project and this report covers the most important  output of this projects the COBOL Proarammer s Workbench  which is the collection of tools and other supportina  software for the designs implementations and maintenance of  baseline programs that can be easily transported to a wide  variety of target operati
122. dures one will only have to save  and revise the unformatted text of documents  This witl  make the task of modifying documents easier since it wilt be  possible to make changes without worrying about the effect    of those changes on the format cf the final output     2 5 2 On Line Document Handling    One of the essential requirements for the Documentation Sub   system is that it be available for on Line usee This will  enable the documentor to compose and enter documentation  into the system in a single step  In additions he will be  able to extract text from other documents for use in another    document that is being prepared or modified     252 1 Preparing Documents    The documentor wilt be able to enter documents in an on line  fashion  Intermingled with the normat text of these  documents will ne formatting commands which will be  interpreted at a Later stage by a Formatting Process  These  commands wilt allow the documentor to control the format of  the final document  see section 2 47 2   For examples one  will be able to underline and bold face desired words in the  text by simply inserting the appropriate commands idin the    proper position of the unformatted texte    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 49    The documentor will be able to easily edit the input text  during the document preparation phasee He will have the  capability to inserts deletes or modify as well as to reor   der parts of the texte The documentat
123. e   See version    program family     GENLIB     Liorery file containing macro definitions which  define utility functions and modules of general use  A  typical module which might be included here would be an  abbreviation of the proaram id sections such as  provided by  HETA COBOL  Should contain only tested  macro definitions written in COBOLewbce     Help  Command  On Line documentation provided for the  Workbench user in the form of a guided tutorial     Machine Dependent  Written using hardware and operating  system features unique to a particular machine  Cannot  be executed on a machine with different features   Necessarily compiler dependent as well due to the need  for the compiler to allow access to the hardware and  operatina system featurese   See nonportable  compiler dependent  COBOL k  dialect     Georgia Institute of Technology COBOL Workbench    Appendix 1 GLOSSARY Page 139    Machine Environment  The combination of hardware and  software features  including hardware capanilitiess  operating system features   and compiler dialect  which  define the environment under which a program is to te  rune In particulars those features which differ from  machine to machines  comptler to compilers and installa   tion to installations and make program transportation  difficult     Machine Independent  written without reliance on hardware  or operating system features unique to a aiven machine   Can be transported easily unless the proaram is  compiler dependente   See p
124. e  a dtait from 0 to 94  inclusives  Digits 1 9 represent the  first through the ninth arguments  digit 0 represents the  name of the macro itself   For example  the following macro  could be used to skip blanks and tabs in a strings starting  at a civen positions     defi1ne skipbls    while   1   2     BLANK    1   2     TAB    2    2   1      Here are a few examples of the use of this macro     skipblClLiney i     skipbltstrs  j       In order to prevent premature evaluation of a strings the  string may be surrounded by square brackets  For example   suppose we wished to redefine an identifier  The following  sequence will not works     define txey   define xs z     This is because  x  in the second definition will be    replaced hy  y   with the net result of defining  y  to be  HE mg The correct method is    Georgia Institute of Technology COBOL Workbench    Appendix 7 MACRO PROCESSOR Pase 259    define xgy   define Lxisz     The square brackets prevent the premature evaluation of  x      Te2e  BUILI IN FUNCTIONS     Macro  provides several  built in  functionse These are  given below     diverttfilename  or diverttfilenamesappend  or divert    Filename  is opened for output and its file descriptor  is stacked  Whenever   macro  produces outputs   it is  oirected to the named files If the second argument is  present  output is appended to the named files rather  than overwriting ite If both arauments are missings  the current output file is closed and output reverts to  
125. e After many commands   the last aroup of Lines deleted is well defined  but  unspecified  It is not a good idea to use the  undo  com   mand after anything other than  c 4   d    or fsh  After a   c  or  d  commands    ud    will place the Last group of deleted Lines after the current  Line  After an  s  command  which by the ways deletes the  old Line and then reinserts the changed LineJ2s    u    will delete the current Line and replace it with the Last  Line deleted    it will exactly undo the effects of the  s   commande    You should be warned that while  undo  works nicely for  repairing a single fc    d     or  s  commands it cannot  repair the damage done by one of these commands under the  control of a global prefix   o 4   x 4      and apostrophe    Since the global prefixes perform their commands many timess  only the very Last command performed by a global prefix can  be repalredce    5 1 17 Summary    This concludes our tour through the world of text editing   For your conveniences a short summary of all available edit   ina commands  many of which were not discussed in this  introductions but which you will undoubtedly find useful  is  qiven in the next few sections     Georgia Institute of Technology COBOL Workbench    Appendix 5    FDITOR Page 21i    Selel 7 1 Command Summary    ege    o9e    e e    none    9o    none     9  e     Georgia Institute of Technology    Name       g    a    Editor Command Summary    Function    append text after the specified line
126. e and including  page headinte    Set top marain after  page headinge    Set bottom marain  before page footinte    Set bottom marain  including and after  page footina     Turn off margin ad   justment     Express a need for t  contiguous Lines     Turn off fill mode    Also inhibits ad   justmente     Turn off automatic  hyphenetione    Turn on  no speace    mode   Move on to thre next    input file    Set page Lenoath   Set page number   Set page offset     Set tao replacement  character     Set riaht margine    Turn off  no soace   mode     COBOL Workbench    Aopendix 6  Command  Syntax   eSb   eso file    eso N    eta N eee  etc        eti   l c r     eul N    ex    Georgia Institute of Technology    Initial  Value    off    N 0    on    FORMATTER    If no    Parameter    ianored    blank    N      Cause    Break    no    no    yes    no    no    yes    yes    no    no    Page 252    Explanation    single blank after  end of sentence     Temporarily alter  the input source     Put out N blank    Lines   Set tab stops     Set tab character     Temporarily indent  Left maraine  Generate a three  part title   Underline N input  text Lines   Extra blank after    end of sentence     COBOL Workbench    Appendix 6    6el2e    FORMATTER    6 12 1 Filling and Margin Adjustment    Command  Syntax    ead c    ebr    ece N    ony    ena    esd    Xb    Georgia Institute of Technology    Initial    Value    both    on    on    on    If no    Parameter    both    N 1    Cause  Break  
127. e empty pathname refers to the current directory   Thuse the pathnames     bin cd  mydir fitle        empty string     refer to a file named  cd  within a directory named  bin   Which ts contained in the MFO  a file named  file  within  e  directory named   mydir  which sprouts from the current  directory  wherever that may be  the MFD3 and the current  directory   respectively     Be4e PROTECTION  Users have the options if they so desires to protect their    files from unwanted perusal or alteration oy other users   Two mechanisms are involved in providing this feature     Firste with each directory is associated an  owner  and a4   basswora   The owner of a directory ise by defaults  the  user who created its though this may be changede When a    directory becomes a user s current directory  either of two  conditions may prevail  the user may be declared   owner  of  the directory if his Logain name matches that of the direc   tory s creators or failing this  he is declared a  non   owner   The password comes into play in this latter case   The owner of a directory may require that any non owner who  wishes to make it his current directory must first specify a  passworde if he is able to do this  then he is attached to  the directory as a non owner  otherwisee he is not allowed    Georgia Institute of Technology COROL Workbench    Appendix B8 IHE PRIMOS  FILE SYSTEM Page 264    to attach to it     Once attached to a directory  either as owner or nnon owners  the second prot
128. e node      CI o redirectors will be discussed below   The execution  of a simple node normally involves the creation of a singte  process   which performs some functions then returns to the  operating system     The second option is the   compound node    It specifies a    net   which js to be executed according to the usual rules  of   net   evaluation  see the previous section   and any  lt Si o  redirector  s that should affect the environment of the  Cnet gt e The  lt compound node   is provided for two reasonse  Ones it is occasionally useful to alter default port assiu     Georgia Institute of Technology COBOL Workbench    Appendix 4 COMMAND INTERPRETER Page 177    nments for an entire  lt net gt  with  lt i o redirector ss rather  than supplyina  lt i o redirector gt s for each  amp node    Twos use  of compound nodes containing more than one  amp net   aives the  user some control over the order of execution of his proces   sese These abilities are discussed in more detail belowe    Since it is the more basic constructs consider the   simple  node    It consists of a  lt command name   with  lt araument gt ss  intermixed with  lt i o redirector gt se The  lt command name   must  be a filenames usually specifying the name of an object code  file to be Loaded    The command interpreter Locates the com   mand to be performed by use of a user specified search rule   The search rule resides in the shell variabte    search rule   and consists of a series of comma separated
129. e of Technology COBOL Workbench        e  ERAS PD     Section 4 UTILIZATION Pase 152     TESTLIB with be routines to collect per   formance data and to trace execution of    modules under teste    4e4 e2 Specific Test Capabilities    1  Acceot the COROL wbc Source Modules    It is strongly recommended that only those  mocules which have passed Standards Enfor   rerewoc be accepted as inputa This may be  achieved automaticallys by calling the stan   derds enforcer as the first step in the test   ing process  or manually  by reauestina  project programmers to submit only approved     modules for testing     2     JUsinu test harnesses  modules  provided on  TESTL IB  produce an executable COBOLewbe  orograme    what we mean by a test harness is a main  programe expressed in the form of a modules  which serves as a driver to execute an other   wise incomplete COBOLewbe  modulc  Specific  capabilities and requirements of test harnes     ses Will be discussed in a Later sectione    3  Translate the resulting CO80Lewbe proaras    Georgia Institute of Technology COBOL workbench    pa dim oo eee Ee      cA ae          a a    e                   000 7 x 7 MM ADR a r ar    Section 4 UTILIZATION Page 110    into COBOL eke     t the moment we make no attempt to execute  VOPCLewWbh Ce While Tt may in fact be possible  to do so   and thus to test COBROL wbC procrams  directly without conversion into specific  dialects  this approach Leads us into a very  complex problem area which is beyon
130. e position     ctrl S scan righte This key 4s identical to the ctrl L  key described aboves except that the scan proceeds  to the right from the current cursor positione   ctrl T KILL righte The character at the current cursor  position and all those to its right are erasede    Georgia Institute of Technology COBOL Workbench      Appendix 5 EDITOR Page 220    ctri U Erase left  The character to the left of the  current cursor position is deleted and atl charac   ters to its right are moved to the Left to fill    the gaps The cursor is also moved Left one  column    ctrl Vv Skip right and terminate  The cursor is moved to  the current end of Line and the Line is    terminatede  ctri W Skip Left  The cursor is positioned at column le    ctri Y KILL Left  Ali characters to the Left of the cur   sor are erased  those above and to the right of  the cursor are moved to the Left to fill the  void  The cursor is Left in column le    ctri Z Toggle case mapping flag  The status of the case  mapping indicator is inverted  if case mapping was  one it is turned offe and vice versa  Case map     pinge when in effects causes all upper case let   ters to be converted to Lower cases and all lower  case letters to be converted to upper case  Notes  however  that  se  continues to recognize relative  Line numbers jin upper case onlys in contrast to  the case mapping option  see the description of  options above   When case mapping is one  CASE   appears in the status Line     NEWLINE KILL right
131. e right so that they  are centered between the Left and right marginse If the  parameter is  L   no adjustment will be performed  the Line  will start at the Left margin and the riaht margin will pe  raggede If  r  is specifieds Lines will be moves to the  richt so that the right margin is evens Leaving the Left  margin raggete    The  no adjustment  command  ena    has exactly the same effect as the following   adjust  com   mandi    ead L    No adjustment will be performed  Leavina the Left margin  even and the right margin raggede Tn no case does a change  in the adjustment mode cause a break     6 2   Centering    Input Lines may be centered  without fillinas with the helo  of the  center  command    ece N    The optional parameter N is the number of subsequent input  Lines to be centered between the Left and right marginse If  the parameter is omitted  only the next Line of input text  is centered  Typically  one would specify a tlarqe numbers  say 10009 to avoid having to count Lines  then  immediately  following the Lines to be centered   give a  center  command  with a parameter of zero  For examples    Georgia Institute of Technology COROL Workbench    Appendix     FORMATTER Page 226    sce 1999  more Lines  than I care  to count  ece 9    It is seinen notina the difference between    ce  ang  ead c  When the former is usede an implicit break occurs before  each Line is printed  preventino filling of the centered    Lines  when the Latter ts used  each Line is filled
132. e section being written   The parameters required by each macro consisted of the sec   tion number and the title for the section  The macros  provided for the consistent spacing around the headings and    consistent use of underlining and boldfacinge    3 4 2 Text Editor    The Text Editor allows the documentor to creates updates and  modify unformatted documents in an on Line manner  In ad   ditions it allows him to copy text from one document while  creating or editing another  Thuss the documentor can copy  text from ather documents and trim and modify the copied    text to fit his needs     The Text Editor possesses a powerful set of commands which  obey a simple and consistent syntax  Complex pattern match   ina is also available and allows matching patterns within a  Line of text as well as Locating Lines containg the pattern   Printed responses by the Editor are terse resulting in a    minimum of delay to the usere    Georgia Institute of Technology COBOL Workbench    Section 5 FUNCTIONAL COMPONENTS Page 70    The Text Editor also provides users possessing fast CRT  terminals the ability to view a window of their text while  editing  This is a powerful feature which not only aids the  user in finding portions of text but also makes the  construction and modification of text easiere In addition  to beina able to view a window of texts one has the ability  to directly change text displayed in the windowe To enhance  this capabilitys the user is also given the ability to 
133. e used anywhere to select a new  Value     etc Cchar      The parameter    char  gt q which may be any single characters   becomes the new control charactere If the parameter is  omittecs the familiar period is reinstated     It has beer shown that many commands automatically cause a  break before they perform their function  when this  presents a oroblems it can be alterede If instead of using  the basic control character the  no break  control character  is uses to introduce a commands the automatic break that  wouta normally result is suppressed  The standard  no break  control character is the grave accent      q  ut may easily  be changed with the following command     ece CXchar     As with the cc commands the parameter may be any single  charactere or may be omitted if the default vatue is  desirede    6e7e4 Prompting    Driof4 one line messages may be written to the user s  terminal using the  prompt  command    eer   brief  one line message       The text that is actually written to the terminal starts  with the first non blank character following the command  name  and continues up toe but not inckhutinas the next  newline character  If a newline character should be  inctuded in the messages the escape sequence    in  May 5e usede Leadina oablanks may also be included in the  message bv precedina the message with a quote or an  apostrorhe    rmt  will discard this characters but will    then print the rest of the message verbatim  For instances    Georaia Institute 
134. eccccctocccscseccccceccl  Section 4  UTILIZATION  e5e  eoceo009900090920929202090992909009990690202909 7     el GEMERAL amp   ecces0   0600900909090909909009290990900990909009090900000290990909099209 JS  ec PROGRAM PREPARATIONesoece0c60009090929090909299929009090990900090929900c924 24  el Producing a COBOL Module or Progdrameeeeeecccccccccecceccce A   e c Preparina a Reusable Module   oecccccccc0029099992990929922    e3 Producing a Baseline PFOGrFaMeccccccscccccceseeseesccesse IS    4 Preparing the Compiler Unique Macro Librari Seecsecencceed   e5 Producing a Sreadboard Programeeeeeccececcecceccceccccocccccc Tf  e amp     Maintaining the Baseline Programeeeeecececccceccccne eseecee 2  e  Maintaining RELEASES and VERSTONSeccnccccccecccccvccceel If     8 Summanlyeeeeeeeececcececeoecec  ceceecco  soceoceccccecoccccceccccs  ccecceol  eS DOCUMENTATION PREPARATION  eeoeoo0cc0cc0c999  02009o900  0cccccl  4  el Prepare Oriainal DocumentSeeeeccccccccceccoecteoececsccecccccl     ec Modifying DocumentSeseeececccecceco  occececocccccocccoccccececcecl   e 3 Annotating DocumentsSeeeecececcceeccccccccc    cccccccecceccecceclU5     4 Producing Specific VersionSeeeecccececececececccceccoccccecccccecl    e4 PROGRAM TESTINGeoeeooe00ceo009099909209990000090009090999090999092902107  el Workbench Test O  perationeeeeeccecccecccceccckcecccccso  oecoccecil   el Input to the Testing ProcesSSeeeececccccccccccccccccccccl    ee Output from the Testina ProCeSSeeeccccceccecccccccccccceliO   ec Specific Te
135. ecccecb  e353 Control Characters for Editing and Cursor Motioneeseseecc218    4  Se  Command Interpretationeeeeccccceccccco  cccceoocceccec2l    Appendix Ge FORMATTERee  a0e0o02000909099092090990909200902099929909090000902222    el BASICSoe600600900a090000002090909092909092009090000020099099099009096ecc C  el Introduct  ioneeeceeecceececoocceoocctececceccesooccocceocecceoc 2  e 2 UsagGCeeeeecsccceoecocecececee  ocscc   ooctoeceooocsectc  otosnevoceeeoccoccec 2  e5 Commands and TexteesecececcccceccececoscccccoccccecscoccccoccecoceZ 23  e2 FILLING AND MARGIN ADJUSTMENT amp    amp  eecoo  o06c00909292  60029299999929222    el Filled Texteecccccoceocceccccoccecccceccsccccsttceccccscccoo22    e e Hyphenat  oneeceececceccccececceccccetcococeceoccceccccccccceccc  e 3 Margin Adjustmenteeseceoscccecccoccecececcecco oncccceccccoce2P  e    Center  ingOeeecececeoccececocccsco  cocscecsceceo  ocscetsnotoocooceccoo2 25  e5 Summary   Filling and Margin Adjustment eeeecccccccccce22b    3 SPACING AND PAGE CONTROL      eoccccocccccceeececesececeececee227  el Line SpaCingeeeeececocececccecceccooceececcoscocecoccccccce22     2 Page Divisioneeeocececoceccececcececceoonececcececece coo os2000o000o221  eS5  No space   Mode  eeccceccceccecocececccccsicssccsccecceotecece 2D    e t Summary   Spacing and Page ControleseccocccceccccccocecccecZ27    Georgia Institute of Technology COBOL Workbench    Page x    04 MARGINS AND INDENTATION  ee  e0e 0  0900920992990909209009209090099cc 2J  el Mara  lnSeeeeeec
136. ececececcecececce  ccec  ccecsecicccs  tecceceosecccecc cO  e2 Top and Bottom Marg  nSeeeeececcceccececcccesocceccccececsccce2 A0  e3 Left and Right Mard    nseseeeesccecceccecoscecceo  ccccecccceccc2  l  et Indentationeeseeeccececcecsoecscocsccccccccccccsseccecc  eccecccceoccec ol  e5 Page Offsetoeeeccecoecccecoccecccceccicccsctcccccecicetsecscetccecesc l  e b Summary   Marains and IndentationeeeeosccccccccccscceccecoZ   2   e 9 HEADINGS   FOOTINGS AND TITLES ccc cece ce cece cesses eeerneeseelcid  el Three Part Titlesessoececceccecceecccooceccceccccec  cscco  cce  ccec c  ec Page Headings and FOOCTINAGSeecerercccveccescescsccsesecsseser 54  e5 Summary    Headinos  Footers and T  itleseeceecsccescoccceccccch    e6 TABULATIONeseoese000900000990990909090060909062090909229000020020c0   62  C 1  el la  bDSeeececoecececececceoeocooooceeots  sceeonst  t  s  otecsetosoecsecseccc  coc 2   ec Summary    Tabulationeeeeeecccceccecececcecoscceo ncocevseccec 265   e7 MISCELLANEOUS COMMANDS  ecoec0000605000090909290000c2909220o025929 7 SC  el CommentSeeeecececcecececoccecccceccsocscssoecscsccccccoeccecccoc S6  ed Boldfacing and Underliningeeeseecscecoeccoecocceesoccccec  csecceoca  e5 Control CharacterSeeseeceoececcecececesccoeccocscecceco  socsccscccotsocccocc 55  ea Prompt  inueeeeeeecceovsoceccecoocccoeo  otsoecseceecto  eceo  cecesocescec OB  e5 Premature Terminationeeeeeeccececccecoeccccececoccecececoccccecec    6 Summary     Miscellaneous CommandSeeeeeeseccccccecccoscccecccct     eo
137. echnology COBOL Workbench    Section 2 CAPABILITIES Page 32      a collection of payroll modules       collection of modules developed for inventory  control   Each applications area will possess its own Librarys APPLIB   name  e g  APPLIB PAYROLL or APPLIB INVEN s which will  contain this tyne of module  Projects will be permitted to  make use of other application Libraries as well to encourage  standardization and to decrease maintenance costs  One  example of this potential savings ts a business maintaining  both a payrottl program and a financial report generator  If  both of the programs call the same module to calculate with   holding tax  changes in the tax Laws will cause less  modification to the currently running programs than if each  figures the tax separately  Standardization also decreases  the errors that occur when different heuristics are used for    the same function by different programmers     2 2  5 1 35 Expansion from the Project Library   The Froject Library contains those modules currently under  devetopment specificaily for a particular programming  project  Each project wilt have a Library   PROJLIB name   containing these modules  This library differs from an ap   plication Library primarily in including modules tailored to    a specific project     2e2e5ele4 Expansion from the Personal Library  The programmer may develop a personal  shorthand  notation  to avoid repetitive programming when the same task 1s to be    performed a number of timese Pers
138. echnology COBOL Workbench    Section 2 CAPABILITIES Page 44    2 4 PROGRAM MAINTENANCE    The maintenance of programs that have already been developed  and placed into operation is widely acknowledged as the most  expensive part of the Life cycle cost of Such programse The  COBOL   Proarammer s Workbench fully acknowledges this fact    and provides complete support for maintenance     2 4 1 Nature of Maintenance Activities    Referring to Figure le3 1ls it can be seen that there are two  dimensions to the maintenance activities supported by the  Workbenche The first of these is the maintenance that must  be performed on compiler unique VERSIONS of the program in e   quick fix  manner to correct logical errors in the develop   ment of the baseline program or Workbench errors in the  translation of that program to the compiter unique en   vironmentse Each VERSION of the program presents a separate  maintenance problem and MODIFICATIONS of VERSIONS are    generated individually as required     The other dimension of maintenance is the preparation of a    new release of the baseline programe In this instances    there is only one program being maintainede    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 45    2    2 Maintenance Support    The support for program maintenance provided by the COBOL  Programmer s Workbench consists of several capabilities    1  The concept of a singles controlled baseline  orogram reduces the amount of maintenance  pr
139. ecoding of other portions of the programe The remaining  differencess due to differing syntax between the two com   pilers  may be easily eliminated with the aid of a text    editore    The process described above permits easier transportation of    COBOL programs between differing machine environments but    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 29    still requires the efforts of a programmer who is cognisant  with both the source and target systems   as well as being  familar with the desired behavior of the program to be  transported  Since programmers are an expensive rescurces    it would be desirable to automate this procedure     A necessary first step in attempting this automation is the  reduction of the number of pairs of dialects between which  programs are to be transported  As new dialects are  continuously being developeus the scope of application of  the resulting system would be unduly Limited were the choice  of target languages to be restricted in any manner  Less  difficulties arise in Limiting the inka of possible source  diatectse No single existing dialect contains enough of the  necessary information to permit easy translation into all  possible target dialectse As a result it is necessary to  develop a dialect of COBOL particular to the Workbench  system  COBOLewbc e COBOLewbe will provide the user with  those COBOL features that can be supported in a  portable   programming environment  Some features which rel
140. ection mechanism comes into play  As part of  the  other information  that we mentioned in the directory  entry for a files the system keeps two sets of  protection  keys  one that applies to the owner of the directorys and  the other  to non ownerse These keysse which may be changed  on a ner file basis by the directory s ownere control the  kinds of things that can he done to a filee There are three  ooerations that may be individually allowed or denied to  both owner and non owners  readings writing and truncatina   deletina   Tf a user has read permission for a files  he  may read the contents of it out may in no way alter theme  If write permission is granteds then the file may be written  upon  possibly overwriting existing information or extending  the fite   but nothina may be read from ite If truncate  permission is granted  the file may be shortened to any  Lenath or even removed completelys but its contents may  neither be read nor writtene    8 5  SUMMARY   There are many more features and subtleties in the PRIMOS  file system that both enhance its power and usefulness  as  well as ada to its awkwardnesSe Those things we have talked  about heres  thouahs seem to be the most important for a  general understandings For further details on these other  features and on the implementation of the file systems you  miaht want to consult the Reference Guides File Management    Systems published as POR3110 by Prime Computers  Ince     Framingham  MasSe    Georgia Institute 
141. ed  the  current tab spacina is displayed in the status  Line     uC lt chkr gt   selects the character that  se  displays in place  of unprintable characters   lt chr gt  may be any  printable character  it is initially set to  planke If   chr   is omitted   se  displays the  current replacement character on the status Line  at the bottom of the screen     v  lt int gt   sets the default    overlay column   This is the  column at which the cursor is initially positioned  by the  v  commance Cint   must be a positive  integer  or a dollar stan  4  to indicate the erd  of the Line  If   int   is omitted   the current  overlay column is displayed in the status Line     wL  int     sets the  warnina threshold  to  lt int gt  which must  ce a positive integer  Whenever the cursor is  positioned at or beyond this columns the column  number is displayed in the status Line at the bot   tom of the screen and the terminal   s bell is soun   ded  If   int   is omitted  the current warnina  threshold is displayed on the status Line  The  default warning threshold is 749 corresponding to  the first column beyond the right edge of the  screen on an R   column crt       clnr     splits the screen at the Line specified by  lt lnr gt   which must be a simple Line number within the  current windowe ALL Lines above  lt lnr gt  remain  frozen on the screens the Line specified by  lt lnr gt   is replaced by a row of dashese and the space  below this row becomes the new window on the  fite  Furth
142. ed distinctly from another by  the same name but in a different directory  FPathnamesy  which we take up in the next sections are the solution     Georgia Institute of Technology COPOL Workbench    Appendix 8 THE PRIMOS FILE SYSTEM Page 263    BeSe PATHNABES    A pathname is a syntax for uniquely specifying any file  contained within the file system  But before we can  o any  furthers a couole of details should be brought to Licht   When a user logs in to PRIMOS  he is automatically tat   tached  to a specific directory whose name is usually the  same as his Login name  This directory is said to be his  fcurrent   or   default  directory and has a special sia   nificance in the interpretation of pathnames  There is a  way to walk around within the file systems changing the  Current directorys but we won t go into that here     As we said  a pathname allows you to uniquely specify any  file anywhere in the hierarchy by describing a path to the  file from some known pointe Two such known points are the  Current directory and the MFDe A pathname  thens consists  of a number of directory namese separated by slashes        recall our previous admonition  and ending with the name of  the desired file  If the pathname starts with a slashe the  path starts in the MFD  otherwises it starts in the current  directory  4 simple file name that contains no slashes  refers to a file within the current directory  a pathname  consisting only of a single slash refers to the MFD itselfs  and th
143. ee  NE eee     i  i   Program   Reusable   General      Text     Processor  4    2             Library   lt       Editor   i  6    Modules      ere Conan amen eee ene    j    Baseline  Pgm  7         i  95e eene nu Ned TT  gt      FM Lae   RELEASE   l  I l aa cer        Compiler    i     Release      Unique i   Program   Compiler    tibrary      Macro  22 2 5  Processor     2      2      gt         Library      8    Unique l    I eee leen  VERSION feet ol    Georgia Institute of Technology COBOL Workbench                   oe fa ee SS     eee     DAMALS LL     Section 4 UTILIZATION Page 102    Definitions of Various Code Modules    Reusable Modules  written in COBOLewbe  Ors possibly in special  instances  COBOLek e May contain references  to other reusable modules and or compiler  unique features in COBOLewdDce   Compiler Unique Macros   acro definitions that provide the informa   tion required to translate references to com   ojler unique features into fully expanded  compiler unique code    Compiler Unique Program VERSION  Contains no references to reusable modules or  compiler unique features  Has been processed  so that it is a source program written   entirely in COBOLek  ready for processing by   compiler  k  on target machine Ko    Baseline Program  Written in COBOLewbce Contains references to  compiler unique features and reusable modules   written in COBOLewbc     Breadboard Program  dritten in COBOLewbe  ors in special  instances  COBOLek    Makes heavy use of  reu
144. emaining in  the same column  In append modes  this key is ig   norede    ctrli E Tab Left  The cursor is moved to the nearest tab  stop to the Left of its current position     ctri F  Funny  return  The effect of this key depends on  the editor s current mode  In command modes the  current command Line 1s entered as iss but is not  erased upon completion of the commands in append  modes the current Line ts duplicated  in overlay  mode  vize the  y  command    the current Line is  restored to its original state and command mode is  reentered  except if under control of a global  srefixde    ctrli G Cursor right  The cursor is moved one column to  the rioht   ctrl H Cursor left  The cursor is moved one column to    the Left  Note that this does not erase any  characters  it simply moves the cursore    ctri I Tab right  The cursor ts moved to the next tab  stop to the riaht of its current position     Georgia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 219    ctri K Cursor  downe As with the ctrl   L keys this key  s  effect depends on the current editinc mode  in  command modes the current Line pointer is moved to  the next Line without changing the contents of the  command Line  If the current Line pointer is at  the Last Line in the file  Line 1 becomes the new  current Line  In overlay mode  viz  the  v  com   mand   the cursor is moved down one Line while  remaining in the same columns In append modes  ctri X has no effect     ctri L Scan left  The cu
145. en    9  guns Costs Expended  Sum of Lines 7 and 8 210 000 00   27 674 40       be AMOUNT OF GRANT            210 000 00    i   I a aa a ae ey  i   UNEXPENDED BALANCE    bod       6   Other  Spact       50vernmenut Furnished Equivmenut  GE       Tne Grantee is required to identify  either on the reverse side or by separate  attachment  other equipment furnished by the Government  The listing of the equipment  y source of acquisition  CSA  DIPEC  DARO  etc    unit cost  and bv any other  extinent identifying data  is required  This listing should be forwarded to the  evernment Property Administrator for disposition purposes  Title to the equipment  ay vest with the Grantee   If ro CFE was acquired under the grant  so state in the  Conments  section of this revert  l    M   Panini RR mon     DMMENTS   CONTINUE ON REVERS SIDA  IF NECESSARY     e    CERTIFY THAT THIS FISCAL REPORT IS CORRECT AND THAT THE EXPENDITURES INCLUDED HEREIN  RE DEEMED PROPERLY CHANGEABLE TO THE GRANT     j   XYPED NAME AND TITLE i SIGNATURE  Ir  P  H  Enslow  Jr   Professor         avid V  Welch  Manager  Grants  amp  Cont Acctg  a    SUGGESTED FISCAL REPORT FORMAT          pma T    
146. ent that has  areatly extended it beyond the starting point given by the  book  For instances the Text Editor has been expanded into  a full scrcen CPT editors  ana the command language has  oecome a superset of that orovided by the UNIX operating    Systeme    Georgia Institute of Technology COBOL Workbench      a ee ee cT oo     Cn    section 5 IMPLEMENTATION Page 1z    Selece  Major Components and Features    pur  Uu    The major components and features of the Subsystem are    follows   1  Command Lanauaae      Uniform Invocation of Commands  hy  Jynamic Command Line Structures  c  Command Files  4  Control Structures  e  Scoped Variables  f  Networks of Cooperating Programs    2  Ratfor   Rational FORTRAN    a Preprocessor     a  Modern Control Structures   hb  Free Format Source Code   c  Rasic Macro Capability   a  Long Variable Names   e  Debuaginc and Performance Monitorina    5  Text Editor  3  Full Screen version  5  Line Oriented  C  In line Editing Capability  d  Similar to UNIX Text Editor    4  Text Formatter  a  Automatic Hyphenation  C  acros  c  In Line Functions  d  Civersions  e  Number Reaqisters  53 On Line Documentation  a  Access to Reference Manual  5  Short Usage Summary Available  5  Assortec Toots  3  Directory Maintenance  n  Stream Editing and Selection  c  Sort and Comparison    d  Spelling Check    Geora  ia Institute of Technology COBOL Workbench    DI A ART TM ES eee       e e ee om    SENI Y DER IMPLEMENTATION Page 126    Se3 QRGANIZATION OF 
147. entifier 1 is greater than the  size of the data being transferred  the data is  stored Left Justified and additional data is    requested  For subsequent data transferss the  size of identifier 1 is taken to be equal to the  as yet unfilled portion of it     g  DATE is implicitly described as an elementary data  item with PICTURE of 9 6 V  it contains year of  the century  month of the years and day of the  year in that order     h  DAY is implicitly described as an elementary data  item with PICTURE of 9 5 V3 it contains year of    the century and the day of the year numbered from  1 to 3666    i  TIME is implicitly described as an elementary data  item with PICTURE of 9  8 V 3 the value represents    in a 24 hour system  the number of elapsed hours    minutess seconds    and hundredths of seconds after  midnight in that order from Left to right    2  PDP 11  a  As in 74 COBOL   b  As in 74 COBOL     C  If the FROM phrase is not aivens the data is  transferred from the user s terminal     d  As in 74 COBOL    e  As in 74 COBOL    f  If the stze of identifier 1 is areater than the  size of the data being transferred4 this data is  stored Lleft Justified and the remaining space pad   ded with blanks    h  This 3s identical to DATE     i  As in 74 COBOL  but the positions for the hun   dredths of a second are filled with zeroese    Georgia Institute of Technology COBOL Workbench    Appendix 9 COBOLewbec Page 279    3     1     PRIME  a  Characters are moved without change   b 
148. ents of a  Large system may significantly aid in error preventions each  individual module must be exercised for the purpose of error  detection  The primary goal of the testina process is to  make mistakes happen  if errors do in fact exist  with  results that can be easily recognized as incorrect and which  provide enough information about program behavior that the  errors can be found quickty and corrected    In order to ac   comptish this tasks enough inputs must be tested to exercise    the program or module under consideration completelye    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 42    The development of sufficient test data 1s an exacting task   It is not enough that a Large number of inputs are tested   the variety of inputs tested is also important since each  control path in the code must be examined  If the test data  is prepared manually  control paths may be missed  causing  errors to pass undetected until the system is in productions  and any errors found will require expensive correction  The  preparation of  good  test data by manual means is an ex   tremely difficult task which requires extensive analysis of  branching and control flow  The Workbench must therefore  provide a mechanism to facilitate the generation of a suf   ficient number and variety of test cases for each module to  be tested  This facility must provide for the automatic  generation of test data using  at a minimum  as input the  DATA DIVISION of the 
149. epts and  iaeas  presented as well as highlights the problems that must de    addressed in the development of a complete workbench systers    Sel GOALS OF DEMONSTRATION WORKBENCH    There were four basic objectives for the development of  the  demonstration COBOL Proarammer s Workbench  These four were  1  Ceasib  lity demonstration of the operation  concepts proposed    Z  Identification of the major problems that  would be encountered in the implementation of  a complete Workbench     x  Investigation of tne desirable features of a    Georgia Institute of Technoloay COBOL Worktench    ow ow H 7  A wee oe    Section 5 IMPLEMENTATION Page 114    user environment for the Workbenche   4  Estimation of the value of the concepts of  reusable program modules and maintenance of a  single base line program for multiple target    machinese    What was attempted was a balance approach toward making sone  progress in reachina alt of these qoals  It was recognized  that it would not be possible to implement a complete ver   sion of the COBOL Proorammer s Workbench with the time and  resources available nor cid the research team feel that it  had sufficient information to allow it to embark on a com   plete P E projecte It was fett that the effort  could be much more usefully applied to Laying solid ground  work on which a further project aimed at the complete work     bench implementation could be basede    Georgia Institute of Technology COBOL Workhench    Section 5 IMPLEMENTATION Paqe
150. er editing commands do not affect the  Lines displayed in the top part of the screen  If  Clnor gt    s omitted  the screen is restored to its  full size     Georgia Institute of Technology COROL Workbench    Appendix 5 EDITOR Page 218    5 2 5 Control Characters fer Editing and Cursor Motion    Since  set takes its commands directly from the terminals it  cannot he run from a script by using Subsystem IZO redirec   tion  and Subsystem erases kills and escape conventions do  not exactly apply  In facts  se  has its own set of control  characters for editing and cursor motion  their meaning is  as follows     ctri A Toagle insert mode  The status of the insertion  indicator is inverted  Insert modes when enabled   causes characters typed to be inserted at the  current cursor position in the Line tnsteac of  overwriting the characters that were there  oreviously  When insert mode is in effects   INSERT  appears in the status lines    Ceres  Insert blank  The characters at and to the right  of the current cursor position are moved to the  right one column and a blank is inserted to fill  the aape    ctrl  O Cursor  upe The effect of this key depends on   se s current mode  When in command modes the  current Line pointer is moved to the previous Line  without affecting the contents of the command  Line  If the current Line pointer is at line 14  the Last Line in the file becomes the new current  Lines In overlay mode  vize the  v  command   the cursor 4s moved up one Line while r
151. erminal     Fxit immediately to  the Subsysteme    Underline N  text Lines     input    Explanation    Move an to the next  input file     Temporarily alter  the input sourcee    COBOL Workbench    Appendix 6    6912 48 Macros    Command Initial  Syntax Value  ede x X     een XX      FORMATTER    If no Cause  Parameter Break    ignored no    ignored no    Georgia Institute of Technology    Page 257    Explanatton   Begin definition or  redefinition of a  macroe   End macro    definitione    COBOL Workbench    Appendix 7 MACRO PROCESSOR Page 258    APPENDIX 7    MACRO PROCESSOR  GEORGIA TECH SOFTWARE TOOLS SUBSYSTEM     Me  cro  is an enhanced version of Kernighan and Plauger   s  macro preprocessor from Chapter 83 of Software Toolse   Macro  is an exceedingly complex and powerful prosram  it  is possible to use it as a general programmino lLanguagee     complete description of its capability is beyond the scope  of this document   but a few samples are presented here to  help the user become proficient in its usage     Tele THE FORMAT OF A MACRO DEFINITION    The basic format of a macro definition is   define macro names  replacement text      Macro name  is an identifier  ises a4 sequence of Letters  or cdiagits beginning with a letter  3 Replacement text  is a   possibly empty  sequence of characters  which may be  specially interpreted by  macro      Macro arauments are referred to by a construct of the form    Ci  nteaer    in the replacement text  The Cinteger gt  must b
152. ers is the same  the Language  features of the two compilers may have different  interpretations  The next possible solution is to select    one of the two COBOL Standards as the  Standard Standard     Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 27    and to develop a compiler for the language which that stan   dard defines  However  compilers are developed to meet the  needs of a particular machine environment and interpretation  of certain features is ultimately a decision of the compiler  designer  Many operationse such as input and outputs  must  depend on the host operating system  Since different  machine environments provide many different featurese a  standarc compiler is not sufficient to eliminate the    transportation problem     Perhaps a solution can be found by investigating the method  in which COBOL programs are generally transported nowe The  general procedure is to Locate those features in the grammar  of the source compiler which are not the same as in the  grammar of the target compiler  ALL occurrences of these  Statements must then be located in the source code and  translated into the corresponding format for the target  System  This step may be carried out with the aid of a text  editor  The next step involves tocating those language  features which are provided by the source compilers but are  not available from the compiler to which the program is to  be transported   Note that the reverse step is not neces   sary  
153. ertain well known places  and deliver it to other well known places  Data sources are  known as standard input ports  data destinations are called  standard output ports  Programs are said to  read from  standard input  and  write on standard output   The key  point here is that programs need not take into account how  the input data is made available or what happens to the out   put data when they are finished with iti the command  interpreter is in complete control of the standard ports     A command we will use frequently in this section is   copy      tCopy  does exactly what its name impliess it copies data  from one place to another  In facts    it copies data from its  first standard input port to its first standard output port     The first point to remember is that by defaults standard    ports reference the terminal    Try  copy  now     1 copy    After you have entered this commands type some random text  followed by a newlines   Copy  will type the same text back  to youe  Mhen you tire of tnis games  type a control C   this  Causes an  end of f  ile signal to be sent to  copy      which  then returns to the command interpreter  Typing control C  to cause end of file is a convention observed by all Sub   system proarams   Since you did not say otherwise  standard  input and standard output referred to the terminals input  data was taken from the terminal  as you typed it  and out   put data was placed on the terminal  printed by  conpy         Obviouslys  copy  wo
154. es    It is sometimes necessary to change the standard port en   vironment of many commands at one times for reasons of con   venience or efficiency  The  compound node   a set of  networks surrounded by curly braces  can be used in these  situations     As an exampLe of the first case    suppose that you wish to  generate a List of manual names  see the Last example  in  either the first or the second stage of revisione One way  to do this is to generate the list for the first revision  stages place it on a file using a funnels  then generate a  List for the second revision stage and place it on the end  of the same file using an  append  redirectore A compound  node might simplify the procedure thusly     J      Lf  c   find  015 Lf  c   find  02   dlist    The first network finds all manuals at the first revision  stage  and the second finds alt those at the second staae  e  The networks will execute Left to right4  with the output of  each being placed on the file  List   thus  generatino the  desired Listing  With iterations the command can be collap   sed even farther     J   Lf  c   find  0 1 2     gt List    This combination of iteration and compound nodes is often  useful     Ffficiency becomes a consideration in cases where successive  Lona streams of data are to be copied onto a files if the   append  redirector is used each times  the file must be  reopened and repositioned several times  Using a compound  nodes the output file need be opened only once            
155. es full scale COBOL  Programmer s Workbenche The Workbench similarly supports  the development of breadboard    prototype systems  howevers  it should  e noted that investigation of the value and  feasibility of the use of breadboard systems was not within    the scope of this project     Although the concept and feasibility of the Workbench have  been verified  a Large amount of work remains to be done  before a complete Workbench could be imolemntede The major  areas in which work is still required are    Completion of the definition of Workbench COBOL    Completion of the definition and desion of the  COBOL progremmer s environment    Selection and implementation of the technique to  be utilized to maintain and generate various  versions of documentatione  One of the requirements necessary to support this further  work is access to several major programming teams and    cooperation from those teams tn obtaining actual usage data    Georgia Institute of Technology COBOL Workbench              e ea  o       Tp ede  i n    Section 6 SUMMARY Page 133    and information about the present program development and    maintenance environment se    Georgia Institute of Technology COBOL Workbench    SCS St utum                REFERENCES Paoe 1354    REFERENCES    ANSIs Draft Proposed Revised X3e23 American National    Applied Cata Researche The Librarian User Reference Manuals  Pube   Noe  PilltLe Princeton  New Jersev  Applied Data  Researchs Inces 1971     Applied Data Research   M
156. etaCOBOL Mecro Writings vole 1   Pubes      Noe P5CIMe Princetons New Jersey  Applied Data  Researchs Inces 1375     Applied Data Researchs MetaCcO2U0L Macro writings vole 24 Pub   NO   PSSOM  Princetons New  Jersev  Applied Data  Research   Intes 1975     Applied Data Researchs User Guide to Meta COBOL  Pub  Noe    p20CM    Princetons New Jersey  Applied tata Researches  Inte  1975     Browns Pe des Edes Software Portabilitys  Cambridges Mas   sachusetts  Cambridge University Press   1977     Crafford    Je Coy Jras Currys Re Wee and DeCarlis He Aes  Integrated Test Bed Support Software System Study Phase  Ils UeSe Army Comouter Systems Command Technical Report  USACSC AT 7T 08   Novemberes 197 be    Currys Res Integrated Test Sed Support Software System Study  Phase I   UeSe Army Computer Systems Command Technical    enap u       m n mm    Report USACSC AT 7T 044  Aunuste  19766    Denikes Tee Hollands Aes Wards Tes and Desaie Hes Software  Portapility Study   Conversion Procedurese UeSe Army    Computer Systems Command Technical Report USACSC AT 77   Tis June 19277     Diaftat Equipment Corporations  P29P 11 COBOL User s Guider    Pube Noe  A 1757C TC   Maynards Massachusetts  Digitar  Equipment Corporations Aprils 1977     Hardys Te Trotters Leong Honas Belkise and Fifes Dennis wes  Software Teols  A Building Block Approach   National    Rureau of Standards Special Puotication 500 145  Auaqusts  19577     Ivice  Evan Lee  The Programmer s VYorkbench   A Machine for    Sof
157. etaro    They may be arbitrary stringse separated from the  command name and from each other by blanks  Quoting may be  necessary if an   argument   could be interpreted as some    other element of the command syntaxe Fither single or  double quotes may be used  The appearance of two strings  adjacent to one another without blanks implies    concatenations Thus       quoted  string    Georgia Institute of Technology COBOL Workbench    Appendix 4 COMMAND INTERPRETER Page 178    is equivalent to    quoted string   or to   quoted  string        Single quotes may appear within strinas delimited by double  quotess and vice versas this is the only way to include  quotes within a string  Examples       auotec string      ALas  poor Yorick       Arguments are generally unprocessed by the command  interpreters and so may contain any information useful to  the program being invoked     In the previous sectione it was shown that streams of data  from  standard ports  could be piped from program to program  through the use of the  lt pipe connection   syntaxe It is also  possible to redirect these data streams to filess or to use  files es sources of data  The construct that makes this  possible is the  lt i o redirector gt  e The   1 o redirector gt  is  composed of filenames  port numbers  as described in the  Last section    and one or more occurrences of the  funnel    5      The two simplest forms take input from a file to a standard  port or output from a standard port to a file  I
158. evelopment  tools based on the book Software Tools by Brian We Ker   nichan and Pe Je Plaugere It was originally developed for  use on the Prime 400 computer in 1977 and 1978 in the form  of several cooperating user programse The present Sub   System  the sixth versions  is a powerful tool that aids in  the effective use of computina resources     The command interpreters   also referred to as the shell   is a  vitat part of the Subsysteme It is a program which accepts  commands typed by the user on his terminal and converts them  into more primitive directions to the computer itself  The  user s instructions are expressed in a special medium called  the command  Languagee The next few sections will describe    the command lLanauage and give examples of how it is used     Three areas will be covered in the following pages  Firsts  there is a tutorial on the use of the command Language   Second  there is a summary of the syntax and semantics of  the command Language  Lastly  there is a selection of ap   plication notes  This section is a good source of useful  techniques and samples of advanced usage     Sele  IUIORIAL      1 1 Getting Started    After you have Logged in to the computers you must start up  the Subsysteme To do this  type the command  sut      OKs swt  J    The Subsystem fires up and the command interpreter prompts  you for input by typing a right brackete    4 1 2 Typographical Conventions    The rules for correcting typos under the Subsystem may vary  from sy
159. ew current line   If  c  is specified  the Line immediately preced    ina the delete Lines becomes the new current  Line  If neither is specified  the current value  of  lt dir gt  is displayed in the status Line     f selects Fortran oriented optionse This is  equivalent to specifying both the  c  and  tA    see below  optionse    LC   Lopo  1 sets the Line number display option  Under  control of this options  se   will continuously  display the value of one of three symbolic Line  numbers    lop   may be any of the following     e display the current Line number      display the number of the top Line on the  screen       display the number of the Last Line in the buf   fer    If   lop   is omitted  the Line number display is  disabled     t  E lt tabs gt   sets tab stops according to  lt C  tabs gt e   lt tabs gt   consists of a series of numbers indicating column  numbers in which tab stops are to be sete If a    number js preceded by a pius sign        Ft Inv  dicates that the number is an increments  stops are    Georgia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 217    set at regular intervals separated by that many  columnse beginning with the most recently  specified absolute column number  If no such num   ber precedes the first increment specifications  the stops are set relative to column 1  Ey  defaults tab stops are set in every thrid column  starting with column 1   corresponding to a   tabs    specification of   3   If   tabs   is omitt
160. f  nargs   set search rule    arg 1   quote   fi    _search_rule    The  if  command conditionally executes other commands  It  requires one argument  which is interpreted as  true  if it  is present  not null  and non zero  If the argument is  trues  all the commands from the  1if  to the next unmatched  telse  or  fi  command are executed  Tf the argument is  falses  alt the commands from the next unmatched  else  com   mand  if one is present  to the next unmatched  fi  commana  are executed  In     ssr  above  the araument to  if  is a  function call invoking  naros 4  a command that returns the  number of arguments passed to the commanc file that is  currently active  If  neras  is zeros then no arguments  were specified  and  ssr  does not set the user s search  ruL  e If  naras    is nonzeroe then  ssr  fetches the first  araumente quotes it to prevent the command interpreter from  evaluating special characters  and assigns it to the user s  search rule variable   search  rule        If  is useful for simple conditional executions but it is  often necessary to select one among several alternative ac    tions instead of just one from tuo  The  case  command is  available to perform this function  The premier example of     case  is the command file et  which is used to invoke  either the screen editor or the Line editor depending on  which terminal is being used  as well as rememberina the  name of the file Last edited      Georgia Institute of Technology COBOL Workbenc
161. f Cays cege U9 351 132  basic control character    no break control character  inoentation value   Left marain value   Line number on the page  Line soacing value   macro invocation level  margin 1 value   margin   value   margin 3 value   margin 4 value   page lLenath value   page number   page offset value   right margin value   tab character   temporary indentation value    Fxplanation   ove on to the next  input file   Temporarily alter    the input source     COBOL Workbench    Appendix 6 FORMATTER Pane 243    6 9  MACROS    6 9 1 Macro Definition    A macro is nothing more than a frequently used sequence of  commands and or text that have teen arouped together under a  single name  This name may then be used just Like sn or   dinary command to invoke the whole group in one fell swoop     The definition tor redefinition  of a macro starts with      djefine  command    ede xx    whose parameter is a one or two character string that  becomes the name of the macro  The macro name muy consist  of any characters other thon blankse tabs or newlinesit upper  and lower case are significant  The definition of the macro  continues until a matching  end  command    en xx  is encounterede Anything may appear within a macro  definitions including other macro definitions  The only    processing that is done during aefinition is the interpreta   tion of variables and functions  i e  things surrounced by  square brackets   Other than this   Lines are stored exactly  as they are read fro
162. f INPUT PROCESSINGeeececoccc00009009990909092090090099090209020092925c     0  el Input File Controleeeeccececcecececcecoecccccceocccecceco  ococcecccecosc    ec Functions and VariableSeeesceccocceccecccoecc  ecceco  ovsecco  cececectl  e 5 Summary   Input ProcesSingeeeeseesccoccceceecco  cecvcoceccecc t2   e 7 MACR  OSeeccecc060200000009090090290909500905099900906006c  e259627   el Macro Definitioneeececcceccececcc c o c 2200000c0209cc020o922   ec    acro Invocationeeeseecccccccceeebtecceccccsccceccecccccoccetta    eS Summary   MacrOSeeeecsceccececoscececoescecosoevcocsceccccecccecesceccsc       10 APPLICATIONS NOTESe oeccece520006090009  0  5060090069099992090c  2c22  1  el CaragraphSeeeeeeeeesecccecocceceeccocecccesecsssccccccccotecccec tb  ec Sub he adingSeccececscecscceseceeosecessesssecsecesescsese ctf  x Major Head  ngSeeeeecececececccecccececsccecccccccecscceccccceccccecil   ES Quotat  ionSeeeeeeescooeccecetooccecece  ccecec  eeccsccc  sccsscco  csccscec zt   05 ItalicS  oececoeceoeccccece  teceecce  ocecosocece  secce  eccc  ecc  ccecc  otcoeccec t  e 6 DBoldfacinaeeeeeseccecceccececcecoescococccescscecccccecocco  ccecccce  tB  e 7 FxampleSeeeececcccccocceceesocceecsocceccscccesscesoceceocececl    8 Table Constructioneeeeececccecscceoeccococcvecccececceco  cccoc    11 SUMMARY OF COMMANDS SORTED ALPHABETICALLY eoccccvccccees e250   012 SUMMARY OF COMMANDS GROUPED BY FUNCTIONessssosoceoooosos 253  el Fitting and    arain AdjustmMeNnteasesessesesoesosososossooo oes 253  
163. factor in the preparation of a  baseline program is that the resultant COBOLewbe program  must be transportable to all of the target operating en   vironments of intereste The exact sequence of steps to be  followed and the depth of nesting of calls to code modules  and or reusable modules is really a matter of personal  prooramming style  The Workbench will support almost any    technique possible     The basic form of the baseline program that is retained for  maintenance can contain references to reusable modules that  are available for public use  defined in the projects ac     plications or general Libraries      Georgia Institute of Technology COBOL Workbench    Section 4 UTILIZATION Page 97      2    Preparing the Complier unigue Macro Libraries    There must be a complete macro Library prepared for each  target operating environment whether they are distinguished  by hardwares softwares or other differences  As can be seen  from the example in Appendix 2 4 macro Libraries can become  quite Lengthy since they each must contain a macro defini   tion for every environmentally unique feature even if that  uniqueness applies to only one environment  AS can be seen  from the examples  macro statements can be utilized to accom   plish several actions  1  Selection of one   or more  of several  statements in the original program based on  the name of the target environmente  2  Expansion of a statement in the original  program which may pass parameters to the  macros  3  FlLi
164. function call is copied into  the command Line in place of the function call itselfe Line  separators  newlines  present in the  lt   net gt  s output are    replaced by blankse No quoting of   net   output is per   formeds thus blank separated tokens wilt be passed as  separate arguments   If quoting is desired  the filter     quote  can be used or the shell variable   quote opt  may  be set to the string  YES  to cause automatic auotation      A   net   may of course be any networks all the syntax  described in this document is applicable  In particulary  the name of a variable may appear with the brackets 3 thus   the value of a variable may be substituted into the command  Line     Georgia Institute of Technology COBOL Workbench    Appendix 4 COMMAND INTERPRETER Page 184    4 2 48 Conclusion    This concludes the description of command syntax and  semantics  The next section contains actual working exam   ples of the full command syntaxe along with suggested ap   plicationse    4e5e APPLICATION NOTES    The next few sections consist mostly of examples of current  usage of the command interoretere Extensive knowledge of  some Subsystem proarams may be necessary for complete under   standing of these exampless but basic principles should be  clear without this knowledge     4e5e1 Basic Eunctions    In this sections some basic applications of the command  Language will be discussed  These applications are intended  to give the user a  feel  for the flow of the  Lanauages  wi
165. g the Baseline Program    As noted aboves the baseline program is prepared utilizing  only COBOLewbe which contains statements that act as macro  calls to handle compiler unique features and reusable module   statements  which are also expanded using a macro call  procedure  It is important that the baseline program retain  these features tn order to maintain its iIntegritye Any  changes or modifications to the baseline program must follow    these same standards     Maintenance of the baseline program is usually performed for  one of two purposes   1  To modify or increase the functionality of  the system as directed by the system  proponentss or  2  To correct errors in the program resulting  from Logical errors in the design of the  baseline program or  mechanical  errors  caused by the expansion aalan transportation    phases of program processinge    The first situation is a fairly standard situation and  merely requires reworking the code in the baseline proorami  however  the Latter circumstances which will certainly occur  quite frequently tn a dynamic world of changing target en   vironmentse modifications of target system softwares etc     will necessitate changes in the definitions of the reusable    module and compiler unique macro lLibraritese    Georgia Institute of Technology COBOL Workbench    Section 4 UTILIZATION Page 100    4e2e7 Maintaining RELEASES and VERSIONS    There is actually no ied to maintain a program RELEASE  other than the activities described 
166. gister switching that jis    needed as a result of a process exchange     SeceleheS input output    Four types of access modes for I 0 are available     i   Arect Memory Access  DMA    M  2 Sirect Memory Channels  DMC   i  Jirect Femory Transfer  DMT   4   irect Memory Gueue  DMQ     There are a maximum of 32 program assignable DMA channels   These   re controlled by high speed channel address  reaisterse They ere used for high speed peripherals such as  fast disk devices   The maximum transfer rate ts 2 5 million    bytes oer second     The DME channels are controlled by channel address words in  the first 3A bytes of main memory  Up to 2248 of these  channels can be provided  Their use is mainly for medium  speed 1 79 transfers such as data communications transfers     The maximum transfer rate is 960K bytes per seconde    Georuta Institute of Technology COBOL Workbench    Section 5 IMPLEMENTATION Pade 113    The DT channels are used zy high speed device controllerss  Cedee controllers for moving head disks4 that execute char   net controt prooramse The maximum throughput rate is 2 5    million bytes per second     The DEG mote of operation provides a circular queue for han   dling communication devices  It reduces operating system  overhead by eliminating interrupt handlina on a character     by character basis     5e2    1 146 Program Environment   Programs on the Prime 4 0 operate in a multi segment en   vironmente This consists of a stack segment for Local  variables  a
167. h    Appendix 4 COMMAND INTERPRETER Page 188    4 e     invoke the editor best suited to a terminal    1f Enargs   set f    Lara 1   quote   f i    case Cline   when 1C  se  t consul fse  paramsl  f   when 11  se  t 5200  se paramsi  f   when 15  se  t b150  se params  Cf   when 17  se  t 9t40 fse_params   f   when 18  se  t 6200  se params     fJ  when 25  se  t b150  se_params   fJ  out  ed Ef   esac    The first  if  command sets the remembered file name  stored  in the shell variable  f   in the same fashion that   ssr   was used to set the search rule  above   The  case  command  then selects from the terminals it recognizes and invokes  the proper text editor  The argument of  case  is compared  with the arguments of successive  when  commands until a  match occurss in which case the group of commands after the  twhen   is executed  if no match occurs  then the commands  after the out     command will be executed   If no  out  com   mand is presente and no match occurs  then no action is  taken as a result of the   case    The  esac  command marks  the end of the control structure  In  e 4  the    case  com   mand selects either 3  se   the screen editor  or fed   the  Line editor   and invokes each with the proper arauments  Cin  the case of  se 4  identifying the terminal type and specify   ing any user dependent personal parameters      The  goto  command may be used to set up a Loop within a  command file  For examples the following command file will  count from 1 t
168. has also been given to table constructione  lt ALL of  the macros presented here are available for general use in  the file    extra fmacro report    which may be named on the  command Line invoking  fmt  or may be included with a  sour   ce  command as follows     eso  extra fmacro report    Georgia Institute of Technology CUBOL workbench    Appendix 6 FORMATTER Page 246    6 10 1 Paragraphs    One standard way af beginning a new paragraph ts to skip a  Line and indent by a few spaces  This can be done by civing  an sp commana followed by a ti commande A better way is to  define a macro  This allows procrastination on deciding the  format of paraaraphs and facilitates change at same tater  date without a major editing effort     Here is an example of a paragraph macro     e  pp     begin paraaraph  ede op   e SD   ene 2   eti  5   ans   een PE    First a Line is skipped via the  space  commande Thene  after checkina that there is room on the current page for  the first two Lines of the new paragraphs a temporary in   dentation is set up that is five cotumns to the right of the  running indentation with the two ti commands  Finallys pno   space mode is turned on to suppress unwanted blank Lines     6 10 2 Sub headinas  Subx headina    s may be easily produced with the foltlowina  macros    edi sh     subheading  ede sh   eSp 2   ene 4   ebf   RM   epp   een sh    Firsts two blank lines are put out  Then it is determined  if there are four canticuous Lines on the current page 
169. he   p  command by itself prints the  current  Lines The   current  Line is the Last Line you have edited in any way    As a matter of facts the Last thing we did was to print all  the Lines in the buffers so the last Line was edited by be   ina printed       d  allows you to use the symbol      read   dot   to represent the current Line  Thus    ep  the Lazy doge    is the same as    e9ep  the lazy doge    which is the same as just    Georgia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 197    the lazy doge        can be used in many ways    For examples    le2p   Fhe quick brown fox  jumps over   leep   The quick brown fox  jumps over   e  p  jumps over   the Lazy doge    This example shows how to print all the Lines up to the  current Line  Cleep  or all the Lines from the current Line  to the end of the buffer     p   If for some reason you  would Like to know the number of the current Lines you can  type    3    and  ed  will display the number   Note that the Last thing  we did was to print the last Lines so the current Line  became Line 3           fis not particularly useful when used alone  It becomes  much more important when used in    Line number expressions    Try this experiment     e  lp  jumps over       1  means  the line that   s one Line before the current  Line         1p  the lazy doge           1  means  the Line that is one Line after the current  Line      e 2ee7lp  The quick brown fox  jumps over          2e  e   7lp  means  print
170. he Lazy doge    To stop entering text  you must enter a Line containing only  a period  immediately followed by a newlines  as in the last  Line above  This tells  ed  that you are finished writing  on the ouffers and are ready to do some editing     The buffer now contains     The quick brown fox  jumps over  the lazy doa     Neither the append command nor the final period are included  in the ouffer    just the text you typed in between theme    Seie3d Writing text on a file   the Write command    Now that you have some text in the buffers you need to know  how to save ite The write command  w  is used for this  purposes  It is used Like this     w fite    where  file  is the name of the file used to store what you  just typed ine The write command copies the contents of the  buffer to the named files destroying whatever was previously  in the file  The buffers however  ts untouched  whatever  you typed in is still there  To indicate that the transfer  of data was SuccesSfuls fed  types out the number of Lines  writtene In this examples  ed  would type     T   J    It is advisable to write the contents of the buffer out to a  file periodically  to insure that you will have an up to   date version in case of some terrible catastrophe  like a    Georgia Institute of Technology COBOL Workbench    Appendix 5   EDITOR Page 193    system crash      Sele4 Finishing up   the Quit command    Now that you have saved your text ina files you may wish to  Leave the editor  The  quit  co
171. he user is substituted  into the template at the point of the amper   sands hopefully providing a full pathname  that locates the object code needed     40353 Conclusion    This concludes the Application Notes sections    Georgia Institute of Technology COBOL Workbench                                                      Appendix 5 EDITOR Page 191    APPENDIX 5    EDITOR  GEORGIA TECH SOFTWARE TOOLS SUBSYSTEM    The Software Tools Subsystem provides two editorss  ed  and   se   The major difference between the two editors is that  tse  allows the user to view a window of text during the  editing session  To enhance the window features   se  also  provides some additional capabilities  for example special  characters for controlling the position of the cursor  The  basic editing commands available on both editors  thoughs  are identical     Sele ED  fEd    is an interactive program that can be used for the  creation and modification of  text    Text  may be any col     tection of character datas such as a report  a programs or  data to be used by a proarame The nature of the next few  sections is that of a tutorials  and as suche a step by step  journey through an editing session     5el   1 Starting an Editing Session    Since you are in the Subsystems  the command interpreter  should have just printed the prompt  JJ   To enter the text  editors type      ed  followed by a newline       Throughout this introductione boldface is usec to indicate  information typed by the user 
172. he win   dow so that the Line previously at the top of the window is  at the bottom  This can be used to  page  backwards throuch  the file  The  i  commands  which in the regular editor  prints about a screenfull of text starting with a specified  Line   positions the window so it begins at the specified  Lines and Leaves the current Line pointer at this Line   Thuss a  3  can be used to page forward throuah the file     The  overlay   v  command in the regular editor  ed  only  allows the user to add onto the end of lines  and can be  terminated before the stated range of Lines has been proces   sed by entering a period by itselfe as in the  append  com   mand  Sut in  se   this command allows arbitrary changes to  be made to the tlinese and the period has no special  meaninge To abort before atl the Lines in the range have  been covered  use the  funny return  character    ctrl    Fde  Doing this restores the Line containina the cursor to the  state it was in before the  v  command was started        Se  has extended Line number syntax  In generals whatever  appears in the Left margin on the screen is an acceptable  Line number and refers to the Line displayed in that row on  the screens    Georgia Institute of Technology COBOL workbench    Appendix 6 FORMATTER Pace 222    APPENDIX 6      FORMATTER  GEORGIA TECH SOFTWARE TOOLS SUBSYSTEM    Gele BASICS    6ele1 Introduction     Fmt  is a program designed to facilitate the preparation of  neatly formatted text  It provides m
173. his Level      Georgia Institute of Technology COBOL Workbench    Appendix 4 COMMAND INTERPRETER Page 176    A branching  lt net gt  with resolution of defaults   node  i  node2 fel node3     Data flows from output port 1 of nodel to input port 2      of node3 and output port 1 of node  to input port 1 of  nodes5      4 2 3 Nodes      node   ti  s lt label gt  E  lt simple node       compound node   J        simple node       compound node           simple node    3    Xi o redirector gt     lt command name       lt i o redirector gt      argument          compound node    i      lt ifo redirector gt           net      lt net separator gt    net                  i o redirector gt          1 o redirector gt  i   lt file name            port        C   port   J        file name      C   port              file name                  port   J    Cnet separator   ii      lt command name gt        file name      Clabel gt  t     lt identifier gt     The   node   is the basic executable element of the command  Languagee It consists of a label  string of letters   digitss and underscorese beginning with a letter     or an op   tional label followed by one of two additional structures     The first option is the   simple node    It specifies the  name of a command to be performed  any arguments that com   mand may require  and any  lt i o redirector gt ds that will affect  the data environment of the command in addition to   pipe  connection gt s in any Cnets gt  containing the   simpl
174. hoice of target machine macro library into  an executable COBOL program in a form which  is acceptable to any one of a number of tar     get COBOL compilerse    Specificallys in order to build complete COBOL   wbc prooramss  the Workbench must have the following capabilities  The  Workbench must be able to  1  Collect and Link together all of the ap   propriate interface components of the input  COBOLewoc modules producing an output program  in COBOL wbce These interface components  include but are not Limited to data  definitions and file specifications   2  Resolve or identify unresolvable naming  inconsistenciese  3  Fstablish consistency in data and file  definitions or identify possible problems    that might result from inconsistenctese    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 35  22 5 3 Transportion    One of the most important capabilities of the Workbench is  the development and transportation of portable COBOL  programse This    goal 4s achieved by the development of  baseline COBOL programs in a compiler independent form  in  COBOLewbc  and the completely automatic translation of these  programs into the COBOL dialect of a particular target com     piler system     This translation could have been accomplished by the  development of a new COBOL dialect and of a new compiler to  accept this Language  This was not the chosen solution  A  new COBOL compiler and a new dialect would only add to the  problem  While it would be pos
175. i  Spacing and Page Controleecececcccccccccococccceocecccsccceccco 25    IN  Margins and Indentationeeesecceccecsocceccccooccecececococ 2D  e4 Headingss Footings and Titleseeececcecoccecccceoececoecccecccec 55  e 5 TabulatiOneeeeecoccececccecoceceee ososcceecccec  cteissoceccceccecccteoc 2b  e   iscellaneous Commandseseeeeecceccececececcececcceccoecsocccecec  2 26  e 7 Input ProcessSingeeeessecececcoccoeccevcoeccecccccoscccccccccccec b    eB MaCPlOoSes  eecceccoococeo  ec    eeooeteesto  o  e toi  00006c6060600000200002900092972 27  Appendix T  MACRO PROCESSOR   e ee  0o006o  060090929000902090909906250902209   02927 20    el THe FORMAT OF A MACRO DEFINITIONeseeeocc000990609006990929292220 5D  e c BUILT IN FUNCTIONS  6e  ee0e9  e00990206090090006006  620002090090999092   609   2 7    Georgia Institute of Technology COBOL Workbench    Page xi    Appendix Be THE PRIMOS FILE SYSTEM eococccoco0009029209009c09cc9ec6l    el ORDINARY FILESo 6ec6c0600600060000000000000209000000000000202c092cc1  ec OIRECTORI  IES  e506o060oc006000020900090020900006020920909909929090020002ct6c  ct C  e 2 PATHNAMES  006006060060090600060200000900909009090000200000209209050050090c 5   e 4 PROTECTIONeeeecoce000000900009090909909009006090909099090090909002090909c0c602b5     e 5 SUMMARYeecocc e0009009929090090090902090000090990999009099000090090000900c0ccc 5    pe    Appendix De COBOLewbCeoocoeccecceccecceccccccteecccececcteccscecceccceoc b    ol USAGE OF COBOL FEATURE Se  e066cce00060c20009099909090000c6co
176. icatlon dependent COBOL program  In other  wordss the final use and the detailed specifications of each  module are dictated by the specific program under develop   mente The goal of the Workbench is to give programmers    the  ability to develop modules that can be used in several dif   ferent programse These modules will have  standard  inter   faces and will be capable of being parameterized internally  to match the specific requirements of the COBOL program un   der development  The purpose of providing this capability  is to facilitate the rapid and Low cost preparation of  prototype COBOL systems providing a specified capability and    functionality without the expense and time reauired for the    design of a completely new COBOL system     Georaia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 14    TABLE 2 1 1    CAPABILITIES OF THE COBOL PROGRAMMER S WORKBENCH                          Ie Programming Subsystem    Ae Program Preparation    1  Programmer  s Environment        ae Special COBOL Screen Editor     be Standards Enforcement       e Library Support       Program Preparation Skeletons       Utilization of Reusable Modules     2e Transportable Baseline Program     ae COBOLewbe     3  Program Processing     ae Expansion     be Library Support     Ce Comptler  Unique VERSIONS     Be Program Testing    ie Test  Harnesses      2   Test Data Generation i   3  Test Libraries f   Ce Program Maintenance    le Incremental Changes     2  Support of
177. ine       This procedure ensures that you will  get the  next  occurrence of the pattern you were Looking  fory and that you will not miss any occurrences because of  your current position in the file     Suppos s however  that you do not wish to find the  next   occurence of a words but the previous occurrence of a worde  Very few text editors provide this capabilitys however  ted   makes it simples Just surround the pattern with back     slashes     Georgia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 200    Naquick   The quick brown fox    Remembers  backslashes    search backward  The backward  search  or backscans as it is sometimes called  wraps around  the file in a manner similar to the forward search tor  scan   The search begins at the Line before the current  Lines proceeds until the first Line of the file is seens  then begins at the Last Line of the file and searches up  until the current Line is encountered  Once agains this is  to ensure that you do not miss any occurrences of a pattern  due to your current position in the fite      tFd  also provides more powerful pattern matching services  than simply looking for a given string of characters   A  note to beginning users  this section may seem fairly com   plicated at first  and indeed you do not really need to un   derstand it completely for effective use of the editor   However  the results you might get from some patterns   woulc  be mystifying if you were not provided with some ex   pl
178. ined below   1  Reduce cost and increase productivity   2  Avoid reprocramminge  a  Support the multiple use of program  modules   b  Reduce the probtems of system  maintenance   c  Support easy transportation of a Large  program to a number of operating en     vironments without requiring reprogram     minde  3  Maintain control of the baseline procrame  a  Code   b  Documentation     4  Support the quick and Low cost development of  5readboard systems that will allow the  examination of a system or program concept  without incurring the full cost of complete    developmente    Georaia Institute of Technology COBOL Workbench    Section 1 INTRODUCTION   Page 5    1 5 QPERATING ENYIRONMENT OF INTEREST    Although almost any programming environment would benefit  from the ideas and facilities that are incorporated into the  COBOL Programmer s Workbench    the research on the Workbench  was focused primarily on an environment having the following  characteristics   1  A single organization is responsible for the  destane implementations and maintenance of a    Large number of data processing systemSe    2  The data processing systems are written in  COBOL   3  The systems are quite Larges usually consist     ing of more than 100 000 COBOL statements and  often much Larger    4  The  data processina systems have a long  Lifetime   five to eight years   and they  must be maintained by the preparing organiza   tion throughout their entire Lifetime    5  The personnel in the mainten
179. int files   your command might Look Like     l print year735 year   year 5 year 6 year     If you use a text editor to make a file named  reports  that  contains this commands you can then print your reports by  typing    2 reports    No special command is required to perform the operations in  this  command files  simply typing its name is sufficient     Any number of commands may be placed in a command file  It  is possible to set up groups of commands to be repeated or  executec only if certain conditions occur  See the   p     plications Notes for examplese    Georgia Institute of Technology COBOL Workbench      S28 Spas as    Appendix 4 COMMAND INTERPRETER Page 165    It is one of the important features of the command  interpreter that command files can be treated exactly Like  ordinary commands  As shown in Later sectionss they are ac   tually programs written in the command languages many Sub   System commands  fet   fos   and  rcl     for example  are im   plemented tn this manners     401 6 Doing Repetitive Tasks zzz Iteration    Some commands can accept only a single araumente One exam     ple of this is the  fos  command   Fos  stands for  formats  overstrikes and spool   It is a shorthand command for  printing  formatted  documents on the Line printer   A     formatted  document is one prepared with the help of a  program called a  text formatter  which justifies right  margins    indents Paragraphse etc  This document was  prepared by the Software Tools text form
180. ion  of a document is required  The facility providing document  control must provide the user access to any revisions allow  the user to create new revisionss and insure that no change  made to a document is Lost  The Last capability will help    to insure against an accidental Loss of information     2 6 1 Overview of Document Control    The Document Control System will handle all programs and  supporting documentation  Any user or process needing a  specific revision of any document  the term document refers  to both programs and documentation  will request that  revision from the Document Control Processe Thuse both the  Documentation Preparation System and the Program Preparation  System will have to interact with the Document Control  System in order to obtain documentse The Document Control  System will store all revisions of all documents in various    Libraries     Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 51    FIGURE 244 171    DOCUMENT CONTROL OF ALL DOCUMENTATION                                                               Documentor     Documentation Preparation    MERE Laul amp stt khu               4     l            l                             EREMO Vela                                                           2      Librarian         Document Control    l ater resecscssssemese                        4 A A                               ie ae           l                     eee d  UN  PS                   Libraries     
181. ion process often in   volves copying text from other sources  for examples other  documentation or actual program text  The Latter situation  often arises when one wants to present an example within the  documentation or when one wants to discuss the text of the  programe Thuse an important editing feature of the  Documentation System will allow text from any source to be  inserted into any document while it is being prepared or  modified  Since the copy capability is included as part of  the editing capabilitiess one will be able to obtain text  from other sources and then trim and modify the text to suit    his needs     Z2eSe2e2 Updating Documents    The capabilities provided by the Workbench for originally  preparing documents will also be available for updating  documents  The documentor will be given atiina  capabilities which enable him to inserts   deletes reorders  and modify texte As mentioned aboves he will also be able  to copy text from a variety of sources  including program  texts and will be able to perform this while entering or    modifying the ortginal document     Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 50    2  6 DOCUMENT CONTROL    Programs and supporting documentation often exist simul   taneously in several different forms  For examples a  program may be in production use while at the same time im   provements are being developed for ite A form of document  control that can selectively retrieve any specified vers
182. ione Plus signs may be omitted  if desirede  Ex   parse  5     Llexical s z2    lexical 24   5      6     COBOL Workbench    Appendix 5    EDITOR Page 214    5el1    17   5 Pattern Elements          ccli        D    amp ccl       fCpattern       2ac  ajait      Summary of Pattern Elements    Matches the null string at the beginning of a  Lince Howevers if not the first element of a  satterne is treated as a titeral percent  siane    Matches any single character other than  newlinee     atches the newline character at the end of a  Linee Howevers if not the Last element of a  patterns is treated as a Literal dollar sign     Matches any single character that is a member  of the set specified by  lt ccl gt e    lt ccL gt  may be  composed of single characters or of character  ranges of the form  lt cl gt   lt c2 gt    If character  ranges are used    cl   and  lt c2 gt  must both  helong to the dicitss the upper case alphabet  or the Lower case alphabet     Matches any single character that is not a  member of the set specified by   ccl       In combination with the immediately preceed   ina pattern elements matches zero or more  characters that are matched by that element     Turns off the special meaning of the im   medtately following character  Lae that  character has no special meanings this is  treated as a Literal  a      Tags the text actually matched by the sub   pattern specifed by  lt pattern gt  for use in the  replacement part of a substitute command     Appearing i
183. is much more  generally applicable than a reusable modules An example of  a skeleton is the partial description of the file definition  section of the program in which those characteristics which  have been established as locat standards for the programming  organization are already specified and the skeleton in   dicates where further information should be provided by the  programmer utilizing it in the preparation of a specific    procram  There can also be program development skeletons    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES l Page 23    which handle much Larger tasks  There are even instances of  skeletons being utilized for the development of complete    programSe    22 24 Use of Libraries    Different types of modules and skeleton programs are  provided on different libraries to permit ease of reference  and to prevent improper access  The Libraries defined are  described jin section 2e2e4el and include Libraries for the    followings    1  General purpose moduleSe   2  Modules for a specific application areae   3  Modules under development for a particular  project    4  Programmer developed modules for personal  USC e   R3 Test modules    6  Compiler unique modules     2 2 5 Transportable Baseline Programs    The development and maintenance of a complete COBOL program  that can be easily transported to a Large number of target  computer operating environments is certainly one of the most  important products produced by the COBOL Pr
184. is the number of  the manual and  rr  ts the revision number  You ere asked  to produce a List of the numbers of alt manuals at the first  revision stage  The following command will do the job     j Lf  c   find 401     Lf  c  Lists the names of all files in the current direc   torye The  pipe connection   vertical bar  causes this  Listing to be passed to the  find  commands which selects  those tines containing the string   01  and prints them   Thus  the pipeline above wilt print all filenames matching  the conventional form of a fi  rst revision manual name     The ability to build special purpose commands cheaply and  quickly from available tools using pipes is one of the most  valuable features of the command interpreter  With prac   tices surprisingly difficult problems can be solved with  eases For further examples of pipelines  see the Ap   olications Notes     Georgia Institute of Technology COBOL Workbench     m a                    Appendix 4 COMMAND INTERPRETER Page 169    Combinations of programs connected with pipes need not be  Linear  Since multiple standard ports are availables  programs can be and often are connected in non linear  networkse  Some networks cannot be executed if the proarams  in the network are not executed concurrently  The command  interpreter detects such networks   and prints a warning mes   sage if they cannot be performed   Further information on  networks can be found jin sections 6 7 2 2   Beleteds and  beleSele    4 1 9 Compound Nod
185. le for three major    reasons    1  Storage is used inefficiently to maintain  multiple copies of  essentially  duplicate  information    2  A   programmer making a modification may not be  modifying the Latest versione   3  It is very difficult to remove a modification    other than the Latest     A better approach is to store the original module source    Georgia Institute of Technology COBOL Workbench        ee es a    Section 5 FUNCTIONAL COMPONENTS Page 82    code only once and to record all modifications as  insertionss deletions  or replacements to the original file   To simplify operation by avoiding the need for special crea   tion facilities  the original Module Source File may be  recarded as emptys with the first update consisting of a  series of insertions  The Workbench Source Control Facility    is suggested to provide these features     SeSe2el Structure    The Source Control Facility maintains a project s source  code in a number of data files  hierarchically organized   Fach module is maintained as an individual file which may be  modified individuallye Larger program fragments   while  stored internally as a collection of module source files   may be treated Logically as a single file and modified as a  unite This process of combination of modular subunits to  produce Larger units is carried upwards throughout the  project source Library  The PRIMOS file system  see  Appen   dix 8  facilitates the use of this kind of hierarchical    structure     Sedecec Fe
186. loping  organization will review and approve modifications to be  made to the system the next time a major release is  preparede These modifications will be stored in the  documentation data base appropriately Linked to those  portions to which they apply so that they are readily  available and apparent to the project team when the new    release is preparede    3050405 Maintaining Comments on Documents    The technique for maintaining comments on management  documents ts identical to that for user documents  see sec     tion 34 54  3  4      Georgia Institute of Technology COBOL Workbench    tam srmn            o                  Section 3 FUNCTIONAL COMPONENTS Page 88  35 4 6 Working Documents    The techniques used to handle working management documents    is identical to that for user documents  see section 3545 3      5 5 4 7 Project Status and Control    Since the Document Control System maintains all revisions of  all documents and all comments pertaining to those  revisions  one should be able to easily obtain the status of  a project  Since the Document Control System possesses the  necessary information to report on the status of a projects  it is responsible for providing this service  The user need  only specify the documents to be analyzed  and the Document  Control System will provide information indicatina the  revisions available and the change requests which have been    acted upone    Georgia Institute of Technology COBOL Workbench    Section 3 FUNCTIONAL CO
187. m its standard input file or from files specified as  oaramcters on the command Line  It is also possible to  dynamically include the contents of any file in the midst of  formattina another  This aids greatly in the todularization  of Laraese otherwise unwieldy documents  or in the definition  of frequently used sequences of commands and texte    The   source   command is available to dynamically include the  contents of a file     eso  lt file gt   The parameter  lt file gt  is mandatory  it may be an arbitrary  file system pathnomes ore as with file names on the command    Lines a stngle dash       to specify standara input number  ones     Georgia Institute of Technology COBOL Workbench    Appendix 6 FORMATTER Paae 24     The effect of a  source  command is to temporarily preempt  the current input source and begin reading fron the named  file  When the end of that fille is reached  the original  source of input  is resumed  Files included with  sourcct  commands may themselves contain other  source  commandss if  facts this  nestina  of input files may be carried out ta  Virtually any depth      Fmt  provides one additional command for maninulating input  files  The tnext file  commanc    enx  lt file gt     may be used for either one of two purposes  If you specify  a  lt file gt  parameter  alt current input files are closes   including those opened with so comnands s and the named  file becomes the new input source  You can uso this for  repeatedly processing the same
188. m the input source  To include a func   tion cali in the definition of a macro so that its  interpretation will be delayed until the macro is invokeds  the opening bracket should te preceded by the escape charac   ter  a   For examples    e  tm     time of day  ede tr   eCtime     een tm    would produce the current time of day when invokeds whereas  et tmn     time of day  ede tm   time     een tm    would produce the time at which the macro definition was  processed     Georgia Institute of Technoloay COBOL Workbench    Appendix 5  FORMATTER Page 244    6 9 2 Macro Invocation    Againe    macro is invoked Like an ordinary command  a  control character at the veginning of the Line immediately  followed by the name of the macro  Soa to invoke the above   time of day   macros one misht say  etm   As with ordinary commandss macros may have parameters  In  fact  anything typed on the Line after the macro name is  available to the contents of the macro  As usual   blanks  anc tabs serve to separate parameters from each other an    fror the macro names if it is necessary to include a blank  or 4 tab within a parameter  it may be enclosec din quotes   Thus     parameter one     would constitute a single parameter and would be passed to  the macro as    parameter one  To include an actual quotation mark within the parameters  type two quotes immediately adjacent to each other  For  instances      auotoecd string     would ve passed to the macro as the single parameter    quoted stri
189. machores  are associated with each event that can cause an excnangee  They occupy two words of storage     ne word contains either     counter which indicates how many times an event has oc   curred without being serviced by a process or the number of    processes waiting for an event dependina on the sian of the     it  ut  cr    numoere The second word contains a pointer to a Wait L    of processes waiting for the evente    The virtual address space is organized as multipole seaments  each with sixty four  64  2kebyte pagesa A virtual acdress  consists of a seament numbers a page numbers and a word or  displacement number  A physical address can be obtainer by  means of segment tables and pace maps which are maintained  in main memory  The system uses demand paging with the LRU    replacement scheme  To speed access to memory there 75 a    Georgia Institute of Technoloay COSOL Workbench    Section 5 IMPLEMENTATION Page 122    segment table lookaside buffer which holds physical page ad   dresses and a hiah speed cache memory which contains the  most recent memory references  To satisfy a memory  references the cache memory is addressed on the basis of the  word number of the virtual address and the seqment table  Lockasicde buffer is consulted to determine it the word ob     tained from the cache is the desired one     5 2 1 2 2 Prime COBOL   COBOL on t e Prime 400 system is based on the ANSI COBOL    525 1974 standarda Programs up to 32 million bytes can be  supported  ALL 
190. mats and prints all manuals in the current  directory with revision numbers  01      Function calls are frequently used in command filess  particularly for accessing arguments passed to theme Since  the sequence  Lf  c   find pattern  occurs very frequently     it is a good candidate for replacement with a command file   it is only necessary to pass the pattern to be matched from  the araument List of the command file to the  find  command  with a function calle The following command files called   filest  will illustrate the process     Lf  c   find  arg 1      arg 1  retrieves the first command file argument  The    function call then passes that argument to  find  through  its argument Liste Files  may then be used anywhere the    original network was appropriate     files  01    1 print  files 4 01   4 fos  Cfites 4 011     Georgia Institute of Technology COBOL Workbench            a                   A      LIE Ye    Appendix 4 COMMAND INTERPRETER Pace 171    401011 Variables    It has been claimed that the command Language is a  programming Language in its own right  One facet of this  Lanauage that has not been discussed thus far is the use of  its variables  The command interpreter allows the user to  create variables   with scopes and assign values to them or  reference the values stored in theme    Certain special variables are used by the commana  interpreter in its everyday operatione These variables have  names that begin with the underline   2   One of these is 
191. ments  The documentor will  normally only wish to copy parts of a program or a text  document  This is accomplished by first copying the entire  document and then deleting those portions which are not  desired  Since these operations are all carried out by the  Text Editor  one can easily trim and modify the copied text    to suit the needs of the document being created     4 35 2 Modifying Documents    The modification of documentation is also realized through  the Text Editor  The operations available to the documentor  include insertions deletione and modification of texte In  additions the documentor can copys trims and modify text    from any desired source     Georgia Institute of Technology COBOL Workbench    Section 4   UTILIZATION Page 105    4 3 3 Annotating Documents    It is extremely Likely that after a program or text document  has been released for general use that an error will  e  discovered or a place for improvement will be noticed  Tt   one wishes to point out an error or make a suggestion ftor  improvement  one need only access the annotatino feature of  the Workbenche specify the document of interests incluging  the release and version numberss an  specify the comment  concerning the document  The workbench will appena to the  document the name of the user generating the comment anc  will then Link this collection of information to the proper  documente Those responsible for the document will 5c able  to obtain the List of comments pertaining to any docu
192. ments  act upon these comments  and respond to those identified as    responsible for the comment     The annotatina capability need not only 5e usec on programs  and documentation released for general uses It can also te  used hy the development groups to atid in coordinating altll    parts of a Larae system     4 5 4 Producing Specific Versions    Specific versions of documentation can be maintained and  produced through the document control facilities of the  Workbenche Cocumentation is organized according to a  release number and a version number within a release  lo    create a new version of a releases  one must obtain the    Georgia Institute of Technology COBOL workbench    Rede wi anlar sean  vee          Een Nas Sy  Lut    Section 4 UTILIZATION Page 106    Latest version of the document from Document Controle Any  changess   additions  and deletions can then be made to this  document by means of the Text Editore When alt of the  modifications have been madee Document Control is catted  upon to build a new versione If a new release is to be  constructed   one must obtain the Latest version of the  Latest release and proceed as described above  Finally    iif  the first version of the first release of a document is to  be produceds one need only build the document with the Text  Editor and inform Document Control that the first version of  the first release is to be built  Further details concern     ing Tocument Control can be found in Appendix 5     Georauia Institu
193. mination of a statement in the original  programe    4  390 nothing  copy the original statment      FIGURE 4 22571    PREPARATION OF COMPILER UNIQUE MACROS              gt  Macros for compiler 1  Systems          gt  Macros for compiler 2  Programmer         Text         Editor               laee  772 5   Macros for compiler n    Georgia Institute of Technology COBOL Workbench    ee ae    Section 4 UTILIZATION Page 98    It can be seen from Figure 4 245 1 that it is anticipated  that a systems programmer wilt be required to prepare    compiler unique macroSe    4 2 5 Producing a  Breadboard  Program    A  Breadboard Program is prepared in a manner similar to any  othor program or module with two exceptions    1  The emphasis is on preparing a prototype  program providing a close approximation to  system functionality desirede not on meeting  all   user requirements or on performance and  efficientye   2  The breadboard program is not meant to be  portable to a number of operating en   vironmentse   As a result of the two factors cited above  the developer of  a breadboard proaram will make much heavier use of reusable  modules even if they do not provide exactly the detailed  functionality desired and even if they are compiler uniques  The steps in the preparation and processing of a breadboard  orogram are basically the same as those required for a    baseline programe    Georgia Institute of Technology COBOL Workbench    Section 4 UTILIZATION Page         4e2e66 Maintainin
194. mmand  a  ids provided for  this     The next thing you see should be the  J  prompt from the  Subsystem command interpretere If you did not write out the  contents of the buffer  the editor will respond      9     not saved     This is to remind you to write out the buffers so that the  results of your editing session will not be Lost  If you  intended that the buffer be discarded  just enter  a  again  and  ed  will throw away the buffer and terminate     When you receive the  J  prompt from the Subsystem command  interpreter  the buffer has been thrown aways there is ab   solutely no way to recover ite If you wrote the contents of  the buffer to a files then this is of no concerns if you did  nots it may mean disaster     To check if the text you typed in is really in the file you  wrote it toe try the following command     j cat file    where  file  is the name of the file given with the  w  cor   mande   Cat  is a Subsystem commanc that can be used to  print files on the terminal  Ifs for examples you wished to  print your file on the Line printers you could say     J pr file    and the contents of  file  would be queued for printinge     Sele5 Reading files   the Enter command    Of courses most of the time you will not be entering text  into the buffer for the first time  You need a way to fill  the buffer with the contents of some file that already  existse so that you can modify ite This is the purpose of  the  enter  command  e   it enters the contents of a file  in
195. modules may be  developede The main Line module performs a paragraph    PROCESS TRANSACTIONS which is invariante    The module    PROCESS TRANSACTIONS    MOVE  NO  TO VALID TRANSACTION   PERFORM GET VALID TRANSACTION  UNTIL VALID TRANS  OR NO MORE TRANS   IF VALID TRANS  THEN PERFORM PREPARE RESPONSE     will call the reusable module GET VALID TRANSACTION and con     Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 22    ditionally call the module which witt actually process the  transaction  The paragraph PREPARE RESPONSE will typically  not be in the form of a reusable module since each applica   tion program using this general model will have different    requirements for the processing of a transaction     The essential feature of the two paragraphs given in the  example above is that they apply to a Large class of  une  plication programs and therefore may serve as a model for  the development of reusable modules for a commonly    encountered class of proolemse    2e2  2  342 Program Development Skeletons   As contrasted to reusable moduless which provide the com   plete code required to accomplish a specific task or  automatically generate such code after suitable parameters  are provided in the reference to the module  a program  development skeleton is primarily a framework and guide for  the development of a program which might vary quite  considerably from anything that has been developed  previously   lt A program development skeleton 
196. mply specifying the desired  release or the Latest RELEASE by specifying the name of the    document     3e5e3e4 Maintaining Comments on Documents    To obtain a document which is correct and satisfies the  needs of the user communitys a means of obtaining feedback  from the user community must be availablee This service is  provided with the help of the Document Control System  User  comments   which may be either notes on possible errors or  suggestions for changes to a documents  are dated    identified  by the user making the comment  and Linked to the document  to which the comment refers  The one responsible for the  document can obtain the comments from the Document Control  System   act upon thems and reply to the originator of the    comment       45 5 5 Working Documents    Documents in the working state can be identified as such by  the one responsible for the document  The Document Control  System witl then be able to detect that the document is a  working document and will not give that document to a user    requesting a released document     Georgia Institute of Technology COBOL Workbench        o  gt   ee mwm    Section 3 FUNCTIONAL COMPONENTS Page 86    3e5e  Management Documents    Management documents are maintained by the Document Control  System in the same manner as user documents  Examples of  this group of documents are personnel team organization and  task breakdowne project budgets  cost and time performances    project status  test planse etc     5 5
197. ms that can be easily  transported to various target systems       To automatically process the base line programs and  produce a compiler unique version of the program       To provide a document control system for the various  base line programs  libraries  and system supporting  documentation     The work during this period has focused primarily on the first two    components of this system     The specification for the Workbench is now fairly complete and the    initial demonstration of its capabilities has been executed        AD  FINAL TECHNICAL REPORT  GIT   1CS   79 09    For Period Covering 25 November 1976     30 June 1979    PORTABILITY OF LARGE COBOL PROGRAMS   THE COBOL PROGRAMMERS WORKBENCH    By  Philip H  Enslow  Jr        Prepared for   U  S  ARMY RESEARCH OFFICE   P  O  BOX 12211   RESEARCH TRIANGLE PARK  N  C  27709  1 il Under     Grant No  DAAG29   77   G   0045    mea  eie Ae MN       ee   y     gal   y t     i    de     Ci 4   Uy    S A     i  L  i  ys  E  P  Hm  T   i  E  t  ui  i  ni  ra  td  t  MT    t  il    D oi      E       CN  pom mt ts    n    SOP Amt   e     ES  r eas See ces           i  Lad           jy ARO Project No  P  14752   A   EL    I  GIT Project No  G36   618  i  um        u  m R          Ma       d 1     t wo i Xv          A o dte Om it ys      mo Ge ey  eas Te       GEORGIA INSTITUTE OF TECHNOLOGY      SCHOOL OF INFORMATION AND COMPUTER SCIENCE  i i ATLANTA  GEORGIA 30332       a  E Aa ne P j    E X     gt    ssp  n  d 4       SEEN
198. must be resumed  This  can t be done conveniently with the  indent  commands since  it causes a breake Therefore   fmt  has a  temporary   indent  command    eti  N    whose function is to cause a breaks alter the current in   dentation value by  N until the next Line of text is  produced  and then reset thc indentation to its previous  valuee So to begin a new paragraph with a five column ip   dentations one would say    eti  5    6 4 5 Page Offset    As if control over the Left margin position ana indentation  were not enoughse there is yet a third means for controlling  the position of text on the page  The concept of a page of   fset involves nothing more than prepending a number cf  blanks to each and every Line of output  It is primarily  intended to allow output to be easily positioned on the  paper without having to adjust margins and indentation  with    Georgia Institute of Technology COBOL Workbench    Appendix 6 FORMATTER Page 232    all their attendant side effects  and without having to  physically move the papere Although the paoe offset is  initially zeros other arrangements may be made with the   naae offset    command   epo  n    which causes a breake    6e4e6 Summary z Margins and Indentation    Command Initial If no Cause   Syntax Value Parameter Break Explanation   ein  N Nz0 N 0 yes Indent left margin    elm  N N 1 N 1 yes Set Left margine   enl  h N 2 N23 no Set top margin  before and including  page headina     ema  N N 2 N 2 no Set top margin after  p
199. n the case  of delivering output toa files the file is automatically  created if it did not exists and overwritten if it did  In  the case of taking input from a files the file is  unmodified  Examples    documentation  l    causes the data on the file  documentation  to be passed to  standard input port 1 of the nodes    1  results    causes data written to standard output port 1 of the node to  be placed on the file  results      If no  lt i o redirector gt  is present for a given porte then  that port automatically refers to the user s terminal     If port numbers are omitted  an assignment of defaults is  made  The assignment rule is identical to that given above  for  lt pipe connections    the first available port after the  entire   net   has been scanned is used     I O redirector gt s  are evaluated Left to rights so leftmost defaulted redirec   tors are assigned to lower numbered ports than those to  their right  For examples    Georgia Institute of Technology COBOL Workbench    Appendix 4 COMMANO INTERPRETER Page 179    data   requests   trans 2 gt summary 3 gt errors   spool  is the same as  data  1 requests gt 2 trans 2 gt summary 3 gt errors 1 2e1 spool    where all defaults have been elaborated      Trans    might he  some sort of transaction processors accepting data input and  update requests  and producing a report  here printed off   Line by being piped to a spooler program   a summary of  transactions  and an error Listing     In addition to the  lt i o re
200. n the replacement part of a sub   stitute commands represents the text actually  matched by the pattern part of the commande    Appeerin  tn the replacement part of a sub   stitute commands represents the text actually  matched by the tagged sub pattern specified  ny C143 Wa fa    Georgia Institute of Technology COBOL Workbench    Appendix 5 FDITOR Page 215    5e2e SE     Set works much Like the reaular editor  ed 4  acceptina the  same commands with a few differencese Father than display   ing only a single Line from the file being edited  as  ed     does     se  always displays a  window  onto tho files In  Order to do thise fse  must be run from a CRT terminal anc  must be told what sort of terminal it is  This is accon     plished through the specification of a particular parameter  when  se  is invokede    Se2el Terminals Supported     So  is capable of 5einz used from a variety of different  terminals  New terminal types are easily added by making  small additions to the source codee In generale all that is  regquirec of a terminal is that it have the ability to home  the cursor  position it to the upper Left hand corner of the  screen  without erasina the screen s contentss although bac   kspacings a screen clear functions and arbitrary cursor  positioning are tremendously helpfule    The terminals currently supported are the following     adds ADDS Consul 980   This is the same as  consul   below     adm3a Lear Siegler ADM 3A    b150 Seehive International B150    b200
201. na   Within the macros parameters are accessed in a way similar  to functions and variables  the number of the desirec  parameter is enclosed is square brackets   Thuse    13  would retrieve the first parameters    C24    would fetch the seconds and so one AS a Special case  the  name of the macro itself may be accessed with      03    Assume there is a macro named  mx  defined as follows     Georgia Institute of Technology COBOL Workbench    Appendix 6 FORMATTER Pace 245    eil mx     macro example   ede mx      macro named    01 4  Invoked with two erauments      11  and   21      een mx    Thene typing  emx  param 1   param 2   would produce the same result as typing  Macro named  mx  invoked with two arcuments      baram 1  and  param z       Macros are quite handy for such common operations   s start   ina a new paraaraphe or for such tedious tasks as the  construction of tables Like the ones appearing at the end of  each section in this guide  For some examples of frequently  used macross  see the applications notes in the following  pages     6 9 5 Summary   Macros    Command Initial If no Cause   Syntax Value Parameter Break Explanation   ede xx   ignored no Begin aefinition or  redefinition of a  macros   een xx   ignored no Ena macro    definition     6  10  APPLICATIONS NOTES    The next few sections will illustrate the capanilitics cf   fmt  with some actual applications  Most of the examples  are macros that assist in common formatting operationse but  attention 
202. na environments as well as for the    support of the quick development of breadboard programs     Georgia Institute of Technology COBOL Workbench    Section 1 INTRODUCTION Page 2    lelel Goals    The specific goals established for the final portion of this  profect were    1   xamine the problems involved in establishing  a baseline program that could be easily  transported to a wide variety of target  operating environments    2      stablish techniques for the design and im   olementation of such baseline programs  utilizing the maximum assistance possible  from automated software programming aids    3  Nevelop a plan for the maintenance of the  system documentation required for support of  the programs as well as user documents    4  Feamine the feasability of integrating all of  these tools into a single programmer support    environmente    1 1 2 Accomplishments    The project has been successful in accomplishing the  specific goals set out at the beginnings  1  The concept of being abite to develop a single  baseline program that can automatically be  transported to various operating target   en   vironments has been successfully  demonstrated     2  The preliminary characteristics for the COBOL    Georgia Institute of Technology COBOL Workbench    Section 1 INTRODUCTION Page 3    orogrammer s environment have been  established    3  ALL of the software aids have been integrated  into a single operating environment known as    the COBOL Proorammer s Workbenche    lele3
203. nch    Appendix 4 COMMAND INTERPRETER Page 181    tion order of his  lt net gt Se  The use of commas and semicolons  in the command Language parallels their use fer collateral  and serial elaboration in Algol 68      This completes the discussion of the core of the command  Language  The remainder of the features present in the com   mand interpreter are provided by a built in preprocessors    which handles function callse iterations and comments  The  next few sections deal with the preprocessor s capabilities     4e2e  Comments    Any good command Language should provide some means for the  user to comment his codes particularly in command files that  may be used by others  The command interpreter has a simple  comment convention  Any text between an unquoted sharp sign   85  and the next newline is igqnorede A comment may appear  at the beginning of a Lines like this      command file to preprocesss compiles and Link edit  Or after a commands Like this    fileer gt  rf   Ratfor s output goes to the terminal  Or even after a Label  for identification of a loop    stoop   beginning of daily cycle    As far as implications in other areas of command syntaxe the  comment is functionally equivalent to a newlinee    4e2e5 Varlables    Cvariable gt  i3   lt identifier gt     lt set command    3  set     variable           argument       declare command       declare   variable       Carqument gt  J      lt forget command   ti  forget   variable      lt variable gt      The command
204. nch contains a series of Librariess MACLIB ns for  each target compiler ne These contain the text for the  compiler dependent macro expansions for the particular com     piler Ne    The macro Library will serve as one of the inputs to the  macro expansion processor which will translate the compiler   independent program text into COBOL code for compilation by  a particular compiler  Macros may call other macros   but  may not call modules or contain COBOLewbe statements not    included in the compiler for the given target machine     Georgia Institute of Technology COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Paae  amp 1    The Macro Library contains the text which the Macro Proces   sor uses to expand macro calls into compiler unique  notation  It 1s necessary that strict naming conventions be  useds as each MACLIBsi must contain definitions for all of  the same macro calls   Due to the nature of this process  it  is Likely that the majority of macro definitions stored in    any Given MACLIBek will be empty     The necessary MACLIBs will be provided along with the Work   bench and should not be modified by installation personnel     MACLIBs contain only tested code     SeSe2 Control of Source Code    Within the Workbench environments a single module may be  maintained in a number of different versions  The source  code comprising the module may be maintained in multiple  coples   each including  possibly minor  changes from the    originale This approach is not desirab
205. ndix 6 FORMATTER Page 249    6 10 8 Table Construction    One example of table construction  for a table of contents   has already been mentioned in the section dealino with tobs   Another type of table that occurs frequently is that used in  the command summaries in this appendix  Each entry of such  a table consists of a number of  fields   followed on the  right by a body of explanatory text that needs to be filled  and adjustede    The easiest way to construct a table Like this involves us   ing a combination of tabs and indentations as the following  series of commands illustrates     ein  40  eta 14 24 34 4   etc      The idea is to set a tab stop in each column tnset begins a  fields and one Last one in the column that is to be the Left  marain for the explanatory text  The extra indentation  moves the effective Left margin to this column  To begin a  new entry  temporarily undo the extra indentation with a ti  commands and then type the text of the entry  separatina the  fields from one another with a tab character     oti  40  field 1 field 2 field 3 field 4NExplanatory text    The first Line of the entry will start at the left margine    Then all subsequent Lines will be filled and adjusted  between column forty and the right margin     Georgia Institute of Technology COPOL Workbench    Appendix 6    Gelle   Command Initial  Syntax Value  eit un   ead c both  ebf N Noe    DD  N N   eo      ete     x   eCC     e   ece N NIC  edo xx     eC xXx     eer text     eCQ Xx 
206. nes we can use   lt b  and   lt e  to refer to Lines  47 and Fie respectively  remembers we marked them   The   move  command would then be     lt beCeme    Several other features pertaining to mark names are im   portant  Firsts the  k  command does not change the current  Line      You can say     kx   which marks the Last Line with  x   and     wilt not be  changed  If you want to mark a ranae of Lines  the  k  com   mand will take two Line numbers  For instances    Seldka    will mark Lines 5 through 10 with  a   3 e     give each of  Lines 5 through 10 the name  a       The ftn      and apostrophe commands also deal with marks     The  n  command performs two functions  If it ids invoked  without a mark name following its Like    Georgia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 209     n    it will print the mark name of the Line  In this cases it  would print the mark name of the Last Line in the file  If  the  n  command is followed by a mark names Like    4nq    it marks the Line with that mark names  and erases the marks  on any other Lines with that name  In this cases  Line   is  marked with  a  and it is guaranteed that no other Line in  the file is marked with  q      The     and apostrophe commands are both global commands  that deal with mark names  The apostrophe command works  very much Like the  g   command  the apostrophe is followed  oy a mark name and another commands the command is performed  on every Line marked with that name  
207. ng and  verification of the  correctness  of individual modules   before the modules are combined into a single program units  will Lead to the development of quality programs in an    economic fashion     Program testing is aided by a collection of utility  func   tions and modules which are used by the programmer to test  both modules and programse Besides providing the op   portunity for functional testings utilities will be provided  to aid in the measurement of performance  Specific  utilities which might be included for this purpose include   1  main programs to invoke the module in ques   tion and print input and output   test har   nesses    2  routines to generate random input data  meet   ina a specified COBOL format  3  routines to generate random input files meet   ing the conventions of a particular compiler  and machine  4  routines to collect performance datas includ   ing time and space usage    These utilities are placed in a special test Library which    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 39    contains tools used for testing modules and programSe Some  of the essential tools are    1  Test Control System   2  Test Harness   3  Automatic Test Data Generators   4  Automatic Verification System    3   Object Time Monitors    2e3e1 Goals for Iesting Support    Program testing capabilities are included in the Workbench  to provide for the testing of COBOLewbe modules produced us   ing the Workbench Module Preparation S
208. nly after the entire    net   has been examined  and all non   defaulted output ports for the given node  have been assigned  Thuse if the first  lt node  separator   after a   amp node   has a defaulted  output port numbers port 1 wilt be assigned  if and only if no other  lt node separator  at   tached to that   node    references output port  le It is an error for two    node separators    to reference the same output porte  This  particular behavior may be changed in the  future to allow  forkino  output streams    which would be copied to more than one  destination      Ce If the destination    node gt  number is omitteds  then the next node in the    netd  scanning  from Left to right  is implied  Frequently a  null  lt node gt  is generated at the end of a    Georgia Institute of Technology COBOL Workbench    Appendix 4 COMMAND INTERPRETER Page 175    gnet gt  because of the necessity for resolvina  such referenceSe    5  If the destination  lt node gt  s input port number  is omitted  then the next unassigned input  port  in increasing numerical order  is im   oliede As with the defaulted output ports  this action takes place only after the entire   lt net gt  has been examined  The comments under   1  above also apply to defaulted input  portSe    In addition to the defaultss specifyina inout output connec   tions between widely separated  lt node gt s is aided by alter   native means of giving  lt node gt  numbers  The last  lt node gt  in a    net   may be referred
209. nsferred  from the programmer s personal Library to the project  Library only after passing the standards enforcer and under   going thorough testing  Modules developed by the project  should be added to the application library or other general   access libraries only after complete teste Once a module  has been transferred to a permanent librarys any further    modification must maintain interface behaviour     FIGURE 4 242 1    PRODUCTION OF REUSABLE MODULES AND THEIR DOCUMENTATION            i        Code     COBOLewbe   Module  Programmer       5  Editor         gt   Standards      5 in      Enforcer   COBOLewbe    PRECOR           oe ere roe aoe            l   Text     Document   Documentation                     2  5  Editor        5  Standards       5 for        Enforcer   Module  ba        Module  in      gt    GENLIB or APPLIB name or PROJLIB name   COBOLewbe    Documentation should be produced in parallels and shoulo  include information about the status of testing and a record    of any subsequent modifications performed or requested     Georgia Institute of Technology COBOL Workbench    Section 4 UTILIZATION Page 96    The Workbench may also be used to produce reusable code for    a particular compiler k     FIGURE He2e2 2    PRODUCTION OF REUSABLE MODULES IN COBOLek           COBOL     COBOLek   Module  Programmer      gt             gt   Standard       gt  in    Editor     Enforcer   COBOLek       4 2 5 Producing a Baseline Program    Perhaps the most important 
210. nvironments on which the program will run and  those language features which are implemented in com   pilers for each of these machine environments  This  approach prohibits the programmer from makina use of  machine dependent or compiler dependent features for  the sake of efficiency     See nonportable  COBOLe  wbc  COBOL ek  MACLIBeks  COBOLeccSe     Production Environment  The system on which the customer or  end user will run the delivered COBOL k programe Per   formance requirements are assumede   See Workbench     Program  The block of code necessary to perform some task  without additional instructtionse Usually compiled and  Loaded separatelye    Program Family  The set of COBOL e1 programs defined by a  particular COBOLewbce program and produced by macro   x   pansion using MACLIBei where i represents each of the  target machines in sequence     See COBOL wbc programs COBOL k program     Program Fragment  An incomplete section of codes usually    one which performs an  indentifible task  Cannot  execute without additional instructions  An incomplete  orogrome     See Programs Module     Georsia Institute of Technology COBOL Workbench    Appendix 1 GLOSSARY Page 141    Program Preparation System  Provided to assist the program   mer in developing the original baseline systems as well  as in converting or transportina that system to various  target machines     PROJLIB name  A Library file containing macro definitions  of modules developed specifically by the project 
211. ny point in time  A protection mechanism  should be provided by Document Control to protect anainst  accidental tamperinge Corrections should be selectively    propagated to those revisions which need ite and users of  revisions Later than those changed should be alerted to the  changese Fach revision should contain a release numbers  version numbers date and time of creations status   produc   tion  teste development     and history information  who mage  the modifications what it consisted of  where the modifica   tion occurred  and why the modification was made   Finallys  the revision control program should possess useful audit in   formation to aid management in following the progress of a  project     Se2e THE MECHANISM    A good candidate for the  Pocument Control mechanism is  described in CRochkind 19751    The philosophy of this method  is that the text common to more than one revision will not  be duplicated  The fundamental atom used to record informa   tion is called a delta  Deltas are identified by an ordered  pair  ij  where i refers to release i of a document and j  refers to level j of the releases  We will denote the delta    Georgia Institute of Technology COBOL workbench    ADpendjx 3 DOCUMENT CONTROL Page 156    corresponding to version j of release i of a document by     aw E A delta consists of List a of changes that must be  applied to the latest previous revision to obtain the  current revisione For examples to obtain the current    revision for the 
212. o    Parameter    blank    blank    N 60    hlank    Technology    Cause  Break  no    no    no    yes    Page 255    Explanation   Indent Left maraine  Set Left margine   Set top margin  hefore and including    page headina     Set top margin after  page heading     Set bottom mergin  before paqe footina     marain  after    set vottom  including and  page footinne  Set page offsete    Set right marain     Temporarily indent  Left margine  Explanation   Set runnina page  footinae   Set running page  headinoce   Set Lenath o f  headers footer ana  titlese   Generate a three    part title     COBOL Workbench    Appendix 6    6 12 5 Iabulation    Command  Syntax    eta N ee  etc C    etc C    Initial  Value    g 17 eee  TAS    RL ANK    FORMATTER    If no    Parameter    all    TAB    BLANK    6  12  6 Miscellaneous Commands    Command  Syntax    e d    ecc C    eer text       x    eul N    6 12 7 Input Processing    Command  Syntax    enx file    eso file    Initial  Value    Initial  Value    Georgia Institute of    If no    Parameter    ignored    If no    Parameter    next arg    ignored    Technology    Cause  Break    no  no    no    Cause  Break    no    no    no    no    yes    no    Cause  Break    no    no    Page 256    Explanation  set tab stops   set tab charactere    Set teb replacement  charactere    Explanation  Introduce a commente    Boldface N  text Lines     input    Set no break controL  character   Set basic control  character     Write o message to  the t
213. o 10     t bogus command file to show computers can count  declare i   1  7Loop  1  set i    eval i   13  if Leval i  lt   19   goto Loop  fi    In actual experiences  Little need has been found for Loops    Georgia Institute of Technology COBOL Workbench    Appendix 4 COMMAND INTERPRETER Page 189    within command files  thus the need for this contrived exam   ple     4 3 2 Shell Control Variables    Several special shell variables are used to control the  operation of the command interpreter  The following table  identifies these variables and gives a short explanation of  the function of each     Variable Function    _ci_name This variable is used to select a command  interoreter to be executed when the user  enters the Subsysteme It should be set to  the full pathname of the command interpreter  desired  The default value is   bin sh      _erase This variable may be set to a single charac   ter or an ASCII mnemonic for a character to  be used as the  erase   or character deletes  control character for Subsystem terminal in   put processing  The change in erase charac   ter becomes effective only after the Sub   system is re entered and the initialization  routines read the shell variable storage    filee   hello This variables if presents is used as the  source of a command to be executed whenever  the user enters the Subsysteme Tt is    frequently used to implement memo systems   supply system status informatione and print  pleasing messages of the day     kill This vari
214. o how  the system can be utilized to provide the capabilities    desired     Georgia Institute of Technology COBOL Workbench    a        o       Section 4 UTILIZATION Page 94       2 PROGRAM PREPARATION    The variety of options that are possible in the use of the  Program Preparation Subsystem are almost Limitless  The  paraaraphs below provide some examples of typical or    representative uses of the capabilities of the Workbenche     e2  1 Producing a COBOL Module or Program    In the simplest situations the Workbench is used to produce  code for a particular compiler ke  Note that it is not    necessary that k be a COBOL compiler      FIGURE 4e2e1 1    PRODUCTION OF A PROGRAM IN COBOLek             COBOL     COBOLek     Programmer        gt            Standard       Program for    Editor     Enforcer   Compiler k  Westie cancel Jem           4 2 2 Preparing a Reusable Module    A reusable module is prepared very similarly to any other  code module  The critical aspect of a reusable module is  tts interface to other modulese The production of a  reusable module differs from the production of a complete  system primarily in that the interface behaviour must be    clearly and exactly defined and must meet the standards    Georaia Institute of Technology COBOL Workbench    Section 4 UTILIZATION Page 95    established for reusable modulese Use of the standards en   forcer is required for consistency between modules developed  by different programmers  New modules should be tra
215. occoccccececc  occcecccelb  eo Spectat Delt8Seeeoececceccececcece  ceccccccceccecececeeccseccccscsclP     5 The Storage Of DeltasSeeecccccceocsco  ecoeotsoccececsccoscecocscc  ecoccl    el Header Informationeeeeeecoecsceccceccccecccoccccceccecoccec  ccce  tcecteccl5D   e2 The Main BOUdyeececcccececccoecc  c  ccec  ceccccecccsccceccocccol  BD   a4 Protectioneeeeeeeccececoeccecececccocco  cceceoececececccccoctsececce  ccceccceclb   e 5 Stampina an Identification on a ModuleeseeecccccococcccccclGO    3 PCRFORMANCEeecec0609 090909009290090299090200090000000000990092009cc92150D  Appendix 4  COMMAND INTERPRETEReseeeoc062oe0002002090092099990202cc2l62    el  IUTORIALeeeocococeceocecoecoecececeoecec  eceecec  cocsoeceeo  ococcecceocecccolb   2  al Getting Startedeeeeeccececcoeccecececcccccecc  ccosccceccvceoocccelbc  e 2 Typoaraohicat ConventionSeeeeeecccesccecccceccccccccc  cccclbc  eo CommandSeeeeeeeeeececceccooocc  oeetooocccceetoosccsescoocoectceccccceoclb      4t Special Characters and Guotingeeeeescccccoesceccocececccccib5   2 Command FilEeSeesesseoseccooscocooooooocosoocoooooooonrosoooo o L    e 5 Doing Repetitive Tasks     IterationseseeecsecseoceceeososesoccelbO  47 Sources and Destinations Of Datae eeccccccoccocccecccecccccecccoccclb6  ek Pipes and NetworkSeeeeeeeecccececceoecoecsc  covocscc  occeccceccocccecl b  a9 Compound NodeSeeeoececececcecoeceeccscococcccosoccoccvoesoctsocevsoecsec  cscoscli    10 Function CallsSeoeoeceoececcceccocco  occ  ococscooococ  ccoeocsceco  c
216. odes    Georaia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 206    The other abbreviation command is  i    I  4s very closely  related to  a   in facts the following relation holds     startingeline 1  is the same as  starting line   1 a    In short   i  Inserts text before the specified lines    whereas  a  inserts text after the specified Line     Selel3 Moving Text    Throughout this introductions we have concentrated on what  may be called  in place  editing  The other type of editing  commonly used is often called  cut and paste  editinge The  move command  m  dis provided to facilitate this kind of  editings and works Like this     startina tinesending Line m after th  s Line    If you wanted to move the Last fifty Lines of a file to a  point after the third Lines the command would be      49 4 m35    Any of the Line numbers mays of courses be full expressions  with search stringss arithmetics etce    You maye if you Likes append a  p  to the move command and    it will print the Last Line moved  The current Line is set  to the Last Line moved     Selel4 Global Commands    The  global  command  g  is used to perform an editing com   mand on all Lines in the buffer that match a certain pat   tern  For examples to print all the Lines containing the    word  editor   you could type  g editor p    If you wanted to correct some common spellina errors you  would use    g old stuff s  new stuff gp  which with make the change in all appropriate lines and  
217. of Technology COBOL   orkbench    Appendix 9 COBOLe  wbc Pace 265    APPENDIX 9    COBOLewbe    This appendix contains some of the preliminary work towarcs    defining COBOLewbc that has been accomplished     section provides some insight into the frequency of the  of various features of COBOL   the actual discrepancies    features     Dele USAGE OF COBOL FLATURLS  A Study of the Usage of COBOL Features    The Listino below provides the frequency  static   reserved words discovered  Lines of code from Army programse    ACCEPT  ACCESS  ACTUAL  ADD  ADDRESS  ADVANCINC  AFTER   ALL  ALPHABETIC  ALSO  ALTER  ALTERNATE  AN   AND   APPLY   ARE   AREA  AREAS  ASCENDING  ASSIGN   AT   AUTHOR  REFORE  BEGINNING  BLANK  BLOCK  BOTTOM   BY   CALL  CANCEL   CD    Georgia Inst tute           cC cHFrf2ccc cQ OAD CO    of Technology    discovered    in a file containins    The first  use  while the second section shows    hetween some of these    CF   CH   CHARACTER  CHARACTERS  CLOCK UNITS  CLOSE   COBOL   CODE    CODE SET  COLLATING  COLUMN   COMMA   COMMON  COMMUNICATION  COMP  COMPUTATIONAL  COMPUTE  CONFIGURATION  CONTAINS  CONTROL  CONTROLS   COPY   CORR  CORRESPONDING  COUNT  CURRENCY   DATA   DATE  DATE COMPILED  DATE WRITTEN  DAY    of use  about 204000    of      e    Nes  C C OO tc    ay Th  A    T    I  CO   Bog V a ee xoc    COBOL Workbench    Appendix 9    DE  DERUG CONTENTS  NEGUG ITEM  DERUG LINE  DEBUG NAME  DEPUDeSUMSI  OEBRUG SUB 2  OEC UG SUB  5  DEPUCDING  DECIMAL POINT
218. of Technology COBOL workbench    Appendix 6 FORMATTER Page 239    eer   this is a message with 5 Leadinc blanks    would write the followina text on the terminal  Leaving the  cursor or carriage at the end of the messane    this is a message with 5 Leadino blanks  For a multipie Line messages   try  eer multiplesnlineanmessagean  The output should Look Like this   multiple    Line  message    Prompts are particularly useful in foru Letter applications  where there may be several pieces of information that  imc   has to ask for in the course of its work  The next section  describes how  fmt  can dynamically obtain information from  the user     6  7 5 Premature Termination    If  fmt  should ever encounter an exit  co manci  eG X    in the course of doing its jobs it will cause a break and  exit immediately to the Subsystem     Georgia Institute of Technology COBOL Workbench    Apnendix 6 FORMATTER Pace 240    6  7 6 Summary   Miscellaneous Commands    Command Initial If no Cause   Syntax Value Parameter Break Explanation   ef     no introduce a comment    eU TN Nz0O MEI no Roldface Hl input  text Lines    eCe C i j no Set no break control  charactere     CC     e   no Set basic control     charactere   eer text   ignored no write a message to  the terminale     ex     yes Exit immediately to  the Subsysteme   eul N N  N 1 no Underline N Input    text lines     6 8  INPUT PROCESSING    6 8 1 Input File Control    Jo to this points it has been assumed that  fmt  reads only  fro
219. of the Workbench is the automatic preparation  of a set of equivalent but compiler unique versions of a  baseline program that has been written in Workbench COBOL     COBOLe  wbc      The research effort reported on here included an investiga   tion of the problems of converting a baseline program into  compiler unique versions  an initial study of the use of  reusable modules to produce in line COBOL codes  a Limited  feasibility demonstration of these capabilities  and a    preliminary study for the design of COROL wb5ce    Georgia Institute of Technology CCBOL Workhench    Page V    TABLE OF CONTENTS    Section le INTRODUCTION  ccc cc eccccesecseesecceceseseccoccsessecel    el SCOPE OF THIS FROJUECT 26cco0000999909900099009090000909990200991  el GOALS ceccevesececese never eseeeeeeeesseeeeeeeseeeesseseseoeer  e e Accomplishmentseeeeececcecececeoecceceeccoescccccc  scctsccccecsceccc    3 Organization of this Reporteeeoececececcceccceccccccocsccocccceco   e2 MOTIVATIONS FOR THE COBOL WORKBENCHeoeeeseoeccccceccecccceccceccct    3 OPERATING ENVIRONMENT OF INTEREST eeeccccccccecceccccceccecoo  el Multiple Execution Environmentseseeeecocecceoecvceccccccccecco  ccb  e2 Problems of Standard COBOL eecccccccccecccccccccccccccccccb  e3 Problems in Transporting Large COBOL ProgramseeeeeeccccccB    Section 2  CAPABILITIESeeeeecco 00209060090094909092090999090609295960999960   91     el GENERAL OVERVIEVWeeooccocccceeccceccccccccscccscicccsocscecccoccecll  e2 PROGRAM PREPARATIONeeeeeoeco
220. of the data processing capabilities of the work   bench in order to increase the productivity of the COBOL    programmer     The COBOL Workbench provides a wide variety of capabilities  to the systems analyst and programming staff  As can be  seen from the List of these capabilities given in Table 2 1   le it is envisioned that automation support be provided for  all phases of program development  maintenance  and    documentation     The central concept of the programming subsystem is the  preparation of a baseline program that can be easily and ac   curately transported to a Large variety of target operating    environments  The baseline program is written and    Georgia Institute of Technology COBOL Workbench    section 2 CAPABILITIES Page 12    maintained in  Workbench  COBOL and is processed by one of  the components of the Workbench to produce a  compiler   unique version  of the baseline program  The Workbench also  supports the testing of the baseline programe It will also  provide some assistance in the testing of compiler unique  versions of the baseline programs however  it is obvious  that the final testing of these programs must be done on the  target environment  Both the baseline RELEASES of the  program as well as its compiler unique VERSIONS will be  maintained on the Workbench  The principal problem here is  not so much one of programming in COBOL as it is a problem  of document maintenance and controle Therefores the program  maintenance function is almost 
221. ogrammer s Work   benche There is certainly a Large monetary value that can  be associated with the other capabilities of the Workbench    such as the ability to quickly develop prototype systems    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 24    utilizing reusable program modules and the machine as   sistance orovided in the development and production of sup   porting documentation  However  in the environments of  interest in this study  those that were detailed in section  1  the major economic payoff appears to be vested in the  ability to produce a program that can be automatically  transported to a variety of target computer operating   en   vironments without extensive human intervention in the  transportation processe This transportation capability is  provided primarily through the utilization of Workbench    COROL or COBROLewbe as the programming Language     2e2e4 Workbench COBOL    The concept of Workbench COBOL is certainly one of the most  important central ideas in the COBOL Programmer s Workbench   The objective of Workbench COBOL is to provide a Language  the rroarammer may use to prepare programs that can be  easily transported to a variety of target environment  systems  A secondary objective of Workbench COBOL is to  include facilities for the use of reusable COBOL modules and  other program productivity aidse There have beens since the  very beginning of COBOL  a number of demonstrations of the  ability to transport pr
222. ogramming Skeletons   Tested Programming Skeletons which are useful to a  particular application and are written in COBOL wbc are kept  in the AppLication Library for the particular applicatione    These skeletons may refer to reusable modules stored in    other Libraries     Se5ele3 Project Libraries    Project Libraries contain reusable test harnesses   prooram   mina skeletonse baseline programsSs and breadboard programs    all of which are developed specifically for a particular  programming project  The Libraries are named  PROJLIB proj   where  proj  is the name of the particular project which is    served by the Library     SeSeleSel Reusable Modules   The reusable modules contained in the Project Libraries ser   ve the same purposes as the reusable modules kept in the Ap   plication Libraries  They are developed specifically for a  particular project under development and should not be used  by any other project since the changing needs of the  development team may modify module calling usage or behavior  or eliminate some modules altogether  The modules included    in the Project Library are written in 3COBOL wbc and are    tested     Georgia Institute of Technology COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 78    3 5 14 5 2 Test Harnesses  Test harnesses to be used in the testina of the modules of a  particular project are housed in that project s Project    i iorarye These modules are written in COBOLewbc and have    been testede         A DER HUM ee G
223. ogramming required in a multiple target  operating environment    2  The programmerts environment provided by the  Workbench for the preparation of programs  also greatly facilitates the preparation of  modifications to previously developed  programse   3  The on iine documentation system and the  capabilities it provides for Linking comments  to specific portions of the documentation  text greatly facilitate what is perhaps the  most time consuming activity in maintenance  operations   the correlation of all of the  information applicable to the original  program and the changes to be made     4  The Documentation Control System also         provides for the control of multipte versions  of both code and text so that the maintenance  norogrammer can easily check out a new version    of a program without disturbing the old one     Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 46    2 5 DOCUMENTATION PREPARATION    One of the major tasks faced by the designers of software  systems is the production and maintenance of complete  documentation including specificationss desianss user and  reference manuals  and reports as well as the program codee  To encourage the production and maintenance of current and  complete documentations the Workbench will be equipped with  a broad range of tools which are designed to assist in the  preparation of all of the system documentation required for  the support of prototype systemss the base line systems and  th
224. ograms from one system to another   This has been reinforced in recent years by the establish   ment of national standards for COBOL  howevers it is a well  recognized fact that it is extremely difficult  if not im   possible  to execute any but the most trivial COBOL programs    on different systems without making some changes to the    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 25    codes Some differences are quite obv  ouss  such as tne  situation where statements required by one compiler must be  absent in another or prepared in quite a different form     eG  e9 the file Label statement  Other problems of  transportation are much more difficult to handles such as  the effects of word size when the computational form for  variables is utilized  It is a goal of the design of work     bench COBOL to overcome all of these difficultiese    The basic objectives in the design of the Workbench COBOL  Language are as follows    1  COBOL wbc should be as close as possible to  standard COBOL in syntax and semanticse This  will greatly assist in the training of  programmers to utilize the Workbenche   2  COBOLewbc should be capable of unambiguous  translation to a wide variety of compiler   unique target environment dialectse For this  reasons there will be features and statement  types included in Workbench COBOL thet appear  identical to those in the standard  howevers  it may be necessary that these statements be  processed by the Workbench in 
225. om heresto here y after here     print value  value of the Line number  expression preceding the equals sian is printed  as a decimal integer   syntax  Cexpression gt       global on marks perform command on all Lines  having a given mark name  syntax    ename gt command     exclude on marks perform command on all Lines  that do not have a given mark name  syntax    iYname  commancd     Georaia Institute of Technology COBOL Workbench    Appendix 5    EDITOR Page 215    Selel7e2 Line Number Expressions     pattern      pattern     2name    expression    Georgia Institute of Technology    Elements of Line Number Expressions    value of the integer   Ex  44   number of the current tine in the buffer  number of the last Line in the buffer    number of the previous Line in the buffer t    1     number of the next Line in the buffer that  matches the given pattern  Ex   February  j  the search proceeds to the end of the buffer   then wraps around to the beginning and back  to the current tine    number of the next Line in the buffer that  matches the given patterns search proceeds in  reverses from the current Line to Line 1   then the Last Line back to the current Line    Ex   JanuaryN      number of the next Line having the given mark  name  search wraps arounde Like        number of the next Line having the given mark  name  search proceeds in reverses in the same  way as NN     Any of the above operands may be combined  with plus or minus sians to produce a tine  number express
226. onally developed modules    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 33    give the programmer the ability to enter code into the  machine 1n a convenient form  Calls to modules contained in  a Personal Library must be expanded into standard  COBOL  wbc  as soon as the code containing those non standard module  calis is made available to other members of the programming    project  included in the Project Library      2e2e5 14 5 Expansion from the Test Library   The Test Library    TESTLIBs will be available to programmers  on ali projects and in all application areas to assist in  module and program testing at all stages of project develop   mente The Test Library contains modules for the collection  and output of test data  dummy modules to be used in testing  calling sequences  and skeleton programs for the testing of  module behavior in isolation and as a result of different    calling sequencese    2e2 5 2 Build Programs    In order to build a program or system  the following input  is needed   1  A collection of COBOLewbe modules selected by  the programmer in order to produce a desired  overall functional capability in the output  programe  2  Special Instructions required by the Program    Preparation Subsysteme    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 34    The following output is generated    A completes but non executablees COBOLewbe program  which can be expanded with the appropriate  c
227. oraotten 4 easily mistypeds and difficult to find in the  first place  It is much easter to have  ed  remember a  short  name  along with each Lines  and allow you to  reference a Line by its name  In practices it seems con   venient to restrict names to a single characters such as  b   or  e   for  beginning  or  end    It is not necessary for  a given name to be uniquely associated with one Lines many    Georgia Institute of Technology COBOL Workbench    Appendix ES EDITOR Page 208    Lines may bear the same name  In facts at the beginning of  the editing sessions all lines are marked with the same  names a single space     To return to our examples using the  k  commandes we can mark  the oeainning and ending Lines of the subroutine quite  easily      subroutine   subroutine think  kb   end   end  ke    We have now marked the first Line in the subroutine with  p   and the second Line with  e      To refer to names    we need more Line number expression  elements    gt   and  CX   Both work in Line number expres   sions just Like     or   pattern     The symbol  5  followed  oy a single character mark name means  the Line number of  the first Line with this name when you search forward   The  symbol      followed by a single character mark name means   the Line number of the first Line with this name when you  search backward    Just remember that   lt     points backward    and      points forwarde     Now in our examples once we Locate the new destination of  the subrouti
228. order to  produce the exact form required for a  particular target dialect    3  COBOLewbe should be  rich  enough for easy  use by programmers in the development of com     plex programs  It appears that there is no    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 26    real need to include all of standard COBOL in  COBOLewbce What is more desirable is to  insure that those features of COBOL that are  frequently used by programmers are available  in Workbench COBOLe The basis for the design  of COBOLewbe should be a thorough examination  of the dialects of standard COBOL that are  encountered on the target environments as  well as a study of the types of statements  that are actually utilized by COBOL program   nerse  Initial work in this area is    documented tn Appendix Ge     The solution to the  transportation problem  seems simple   If proarammers are restricted to implementing their programs  using only the features and format of  standard COBOL    those programs should compile and execute on any machine   Unfortunatelys it ts not that easy  Despite the existence  of two COBOL  Standards   68 and 74   there is no reat  agreement on the features that should be included in the  Language  Even if a subset of Language features could be  identified which were provided by alt COEOL compilerss  statement syntax varies between compilerse Even in those  cases where the syntax used to express a particular Language  element by two different compil
229. orgia Institute of Technology COBOL Workbench    Appendix 6 FORMATTER Pase 229     No space  mode may be turned on explicitly with the fno   space     command    ens  and turned off explicitly with the  restore spacing  command  ers    Neither command causes a breake    6  5   Summary   Spacing and Page Control    Command Initial If no Cause   Syntax Value Parameter Break Explanation   ebp  N N 1 next yes Regin a new pad  e   els N Nz1 Nz1 yes Set Line spacings   ene N     1 yes Express a need for    contiguous Lines    ens on   no Turn on   no space   modee   epi  N N 66 N 66 no Set paae Length    epn  N Nz1 ignored no Set paae number    ers     no Turn off   no space    modee   eso N   N   yes Put out N blank  Linese    Ge4e MARGINS AND INDENTATION    6 4 1 Margins    ALL formatting operations are performed within the framework  of a page whose size is defined by four marains  tops bot   tome Left and richte The top and bottom maruins determine  the number of Lines that are Left blank at the top and bot   tom of each pagee Likewise   the Left and right margins  determine the first and Last columns across the page into  which text may be placede    Georgia Institute of Technology COBOL Workbench    Appendix 6 FORMATTER Page 230    6 4 2 Top and Bottom Margins    Roth the top and the bottom margins consist of two sub   margins that fix the Location of the header and footer  Lines  For the sake of clarity   the first and second sub   margins of the top margin will be referred 
230. ortables compiler independents COBOL wbcJ    MACLIBek  A Library file containing those macro definitions  which MACRO needs as input in order to convert  COBOLewbe into COBOL k   Macro calls must meet stan   dards so that a given macro will be called the same way  oy COBOLek and COBOLejed  Should contain only testea  macro definitions     Macros  In general use the term is used to refer to  assembly level programming  Howevers it may be applied  to higher Level Language programminge as it is used  here  A skeleton for an open subroutine which is com   pleted by a macro generator in response to a call by a  macro instruction curing the process of assembling a  programe The completed subroutine is passed to the as   sembler for incorporation into the programe Howevers  the term may also apply to higher Level Language    programminge A program unit which performs a single  function and is expressed in a reusable forme Similar  to a subroutines although a macro is a purely    notational device which is expanded in line  like a  Fortran statement function  to produce the appropriate  code each time it is called while a subroutine call  Produces only a jump to a single copy of the required  code regardless of the number of calls to the  subroutines     See moduley  See also Appendix 7     Macro Processor  A program which accepts as its inputs text  containing macro calls and a file containing macro  definitions and produces as its output text in which  the macro calls have been exp
231. os  this task could be easily performed  and one could he  insured of a uniform system of identification     SeSe PERFORMANCE    This approach to the problem at first akancee appears very  costly because of the space required  but this anxiety is  soon quenched by the following statistics taken from  fRoch   kind 1975 J   The statistics were based on the Largest user  group on an IBM 370  The group included 100 programmers and  2964 modulese This resulted in 14 4455 deltas which occupied  140164766 records  There was an average of five deltas per  mocules but 40  of the modules had only one delta  Cf those  with more than one delta  the average was 7e5 deltas per  module  There were 126 modules that had more than 25 del   tas  The number of Lines of code resulting from atl the  modules taken at their Latest revision was    7404719  This  meent that there was 37  additional space occupied by the  deltass but one must remember that this was obtained by com   parino the space occupied by only one revision of each    Georgia Institute of Technology COBOL Workbench      et ouis Lees Wo eee npn me    Appendix 3 DOCUMENT CONTROL Page 161    module  Thuss for 37  additional spaces they were aple to  possess the capability of accessing any revision of any  module       Georgia Institute of Technology COBOL Workbench    Appendix 4 COMMAND INTERPRETER Page 162    APPENDIX 4    GEORGIA TECH SOFTWARE TOOLS SUBSYSTEM COMMAND INTERPRETER    The Software Tools Subsystem is a set of program d
232. ose versions of the system produced to run on specific  target machines  The documentation tools provided by the  Workbench will be simple to uses will interface with each  others and will provide additional capabilities which make  the documentation task Less burdensome to the documentor and    increase his productivity     2e5e1 Overview of the Documentation Sub systen    Figure 2e5ei 1i1 depicts the flow of text and commands that  witl occur during the preparation of system documentation   The documentor will be able to both enter an oriainal  document as well as modify existing document Se The  documents will be stored in a series of Libraries  In ad   ditions it will not be necessary for a document to be    entered in a final finished formati instead  a separate    Georgia Institute of Technology COBOL Workbench    Section 2    CAPABILITIES    FIGURE 2e5el 1    Page 47    PREPARATION AND MODIFICATION OF SUPPORTING DOCUMENTATION         Documentor                           i          FTWTIN  RAN  eT  i      Editor                     secretes Ves Nias         Librarian                    Libraries          4   4         Text      Command  l   Flow     Flow     d e   i Y   Y                          we kkekeKKKD    Qo    Georgia Institute of Technology    Qi e sede dee de    COBOL Workbench    Section 2 CAPABILITIES Page 48    process   the Formatting Proteas wilt be avatlable to per   form these formatting duties  see section 2 7 2   By making  formatting a separate proce
233. ou  the trouble of retyping ite To access the remembered pat   terns simply use an  empty  stringe For examples the fol   Lowing sequence of commands could be used to step through a  files Looking for each occurrence of the string  ICS       ICS                and so on     One Last comment before Leaving pattern searchinge The  constructs     pattern    pattern     are not seperate commands  they are components of Line num   ber expressions  Thuse to print the Line after the next  Line containing  tape   you could say     tape  1p    Ore to print a range of lines from one before to one after a  Line with a given patterns you could use     pattern  1   pattern  1p    Selell Making Substitutions   the Substitute command  This is one of the most used editor commands  The  sub   stitute  command  s  is used to make small changes within  Lines  without the need of retyping theme It is used Like  this   startina lLinesending lLine s  pattern new stuff   For instances suppose our buffer Looks Like this   le p  The quick brown fox  jumps over  the lazy doa   To chanae  jumps  to  Jumped      2s jumps jumped p  jumped over    Note the use of the trailing  p  to print the result  I f    Georgia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 204    the  p  had heen omitted  the change would have been per   formed  in the buffer  but the changed tine would not have  been printed oute    If the last string specified in the substitute command is  emptys then the pattern
234. ould be applied to the same  use and might even be identified by the same name  The two  important aspects then of Library management are  1  The management of the contents of the various  Libraries in a consistent manners and  2  The management of the use of the various  Libraries in the support of the various ac   tivities provided by the Workbench   The various Libraries in the Workbench and their contents  are depicted in Table 35 5 1 1  The uses of these libraries    are Listed in Table 3 5  1 2     Se5elel General Library    The General Librarys GENLIBs contains the compiler   independent text of a collection of general purposes  reusable modules which will be of use to all programmers     These modules might include the followings      data input editing    file structure definition      report generation    gia Institute of TechnoVogy COBOL Workbench    de A ee    Section 3 FUNCTIONAL COMPONENTS Page 74    TABLE 5 5 1 1    WORKBENCH LIBRARIES AND THEIR CONTENTS    LIBRARIES          General  i Application    l Project  j i   Release      l   Personal    l     j Test Cee        i     Macro    i            ee ee CHR ET SAE  SOPRA  ENN e eer S EM  i              Definition of l                Compiler Unique     l     0     T    Functions                   ne vM l aaa e aaa a  Come Tern EE   i                Reusable  I T   T   T     D        Modules   i              mew cue        ELELEE  NEETER                 i          Test       T     D   T   i  Harnesses i       i 
235. pecified must be a numbers and causes 2 tab  stop to be set in the corresponding output column  ALL  existing stops are cleared before setting the new onese anc  a stop is set in every column beyond the last one specified   This means that if no columns are specified  a stop is sct  in every column     By default     fmt  recognizes the ASCII TAR  control is 15  the  tad character    ut since this is an invisible charac   ter and is guaranteed to be interpreted differently by dif   ferent terminalss it can be changed to any character with  the  ta  ab character  command     etc   char     While there is no restriction on what oarticular character  is specified for       lt char gt   s it is wise to choose one that  doesn   t occur elsewhere in the texte If you omit the  parameters the tab character reverts to the default     When  fmt  expands a tab characters  it normally puts out  enough blanks to get to the next tab stop  In other wordss  the default  replacement  character is the blanke This too  may easily be changed with the  repblacement character  cor   mands     erc  lt char gt     As with the tc commands   char   may be any single character   If omittede the default is usede    A common alternate replacement character is the periods    which is frequently used in tables of contents  The follow   tng example illustrates how one might be constructed     Georaia Institute of Technology COBOL Workbench    Appendix 6 FORMATTER Pace 236    The    eta 52   etc     Section 
236. perate on fites with a definite  structures it is their responsibility to maintain this  structure and of no real concern to the system     We mentioned above that a file has a name  this raises the  question of what are the acceptable names for files  A  file name consists of 352 or fewer characters chosen from the  Roman alphabete the Arabic digits and the followins special  characters     H    amp     s      m  The first characters however  must not be a digit  vse of  the slash       is strongly discouraged for reasons which  will soon become apparente The case of the alpnabetic    characters is insianificant since the system forces them all  to upper cose  Thus      GEORGE Harry my file YouraFile filel  are all Leaal file names  while   bad file name  naughty_file  666    are note    Georaia Institute of Technology CCEOL Workbench    fT    Appendix B THE PRIMOS FILE SYSTEM Page 262    8 2  DIR  CIQRIES    PRIMOS associates the name of a file with its contents  throuah the use of  director  ies  4 which themsetves are noth   ino  more than ordinary files that PRIMOS treats specially   A directory contains a number of   entries     each of which  holds the name of a file plus other information  which we  will get to later   and the Location on the storage volume  of the actual contents of the file  tach file with a  corresponding entry in a given directory is said to   reside  within   that cirectorys and that directory is said to     contain  all files for which it holds 
237. plied  But  to increase the right margin widths there is no other atter   native but to use the rm commande The  title Lenath  com   mand is thus necessary to allow headings and footinos to  remain unaffected by the interim right margine    Georgia Institute of Technology COLOL workbench    Appendix 6  FORMATTER Page 248    6 10 5 Italics    Since most printers can t easily produce italics   they are  frequently simulated by underlining  The following macro   italicizes   its parameter by underlining it     eH it     italicize  by underlining   ede it   eul   1J   een it    6 10 6 Bolgfacing    While  fmt  has built in facilities for boldfacingse their  use may be somewhat cumbersome if there are many short  phrases or single words that need boldfacings each phrase or  word requires two input Lines  one for the bf command and  one for the actual texte The following macro cuts the over   head in half by allowing the command and the text to appear  on the same line     et bo     boldface parameter  ede bo     bf   C13    een oo    6 10 7 Examples    This aopendix is peppered with examples  each one set apart  from other text by surrounding blank Lines and additional  indentatione The next two macros  used Like the  bqa  and   eg  macross  facilitate the production of examples     ed bx     beqin example text  e de bx    ene z   e nf   ein  10  een bx    eof ex     end example text    de ex   eSp   efi   ein  10   een ex    Georgia Institute of Technology COBOL Workbench    Appe
238. pointed out in Section 2 of  this reports the Workbench envisions the maintenance of mul   tiple versions of the same documente and the support  provided by the Document Control Subsystem 1s much more ex     tensive than that provided by normal file systems     Georgia Institute of Technology COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 58    FIGURE 35 1 1    MAJOR FUNCTIONAL COMPONENTS OF THE COBOL WORKBENCH    and C            Preparation           Maintenance      m            j    Documentation       dsa            5            l     gt   Program     gt f     i     Preparation   lt           MEE HEU  EL P                 Dt  eter EEEO RE i       j gt         5            Program   2 251       I    1 Processor I      i   i j ON EA ATE   Document         Seeds atone    j A EN je gt       User      5   I  5  2   51  Librarian             Test    a i EEA     lt    Support         4     j eee ne eee   Control                  ew ow eee      EEE AEN tea              Libraries               ene EEEE        2                 I                                             l                        gt     gt                      Documentation      5          l                                 Production C   NER GEO GENES RUD GER VEND   DPO i Gs Ge cU GEN as SEP Se EM QUEED EE ED CHER an Oe T N E E a   A ol A         Text      Command      Flow     Flow   i l         T vog   e     a              a 9m un  gt  ehe de dn x   5   Qm mmm a Q e de de de hehe ohne    Georgia Instit
239. posi   tion the cursor to the Left  to the rights ups downs or to a    particular character on a Line     In case the user forgets one of the simple commands of the  Fditors he can ask the Editor for help  Depending upon how  the help is requested  the user will get either general in   formation about the Editor or information about the use of a  particular commande The help feature is designed to provide  complete information for the beginner and specific informa     tion for the more experienced user of the Text Editor     Georgia Institute of Technology COBOL Workbench        a    Section 3 FUNCTIONAL COMPONENTS Page 71    SoS DOCUMENT CONTROL    The development of software systems is an evolutionary  process  Thuss there will usually be multiple versions of a  program or document in existence simultaneously  For exam   ples a particular program may be in production while an up   dated release of the same program is in developmente These  constitute two different versions of the same programe In  addition to these two versions of the programs there will  also be two versions of the documentation supporting the  programSe To help maintain order among multiple versions of  the same program or documente the Workbench provides a    Document Control System     The most promising strategy for providing document control  is that of maintaining a list of changes corresponding to a  particular revision of a document  These changes will  reflect the differences between a particular 
240. program preparation systems text documentation  preparation    document control system     COBOLeccs  Common COBOL Subset  This consists of those  elements of COBOL common to all COBOL compilers   COBOLeccs is not sufficient for the development cf    useful proaramse COBOLe cCCS is included in both  COPOLedemo and COBOL   woc  COBOLeccs YS a proper subset  of COROLe    COBOLedemo  The initial approximation to COBOLewbcCe As  COROLsedemo is expected to approach COBOLewbe over times  distinction ts made between the two Languages only when  necessary for a clear understanding of the difference  setween what should be included  COBOLewbdc   and what it    has been able to implement thus far  COBOLecemo      Georgia Institute of Technology COBOL Workbench    Appendix 1 GLOSSARY Page 137    Eventually   COBGLedemo and CO80Lewhe will become  identical  Note that COBOLedemo is not a proper subset  of standard COBOL     COBOLei  efers to any member of the aroun of COBOL  dinlects accepted by target machines    See COBOLewbcs COBOL k2    COBOL 1 Program  A compiler   and machine   dependent COBOL  programe Refers to any member of the family of  programs defined by a particular COBOL   wbc programe   See COBOL k program     COBOL k   The dialect of COBOL associated with a given COBOL  compiler ke Programs written in COBOLek may not run on  a different COBOL compiler without modification since  the dialect may contain compiler dependent features    See COBOLewbcs COBOL 13    COBOLek Prog
241. r  Delta 165 will  not be used to obtain any version of a release after release  1 unless an optional delta as explained below is applied   instead  a warning message will be issued informina the user  that a modification to the first release has occurrede    Georgia Institute of Technology COBOL Workbench    Mim    Appendix 3 DOCUMENT CONTROL Page  i19T    FIGURE as3e2e1 1    THE RESULTS OF ADDING A REVISION TO RELEASE 1    D1   1   01 2   D1 3   D1 4   D2 1   0242   02  5   D2  4          add D1e5    aa                D1 1 2   014 2   01 5   D14 4   D1 5   D2 1   D2 2   D2 4 5   D2 4    Se2e2 Special Deltas    In addition to these deltasy one can specify two kinds of  special deltase The first is the optional delta  These are  Like the regular deltas except that associated with each of  these deltas is an option Letter   lt A delta of this type will  only be applied if the option letter is presented alons with  the request for the specified document  This is useful in  situations in which one wants to make a change to the code  to provide for a special environment experienced by a subset  of users but wants this change to be invisible to the rest  of the users  The second kind of special delta is used to  indicate whether or not previous deltas are to be Included  or excluded from the revision represented by the special  delta  For example  if it is desired to remove delta 1 43535 a  special delta will be added which will indicate that delta  le3 is to be excluded from any 
242. r messages will be placed on the fite   errors      Georgia Institute of Technology COBOL Workbench    See SS Se eS eme    Appendix 4 COMMAND INTERPRETER Page 168    Final words on redirection  there are two special purpose  redirection operators Left  They are both represented by  the characters   gt  gt    The first operator is called  append      j Uf X  bTset    causes a list of files to be placed at the end of  appended  to  the file named  List   The second operator is called   from command input   It is represented as just  gt  gt  with no  file names  and causes standard input to refer to the current  source of commands  It is useful for running programs Like  the text editor from  scripts  of instructions placed in a  command file     4 1 8 Pipes and Networks    The Last section discussed I O redirections the process of  making standard ports refer to disk filese rather than just  to the terminal  This section will take that idea one step  further  Frequentlyse the output of one program is placed on  a files only to be picked up again Later and used by another  programe The command interpreter simplifies this process by  eliminating the intermediate file  The connection between  programs that is so formed is called a pipes and a Linear  array of programs communicating through pipes is called a    pipeline     Suppose that you maintain a Large directorys containing  drafts of various manuals  Each draft is in a file with a  name of the form  MANxxxxerr 4 where  xxxx  
243. r only after all reusable module    references have been expandede    The macro processor uses a search rule to locate the macro  definition corresponding to a eeii modute call in much  the same way that a Loader searches for load modules  Un   Less otherwise specified the search rule used is   1  Personal Library  2  Project Library  3  Test Library  utilized only when specifically  requested        Application Library  5  General Library  6  Compiler Unique Macro Library  utilized only  when transporting a COBOLewbc program to a  specific compiler     In this ways imorovements to modules already incluced in    Georatia Institute of Technology COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 63    standard Libraries may be tested without recopying the stan   dard Library or modifying programs to use new names for    modules     3 2 2 2 Program Processor    Using the tools described in the previous sections    the  programmer develops a COBOL wbc programe Before this  program can be executed on some target machines processing  will be necessary to convert the COBOLewbc code into    compiler acceptable code     The nature and extent of processing needed depends on the  nature of the taske The Workbench is  a flexible tool   suitable for use in a number of wayss ranging from the most  simple to the most complex applications  In its simplest  modes the Workbench serves as a text editor and Librariane  In its most complex modes  the Workbench provides the  programmer with 
244. r the ability to perform his task with the expen   diture of as Little time and effort as possible  To meet  this goal the tools must be simple to uses easy to learns  flexible  consistent with respect to each others have  default vatues assigned to options which reflect the common  usage of the optionss and finally they must naturally inter   face with each other so that several simple tools can be    connected together to perform complex tasks     Georgia Institute of Technology COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 67    FIGURE SeMei i    PREPARATION OF SUPPORTING DOCUMENTATION        e        Documentor     2     2  2       2   5  Text           um RP Re CE UND SE          o                         Control         Document               a                            Ceeeeeeteneeneeeeeee        Libraries  4         2            Librarian            A   4         Text     Command      Flow     Flow             1 Y     en ewaeeee  gt   ed D  Qm Q ede de de he de de n    Georgia Institute of Technology COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 68    The documentor s environment also includes a series of  Libraries  The Libraries contain among other things text  which may be used by a documentor in the construction of a  document  This text can be either other documentation   or  proaramSe The tibraries also contain commonly used macros  for the Formatter  see section     3 6 2 1  which help to  produce standard formats of items within a document
245. ram  A program written in COBROLeke    non   yortaole programe   See COBOLewbe program     COBOLewbes A Language for the development of portable COBOL  programs  This consists of COBOLeccs plus a collection  of macro calls giving the programmer the ability to ex   press comptler dependent features in a compiler   incependent manner  The Workbench expands COBOLewDc  into the COBOLek of a target compiler ke Note that  COLOLewoc is not a proper subset of standard COBOL    See  COBOL 1    3 COBOL k  COBOLedemo   See also Appendix  23 Appendix 73 Appendix 9     COBOLewbec Modules A macro which expands into COBOLe wbc code  defining a commonly occurring function or action  This  permits the programmer to develop reusable sections of  code  COBOLewbe module definitions are tnetuded in the  following Libraries  GENLI8    APPLIB  namee  PROUJLI      names TESTLIBe    COBOL wbc Program  A program written in CGBOLewWdCe A  program which can be easily transported  Consists of  COBOL ccs statements  modute calls  and macro callse    Compiter Dependent  Written in a particular COSOL dialect  for compilation by a given compiler  Cannot neces   sarily be compiled by a compiler written tor a dif   ferent dialecte It is possible for a program to be  compiler dependent while being machine independent    See nonportable  machine dependent  COBOLek  diatect     Compiler Independent     ws  ritten without reliance on  Lancuage  features unique to a given COBOL dialect  Can be  transported easily  
246. ram written to run in any machine en   vironment and on any compiler  Generallys this is ac   complished by restricting the program to the use of  those hardware features which are common to all of the  machine environments on which the program will run ana  those tanzuage features which are implemented in com   piters for each of these machine environments  This  approach prohibits the proarammer from making use of  machine dependent or compiler dependent features for    the sake of efficiency  Use of certain machine   dependent or compiler dependent features may be permit   tede 3f any necessary modifications can be made    automaticallye   See nonportable j COBOLewbcs COBOL ek3 MACLIBeseks   COBOLeccse J    Transportation  The process involvec in moving a program  from one machine to another  If the two machines ac   cept the same COEOL dialecte the process is mechanical   if the two dialects involved differs extensive  modification may be required     See conversion     Version  Refers to a particular document within a family of  documents defined by a release of a document  Version  refers to a document resulting from specific  modifications to another version within a release     See modifications releases revision     workbench  A  comorehensive collection of capabilities ard  facilities to assist the COBOL oroagrammer in the  development and preparation of complete COBOL systems  supported  y full documentation  Other capabilities cf    Georgia Institute of Technology
247. result    in the operatins system being modified by the users     The allocation of CFU time is provided by means of time  slicess normally 1 3 seconde Time slices are allocated on a  priority oasis with highly interactive processes receiving  relatively high priorities and processor bound processes be     ing given tower orioritiese    To minimize paginas multiple processes are able to use  identical pages of a shared procedure segment  These shared  procedures are reentrant and thus remain unaltered by the  processes that use theme A shared procedure exists only  once on disk and  when actives only once in main memory    reaardiess of the number of processes using it     Seoroia Institute of Technology COBOL Workbench      tfm sae    n      JiEcA E           m E    Section 5 IMPLEMENTATION Pace 121    Process exchange is handled by a hardware dispatcher   microcode  which manages the Ready Lists a number of Wait  Listse Semaphoresse and the Process Control blocks      process exchange is caused asynchronousty by harcware  generated interruptse faults  ana checkss and it is causer  synchronously oy  x process executina either the WIT or  NOTIFY instructions  The dispatcher also manages the  processor s live registers so that sets of the registers cen  be assigned to different processese and thus the neec to  save and restore register contents is reduced  The Ready  List icentifies all processes which are ready to run and is  ordered by priorities and then chronologically  Se
248. revision and  its previous revisions  A more detailed explanation of this  technique can be found in Appendix 3e The revisions of atl  documents will reside in a set of Libraries  see section    3SeSelde    eoraia Institute of Technology COBOL Workbench    ee n    Section 5 FUNCTIONAL COMPONENTS Page 72    FIGURE 3e5 1    PREPARATION AND CONTROL OF PROGRAMS AND DOCUMENTATION                                                 gt   Text                x d d d d d xxx k  k xk    Editor                   A                                i     o  i                     i          II   EEE  PEE ONE Ter OM ee oem ESSERE  l   i ssepe n  gt        Analyst            5  Document  4               Library      Programmer     Control   x  ss  w        5         mM    e                                     MEAP EATA     TEES NECEM              Programs    xd ek kkk ktk x    Output    4            gt    or      Process     Formatted    ep   Documents      RR  l  A   A        Text      Command      Flow     Flow           I Y  oY    a m m ae ae      gt     d y    x x6 x6 845  Qum Q eode de de de n fe n xn    Georgia Institute of Technology COBOL Workbench    cen e    Section 3 FUNCTIONAL COMPONENTS Page 73    3 5 1 Libraries    An important part of document control is library management   As mentioned earlier  there are a number of Libraries  required to support all the activities of the Workbenche and  many of these Libraries contain similar component files or   at Least   component files that c
249. revision beyond this point in  time  This method prevents the risk of accidentally remov   ing code that may be Later found desirable  One can also  use this special delta to specify the inclusion of previous  deltaSe In the discussion concerning figure a eSde2el le it  was mentioned that delta 125 would not be applied to obtain  any version in release     If the change represented by del   ta 145 is desired in a revision of release 24 one can add a  special dettas delta 2 5 4 that requests the inclusion of  delta 155     Georgia Institute of Technology COBOL Workbench    Appendix 3 DOCUMENT CONTROL Page 158    35 2 3 The Storage of Deltas    ALL the deltas for a particular document are placed in a  data structure which is designed to allow the parallel  ap   plication of all deltase Each document  i e  set of del   tas  is stored in a separate sequential file which consists  of four partSe    3 2 5 1 Header Information    The first part is the headers which contains release locks    a List of orogrammers authorized to add deltas  an Enalish  description of the modules and any other information that  one feels is appropriate for the header  Next in the file  is the release table  This contains a count of the number  of deltas in each release  this is useful in determinina the  configuration of storage for the processing of the body to  be described oelow   The release table  is followed by the  delta table  which contains for each delta the release num   ber  Level number  op
250. rgia Institute of Technology    School of Information and Computer Science    Atlanta  Georgia    AUTHOR S  OF REPORT  Philip H  Enslow  Jr   John J  Goda  Jr     LIST OF MANUSCRIPTS SUBMITTED OR PUBLISHED UNDER ARO SPONSORSHIP DURING  THIS PERIOD  INCLUDING JOURNAL REFERENCES     No manuscripts were published during this period     SCIENTIFIC PERSONNEL SUPPORTED BY THIS PROJECT AND DEGREES AWARDED DURING  THIS REPORTING PERIOD     Faculty  Dr  Philip H  Enslow  Jr  Professor  John J  Goda  Jr  Assistant Professor    Research Assists  Perry Flinn  B S   Information  amp  Computer Science   Allen Akin  Shelly Smith  Barry Welch  Timothy Saponas    t BRIEF OUTLINE OF RESEARCH FINDINGS    The work on the project during this period has focused primarily on  completing the specifications for    xe COBOL Programmers Workbench and on an  initial pilot demonstration of its capability  Particular aspects of the  specifications that have been addressed are       Definition of the language to be used on the Workbench    Workbench COBOL       The interaction between the various phases of processing  provided by the Workbench components       The form and content of the various libraries required to  support the Workbench     The principle goals of the Programmers Workbench are       To provide the capability for utilizing reusable modules  in the preparation of transportable  base line programs        To provide an extremely hospitable environment for the  preparation of base line progra
251. rial he is developing  They contain code in  COBOLewbe or COBOLek and will usually be untestede After a  program or module is completed and has been satisfactorily  tested  it will normally be moved to one of the other  Libraries  leege  General Library  Application Libraries      Project Libraries   etce e    The individual programmer may choose to make use of the  Workbench facilities to permit notational shorthand for  things Like Long variable names or frequently occurring  Statements  These notational shorthands are stored in the  Personal Librariese These individual abbreviations should  be removed from the completed code by expanding such module    calls into the corresponding cod  e    Georgia Institute of Technology COBOL Workbench      ea r we ees    Section 3 FUNCTIONAL COMPONENTS Page 8 amp 0  3 5 1 6 Test Library    The Test Litrarys TESTLIBe consists of test harnesses into  which the proorammer may insert a newly designed module for  test purposes   routines for the generation of random data  meeting specified iernat restrictionse and general purpose  output routines  Other TESTLIB functions might provide the  capability to collect performance data  These modules are  provided in order to assist the programmer in the develop     ment of new  mocules      TESTLIP contains only tested code  New module definitions  or routines may be added to TESTLIB by installation person     nel only after complete testing     2 5 1 7 Compiler Unique Macro Libraries    The workbe
252. ring by one or more substringse Several iteration  elements  collectivelys an  iteration group   are placed in  parentheses  the command interpreter will then generate one    Georgia Institute of Technology COBOL Workbench    Appendix 4 COMMAND INTERPRETER Page 1853    command Line for each element  with successive elements  replacing the instance of iteratione Iteration takes place  over the scope of one     amp net  3 it will not extend over a Cnet  separator     If iteration is applied to a   compound nodedrs  it wills of courses  apply to the entire   node  3 not just to  the first   net   within that   node        Multiple iterations may be present on one commands each  iteration group must have the same number of elementss since  the command interpreter will pick one element from each  group for each generated command Line   Cross products over  iteration groups are not implemented    An example of iteration   1 fos part 1 2 3   is equivalent to  J fos partis fos part23  fos part3  and  J ep   intro body summary  part 12 3     is equivalent to    J ep intro partis  cp body part2  cp summary part3    4e2e7 Function Calls      function call   35  9    net      lt net separator    lt net gt     1     Occasionally it is useful to be able to pass the output of a  program along as arguments to another program   rather than  to an input porte The function call makes this possible   The output appearing on each of the first standard output  ports of the  lt net gt s within the 
253. rithmetic expression E      ON SIZE ERRL  imperative statement      ae VERE  andi alae PED ee oe n    a  As in 7  COBOL but can only have one identifier  before the equal signe    b  The composite of operands must not contain more  than 18 decimal digits     Georgia Institute of Technology COROL Workbench    LM dd    BANS FISCAL EEPOR    A 70 5  E UNA  SG ALSO Us annua  _  INTERIM   X  FINAL   DEPARTMENT Or THE ARMY       r L las    February 20  1980                    GRANTEE  ADDRESS    WO  GRANTOR  ADDRESS   amp  35    Ip   gia Institute of Technology U  S  Army Research Office    anta  Georgia 30332 u P  0  Box 1211  Research Triangle Park  N C  27706  SORT OF EXPENDITURES UNDER GRANT NO         REPORTING PERIOD  DAAG29 77 6 0045        FROM    11 25 76 TO  6 30 79          E   TEM    GRANTOR GRANTEE      AMOUNT OF EXPENDITURES            l   Salaries and Wages e NN NEN    5  6 885 p 3  E   COCA RENE    2  gem Purchased with Grant Funds   Bs EE sce COOGHOSCOCOOUO QOO     Title Vested in Grenteo EE EE EE   56 430 00  9767440       Title Retained by the Government   i   AMEN   Supplies Materials    and Expendable Equivment Nu   4   Travel   COCHE EM     Soot cK    Je Publication Costs  Tetal Pase Costs  Reprints  etc                speed    a  Ween S  xN  Page Costs Oaly  ir Available zm 2 ad    Reprints  Direct Labor  Any Other Costs       ify    Professional Service   237 20  7  l Total Direct Costs  Sum cf Lines l through 6    D   S  B    Indirect Costs AQ 474 7  Fe cue 
254. roach taken in the Workbench is to write in an  environment independent Languages Workbench COBOL     COBOLewbe s and to convert that Language to a particular  COBOL dialect only when preparing the delivery of the com   plete program to the inetsitatton  see Figure 2 2 1 1 4  A  third goal is to provide the capability to make use of  reusable code modules whenever a task or function can be    identified that is frequently usede    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 16    FIGURE 2261 1    PROGRAM PREPARATION    r   c GEHEN Quem dpi cce GENER circ ED quomm RECS GERD qubd cR ee            Programmmer s         gt   Environment    E cp  dus saa  Programmer     System Analyst              EXTUS  ee                   o         T                gt    keke  gt    Librarian         Library        less   LLL LLL                                   MON ER               gt  Breadboard Program          gt t           COBOLewbcs        xx       Compiler Independent                      Program                  gt  Test Program                gt          Processor    COBOLewbes              Compiler Independent                                    gt  Baseline Program RELEASE   gt             COBOL wbc        i   Compiler Independent      i Serene Sr ae ey           r PAEPAE E EA              I      Program  9592 9 o9 2o rmm I                  Processor  C   2              2 2 22 2 2 2 2 22 2 2 2 2 2              Y  Target Machine VERSION     Compiler
255. roach to transporting programs can be charac   terized as the  star technique   The program is originally    written in a language applicable to the development machinc     Georgia Institute of Technology COBOL Workbench    Section 1 INTRODUCTION Page 10    This program then becomes the baseline program which is  controlled to insure that the program continues to meet the  operating requirements of the systeme In this environments  whenever a new target operating environment is requireds the  program is transported from the central development machine  directly to the target environmente It should be recoanized  that in this environments the initial cost of developing a  program on the central machine that can be transported to a  wide variety of target operating environments without any  redesign is higher than the cost for developing a program on  a single machine that will then later be transported to onty    another single machine     Georcia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 1i    SECTION 2    CAPABILITIES OF THE COBOL PROGRAMMER S WORKBENCH    2 1 GENERAL OYERVILVM    The primary goal of the COBOL Programmer s Workbench is to  assist and support the development of COBOL programs in an  efficients cost effective  and speedy manner  This goal is  to be accomplished by the devetopment of an integrated en   vironment of powerful software tools easily accessible and  usable by the programmer  The general objective ts to make  maximum use 
256. roduce something  Like this     Pase 1  It is not necessary to include the trailing delimiters     io facilitate page numberings you may include the sharp  character   d   anywhere in the text of the titles when the  command is actually performed   fmt  will replace all oc   currences of the  2  with the current page number  To  produce a literal sharp character in the headings it should  be preceded by an  43     so that ft Loses its special meaning     The first segment of a title always starts at the left mar   gin as specified by the lm commande While the third seament  normally ends at the risaht marqin as specified by the rm  commands this can be changed with the  Lenath of title  cor    manda     which changes the lenoath of subsequence titles to      still  beocinning at the Left margin  Note that the title Lencth is    automatically set by the tm and rm commands to coincide with  the distance between the left and right marcinse    Georgia Institute of Technology COROL Workbench    Appendix 6 FORMATTER Page 224    6 5 2 Page Headings and Footings    The most common uses for three part titles are page headinos  and  footinase The header and footer Lines are initially  blanke Fither one or both may be set at any times without a  breaks  y using the  header  command    ehe  left center right   to set the page headinas and the  footer  command  efo  lLeft center riaht     to set the nage footinyze The change will become manifest  the next time the too or the bottom of a p
257. roduced is in  accordance with the specifications established by the system    designere    2 3 3 Test Control system    The Test Control System causes the tests to be executed   Throuoh the Test Control Systeme the appropriate test data  is retrieved  the driver or test harness is executed using  the prescribed test datas and any postprocessing of the out   put from the test harness is performed  The Test Control  System automatically modifies the source code as necessary    when performance evaluations are conducted  In the case of    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page  i    the testing of modules which perform certain file processing  activities internally  the Test Control System will  automatically compensate for differences between the way in  which files are stored and accessed during the test and the  way in which files are to be managed under the eventual    production systeme    It is through the Test Controt System that most of the tools  used in the program testing phase are sequenced  monitorede  and controlteds Ine Test Control System can also gathers  records and reyort in an appropriate form information to be  used in the management of program testinge Pertinent in   formation regarding each test  who tested what modules what  data was used in the teste when was the modute Last X tested     etce  are logged by the Test Control Systeme    2  5   Test Data Generation    While the testing of individuat modutes or compon
258. rsor is positioned according to  the character typed immediately after the ctrl L e  In effects the current Line is scanned  starting  from the current cursor position and moving lefts  for the first occurrence of this character  If  none is found before the beginning of the Line is  reached  the scan resumes with the Last character  in the Line  If the Line does not contain the  character being tooked for  the message  NOT  FOUND  is printed in the status Line at the bottom  of the screen    Se  remembers the Last character  that was scanned for using this keys if the ctrli L  is hit twice in a row  this remembered character  is searched for instead of a Literal ctrl te    ctrl M Newlinee This key is identical to the NEWLINE key  described below     ctrl N Insert newlines A newline character is inserted  hefore the current cursor positions and the cursor  is moved one position to the righte The newline  is displayed according to the current nonprintabdle  replacement character  see the  u  option      ctrl 90 Skip right  The cursor is moved to the first  position beyond the current end of Line    ctrl P Interrupte If executing any command except  a     c   FT  or Hy  eset aborts the command and  reenters command mode  The command Line is not  erased    ctrl  Fix screen  The screen is reconstructed fror     se s internal representation of the screen     ctrl Frase right  The character at the current cursor  position is erased and all characters to its right  are moved Left on
259. s   Suppose you wish to Locate a  Line containing the string  a   b   You may use  the following commands     fa aa  b      Note that two  at  signs are required to pass one   at  sign to the editor   The  at  sign  turns  off  the special meaning of the asterisk  so it  can be used as an ordinary text character  You  may have occasion to escape any of the regular ex   pression metacharacters  X   9  s Cs  e de or Cf   or the slash itself  For examples  suppose you  wished to find the next occurrence of the string   1 2   The command you need is      1  03 2        Pattern tagsSe As seen in the next sections  it Ys  sometimes useful to remember what part of a Line  was actually matched by a pattern  By defaults  the string matched by the entire pattern is remem   Serede It is also possible to remember a string  that was matched by only a part of a pattern by  enclosing that part of the pattern jin braces   Hence to find the next Line that contains a quoted  string and remember the text between the quotes   we miaht use     IU 7      If the Line thus located Looked Like this  This is a Line containing  amp   quoted stringa      then the text remembered as matching the tagged  part of the pattern would be    quoted strina    Georaia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 203    The Last important thing you will need to know about pat   terns is the use of the  default  pattern   1d  remembers  the Last regular expression used in any commands to save y
260. s   efi on  efo  il c r   blank  ehe  il c r   blank  ehy on  ein  N NaC  elm  N 71     Georcta Institute of    FORMATTER    If no  Parameter    ianored    13nored    ianored    blank    blank    Technology    Cause  Break    no    no    no    yes    yes    no    no    yes    no    no    no    yes    no    no    no    no    Page 250    SUMMARY QF COMMANDS SORTED ALPHABETICALLY    Explanation    Introduce a comment     Set margin adjust   ment mode   Boldface N input    text Lines   Regin a new padee  Force a breake    Set no break controL  character   Set basic controL  charactere    Center N  input text  Lines   Begin definition or  redefinition of a  macroe  End macro    definition     write a message to  the terminal     Lxit immediately to    the Subsysteme    Turn on fill mode     Set running page  footinge  Set running page  headinge  Turn on automatic    hyphenatione  Indent Left margine    Set Left marain     COBOL Workbench    Appendix 6    Command  Syntax    els N    elt  N    em4  N    ena    ene N    anf    e nh    ens    enx file    epl  N  epn  N  epo  N    erc        Initial  Value    on    BLANK    N 60    Georgia Institute of    FORMATTER    If no Cause  Parameter Break  NE  no  N 60 no  Nz35 no  N 2 no   z2 no  N 3 no     no  Nz1 yes     yes     no     no    next ara no    N 66 no  ignored no  N 0 yes  ELANK no  N 60 yes    no    Technology    Page 251    Explanation    Set Line snacinze    Set Lenath of  headers footer and  titles    Set top merain    befor
261. s encountered dur   ing this project ands unfortunatelys neither one has been  solved completely  One of these major proulems pertains to  Program Preparations while the other concerns the Cocumenta     tion Subsysteme    The concepts of the Program Preparation Subsystem have been  implemented and amply demonstrated for both their power and  usefulness  The major impediments to completeina an  operational model of the programming subsystem ere      The definition of Workbench COBOL  COEOLewbe      The definition of the COBOL  Programmer s En     vironment    COROL programmerse as a aroups have been very slow to  utilize automatic programming aids  even those rudimentary  ones presently avattablLe to theme OQurina the course of this  studys extensive conversations have been held with key per   sonnel in several Large COBOL programming groups  In almost  all of these meetings the same conclusions were reached   Since COBOL programmers have had so Little exposure to  automated software toolsSs they are not able to provide any  cefinitive guidance as to what would be useful for them or  even what they would like to have availablee on the other  hands alt of these programmers admit that there is a high    potential for increased productivity if such tools were    Georgia Institute of Technology COROL Workbench    mccain ae    VOTER ER Uu wc   o    Section 5 IMPLEMENTATION Page 130    available  It appears that the only approach that is coing  to work in solving this problem is to 
262. sable modules written in COBOLewbe  or    COBOL eka If no compiler exists for       orgia Institute of Technology COBOL Workbench          T A    Section    1     2     4     5     6     7     8     Geora  a Institute of Technology    4    UTILIZATION Page    COBOLewbce the breadboard program can be  processed to produce a  ek  version for    execution of the prototype system     Figure 5 2 8 1    May contain references to Workbench Reusable  Modules and or compiler unique features    May also contain references to Personal  Reusable Modules    Processes and removes references to Personal  Reusable Modules    Processes and removes references to Project  Reusable Modulese   Processes and removes references to Applica   tion Reusable Modules    Frocesses and removes references to General  Reusable Modulese    A cop of the Baseline Program will not    Me    contain references to any Reusable Modules   ALL such calls have been expanded fully into    COBOL ewoOCe It may still contain references    to compiler unique features     Processes and removes references to compiler     unique features     105    COBOL workbench    Section 4 UTILIZATION Page 104    4e5 DOCUMENTATION PREPARATION    4e3e1 Prepare Original Documents    The preparation of original documents is accomplished hy  means of the Text Cditore  Text can be either entered direc   tly or copied from other documents which already exist  within the system  Possible sources for copies include both  proaram pda and text docu
263. sed to replace macro  calls of COBOLewbe in order  to produce code for a par   ticular compiler  COBOL ek      Page 75    COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 76    GENLIB contains only tested codee New module definitions  may be added to GENLIB by installation personnel onty after    complete testinge    The modules are written in COBOLewbc and contain no  compiler dependent references  These modules may contain    calls to macros as well as calls to other modulese    3 5 1  2 Application Libraries    The Application Libraries are special purpose module  Libraries containing modules developed for special ap   plLicationSse Fxamples might include a package of payroll  modules or a package of modules developed for inventory  controle Every application will possess its own library   APPLIB name  eega APPLIB PAYROLL or APPLIB lt INVEN D        p     pLication Libraries contain only tested code     3 5 1021 Reusable Modules   Modules are used to isolate any frequently performed func   tion or task in a single piece of codes to eliminate redun   dant codina of such tasks   and to simplify maintenance  The  modules included in the Application Libraries are developed  specifically for a particular application but may be used by  other projects as the occasion requires  They are written    in COBOLewbc and must be both tested and complete     Georgia Institute of Technology COBOL Workbench    Tete  Som o E    section 3 FUNCTIONAL COMPONENTS Page 7     5  5 1 2 2 Pr
264. sible  assuming programmer  and industry acceptance of the new dialects to develop new  programs which could run on any target machines the addition  of new environments to the original set of target machines  would be an extremely difficult proceeding and would  probably result in the same chaotic situation presently  existing with the  Standard COBOLS   Worses only new  systems would be portable  Systems would be able to include  previously written software only after extensive rewriting  to transtate the old program into the new lanauagee Final   Lys development of yet another COBOL compiler does nothing    to address the problem of developing reusable code     Georgia Institute of Technology   COBOL Workbench    Section 2 CAPABILITIES Page 36    The chosen solution is to express those functions and  Statements for which a compiler  dependent implementation is  necessary as special statements in a compiler independent  representation of the programs and then to  expand  these    statements separatelys relative to each target compiler     2 2 6 Breadboard Programs    A major expense in the development of automated information  systems has been the high cost for the redesign of the  system after the initial prototype has been implemented   This is especially true when a separate organization is  preparing the program for another organization which is the  proponent or motivator for the system to be designede One  approach that has been proposed to Lower this initial design  
265. situation in figure ae3e2 1e deltas 1541  through 1 4 must be applied in succession  In all cases  delta 1 1 will represent the original document  ALL changes  are expressed in terms of the primitives  insert and delete   Each of these primitives is performed on an entire Line of  text  For examples to represent the change of one charac   ter  one would delete the Line containing the character and  insert a new Line containing the changed character  Ex   perience has shown that the information which ds Lost by  representina all changes as a combination of inserts and  deletes is not really essential LRochkind 1975   Thuss  there is no penalty in constructing a delta from a series of  inserts and deletes     FIGURE aeSe2 1    SEQUENCE OF FOUR DELTAS  INDICATING FOUR REVISIONS OF A MODULE    DLlelw     Dle2Z2   D1e3   01 4  D1 2 represents the changes that must be applied to    Diel to get release 1   version 2 of a document    3 2 1 Adding New Deltas    New deltas can only be applied after the Last delta of a  release   Thuss if one has a document that has two releases  as is the case in the example depicted   n figure a4 3 2 1 1    and it is desired to make a modification to release 1s then  the new delta must be added between delta 1544 and delta 241   This situation could occur when release 1 is being tested by  one group and release 2 is being developed by another groupe  If the first group finds an error in the first releases del   ta 1 5 must be added to correct the erro
266. st Capabilitieseeeececcccecccececcceccecccccocececclil     Section Se IMPLEMENTATIONeecoooce006000209990090990999909099099909209999922113    el GOALS OF DEMONSTRATION WORKBENCHeeeeecccccceccecceccccccoccceccell   eo SYSTEM ENVIRONMENT AND TOOLS AVAILABLE  eeeececccecceccecccecccli5  el Prime 400 Computer SyStemeeecccccceccecccccccceeccccccceccoccecll  b  el Hardwaleeeeeececcccoccceceocsccccce occcscovosceccsccccescllb   el VemOnyeeeecececeoceecece coscoceeeocctcoocscececcesccsecccccllb   ec Registen Seeeecccecccoccecccccecececccseccececcccccscececcll    eS Instruction Set Hardware Support eeeececcccecccecccell    4 Process Exchange Facdillityeeeecscecccccceccccccccecccecccll    e 9 Input Outputeeceeeccecoccccecceccccccccoccecceccccceocceccllh   e b Program Environmenteeeececcecccccecccccccec  ocsceccccocccecll    e2 Standard System SoftwareeesececccceccccccccccccccccecceccellO   el The PRIMOS Operating SyStemeeececcecccceccecccoococcll    ee Prime COB  L  s  eses56699403596  59069095992998294999299    7  122   e3 The PRIMOS File SyStemeeecceccccceccceccc ccccccecceccccelc   e2 The Georgia Tech Software Tools Subsystemeeeecccccccccclz  el Generaleeeececccccecccccceccceccccccccoscceccccceccesccccecl2    i Major Components and FeatureSeeeeeececcccececcceccccccel2   e3 ORGANIZATION OF THE DEMONSTRATION WORKBENCHeeeeecccccocsclc    e4 OPERATION OF THE DEMONSTRATION WORKBHENCHeeseeeccccccecccescl2 amp     Georgia Institute of Technology COBOL Workbench    Page viii      5 MAJOR PRO
267. stem to system  Usuallye the Subsystem expects a  backspace  control h  to be used for deletina single charac   ters that are in error  and a DEL  RUBOUT on some terminals   to delete entire Lines that are in error     Georgia Institute of Technology COBOL Workbench    Appendix 4 COMMAND INTERPRETER Page 163    In the next few sectionss references will be made to input  Lines that are terminated with a  newlines  You should use  the  newline  key on a terminal only 1f the terminal lacks a   return  key  They do not necessarily have the same effect     4 1 5 Commands    Input to the command interoreter cons  ists of  commands    CommandsSs in turns consist of a  command names   usually mace  up of Letters and digits   and additional pieces of dn   formations often called  parameters  or    argumentse     Note  that a command may or may not have arguments   dependinc on  its functione  The command name and any arguments are  separated from each other by spaceSe    For examples     echo Hello world    Hello world    J  The command name is  echo     tcho  is not a very involved  commands it simply types back its parameterss whatever they    may bes      Here is another commande one that is a bit more useful       Lf   adventure   ee quide m6800  shell shelledoc subsys time  sheet  words zunde   1     Lf  is used to List the names of your files     4 1   Special Characters and Quoting    Some characters have special meanina to the command  interpreter  For examples try typina this
268. t   ec Text EditOnr   eeeocccec  ccecccootc  onocecsocseceo  tceete  osososcoscectcocceccci  J    5 DOCUMENT CONTROL  eeeeeo  0002000990909090909009000990906020022920922 1  ol Librarieseseeeeeccesoecececeoecceccec  ccosccocscooctctesoossosccoesecscco  csce P  el General LibralyeeeeeeccecccecceccocnccoccceccececcoccececccccelJS    e e Application Librar  ieseeeeeccececccecececcceccc  ecscc  coc  cecce h   el Reusable Moduleseeeeecccceccccceccccccccceoccececcececcoib   e 2 Programming SkeletonSeeeccocccoccecceccecccecocsceocccecescol   ed Profect Librar  ieseeeeeecoecccecececeecccccccc  coocc  c  ecoccl   el Reusable Moduleseseeeececocsscececcecccecccecoscccccc  ccctco  occll   ec Test HAPTNECSSECSeeeveeseeseceeeeseeeseseseesseecesecsnn  D   4 3 Programming Skeletonseeseeoccccecceccccccceocce  sceccc  cc i    e  Baseline Progdlaf  ie  eeeeseeececcceccccececccaoccoccccccccccoll   se  Breadboard ProgramSseeeeeceececceteoecec  cteottcsc  ooocs  scsccccccc D   e4 Release Librarnryeseeeeceocceoececececcecoccescc  cocsoscoccecscctese ld   25 Personal LibrarieSeeeeeeesesoececooececcoeoosoc    scooesoecceoonnao      5 Test   ibralyeeeseeecccoecececeec  oocsssttcecoo  ssbs  tocsccco  ov  evocscsc l     E Compiler Unique Macro LibrartesSeeccvenenecenessecseoseenl   ee Control Of Source Code eeeccceccecccccc  cc  ecctcocce  sesccseoccPl  ol Structureseeeeeeceoeceo  oeoeeocecooootooeo0nooet0noecoceccecccoteeco ic     c Rian ae re ee ae able Wk bP Ao eed  ORO OA OO Nee bE ROG CORES Swe TREE
269. t every other text formatter ever written   operates on an input stream that consists of a mixture of  text and formatting commandse Fach command starts at the  beginning of a Line with a  control character     usually a  periods followed by a two character names  in turn followed  by some optional  parameters   There must not be anything  else on the Line  For examples  in    eta 11 21 31 41    the control character is a periods the command name is tas  and there are four parameters   1l    21    31  and  41    Notice that the command name and all the parameters must be  separated from each other by one or more blanks  Anything  not recognizable as a command is treated as texte    Georgia Institute of Technology COBOL Workbench    Appendix  amp  FORMATTER Page 224    6 2  FILLING AND MARGIN ADJUSTMENT    6 2 1 Filled Text     Fmt  collects as many words as will fit on a single output  Line before actually writing it oute regardless of Line  boundaries in its input streame This is called  filling    and is standard practice for  fmt   It cans  however    be  turned off with the  no fiLi  command    enf    and lines thenceforth will be copied from input to output  unalterede When you want to turn filling back on agains you  may co so with the  f1LL  command    efi  and  fmt  will resume its normal behavior     If there is a partially filled Line that has not yet been  written out when an nf command is encountered  the Line is  forced out before any other action is taken  This 
270. t in  the parse or execution of a networks the remainder of the    command   is tanorede The null command is Legale and causes    no actione    The command interpreter reads commands for interpretation  from the command sourcee This is initially the user s  terminals although execution of a command file may change  the assianmente Whenever the command source is the  terminals and the command interpreter is ready for inpute it  prompts the user with the string contained in the shell  variable   prompt    Since this variable may be altered by  the users the prompt string is selectable on a Dper user    basis     Georgia Institute of Technology COBOL Workbench                             Appendix 4 COMMAND INTERPRETER Pace 173    4 2 2 Networks      net   iiz  lt node gt d     lt node separator     lt node separator      node        lt node separator   i         lt pipe connection     lt pipe connection    z     port   1     C  lt node number  J   e lt port gt       port    2 z   integer      lt node number   ii    integer           Label      A  lt net gt  generates a block of  possibly concurrent  processes  that are bound to one another by channels for the flow of    data  Typicallye each    node    corresponds to a single  process   XNode  s are described in more detail belowe   There is no predefined    execution order  of the processes  composing a   net    the command interpreter will select any  order it sees fit in order to satisfy the required  input output relations  
271. te of Technology           Q       odo de dede de de de dede de deo dee eee      Printing        Tools    le                V              Printed      Document         Command  Flow             gt                     Pede che ode de n    A amp  5  Q de hehe de dese dede    COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 91    right margin evens control the size of the Left and right  margins as well as the top and bottom margins  and specify  headers or footers to be printed on each page along with  numbering of the page  The user can control the line spac   ing and specify the centering of specific Lines  In ad   ditions specific words or phrases can be hightiahted by bol     dfacing or underlining     The ability to define and use macros is also available in  the Text Formattere This includes the ability to pass  parameters when calling a macro  This capability gives one  the ability to provide a set of standards to a group of  documentorse This is done by creating macros to perform the  operations which are to be made standard and providing these    macros to the documentors through specific Libraries     Thuss the Text Formatter provides neatly formatted output  from very unstructured inpute By delaying formattina to a  later stages one is able to enjoy a considerable amount of  flexibility during the entering and modification stages of  document preparatione This allows a document to grow and    change with a minimum of effort     5 6 2 2 Printing Tools    In ad
272. te of Technology COBOL Workbench    Section 4 UTILIZATION Paye 107    4 4 PROGRAM TESTING    FIGURE o4    1    TESTING A COBOLewbe MODULE         COBOLewbe   COBOLewbe    Module     gt    Module        gt  Test Outputs     Test l  Input   Subsystem    Text Data      5      De oe ee ely           Special    Instructions    4 4 1  Workbench Test Operation    4 5 1 1 Input to the Testing Process    1  COBOLewbc Source  odute    The testina process will convert the  COBOLewbe module into successive COEOL i  modules and test each member of the resultin     family of modules     2  MACLIBete where i goes from 1 to n    Georgia Institute of Technology COBOL workbench                                  ws     o com    Section      UTILIZATION Pane 1064     ecessary to permit conversion o f the  COGO0L  wDbc module into the corresponding    COBOL  1 modules     Special Instructions  Modules  orovired o      TESTLIB       T9 establish the test en   vironmente     To control the test cenene Ina   etc      To create test data meetina data  declaration requirements      To create test files meeting the  file format specifications of a    given machine     Getele   Output from the Testing Process    1     ho  al    xXumeric values from test runs    Among the special instructions included on  TESTLIB will be routines to print both the  random cata generated as input anc the  results of the test runs     3B3agnostic information     Among the special instructions included on    Georaia Institut
273. team  for use on their profecte    Prototype System  The 3COBOL wbc prooram thet defines a  family of COBOLen programs durina testinos  before  delivery  The firsts as well as the successives  ap   proximation towards the program which wilt oe  delivered     See breadboard     Releases   efers to a family of documents which differ from  predecessor or successor releases by virtue of  mocification for efficiency  expanded capabilitys or to  remove errorse This concept allows several groups to  work independently on a document existing in several  stages or releasese For examples one release may be in  production and another in development  Thus  one croup  can make corrections or modifications to the release in  production with no effect on the release in develop   mente   See modifications revisions  version     Reusable  Written ina flexible manner so that the code may  be used in other program applications   CSee module  portable     Revisions Refers to a document which differs significantly  from predecessor or successor revisions ty virtue of  modification for efficiency  expanded capability   or to  remove errorSe A revision consists of a release of a  document and the version of the release  THUS s  revision 2  3 of a document is version 3 of release 2 6   See modifications releases    version     Software Tools Subsystem  SWT   An integretated set of  automated software and text preparation and manipula   tion routines     see Section 5 2 25  Appendices 4 through 7    
274. tern to be matched contains  command Language metacharacterse When the pattern is sub   stituteo into the network within  filest  and the command  interpreter parses the commands trouble of some kind is sure  to arise  There are two solutions  Ones the filter  quote   can be used to supply a Layer of quotes around the pattern     Lf  c  args 2    find Lara 1   quote     Two   the shell variable    quote opt   which controls  automatic function quotation by the command interpreters can  be set to the stringo  YES      declare   quote  opt   YES  Lf  c Laras 21   find Caro 1     This Latter solution works only because  args  prints each  argument on a separate Lines the command interpreter always  generates separate arauments from separate Lines of function  output  In practices the first solution is favored  since  the non intuitive quoting ts made more evidente    One common non linear command structure 4s the so called  Y   structures where two streams of data join together to form e  third  after some processing   This situation occurs  because of the presence of dyadic operations  Cespecialty  comparisons  in the tools available under the Subsysteme As  an example  the following command compares the file names in  two directories and Lists those names that are present in  both     J Lf  c diri   sort    Lf  c dir2   sort   common    Visualize the command in this way     Georgia Institute of Technology COBOL Workbench         Appendix 4 COMMAND INTERPRETER Page 186    Lf  c
275. test harness and the t t definitions  given by the programmer in some procedural notation  It  will also permit the generation of test data by combining  records from existing files of test material and integrating  these records into a comprehensive set of test data    his  Latter capability may be used to insure that all modules in  a particular program receive final testing over an identical  data set produced as the union of test input generated for    the individual modulese    Georgia Institute of Technology COBOL Workbench    section 2 CAPABILITIES Page 43    2e5e5 Automatic Yerification Systen    A number of tools will te available for the analysis of out   put resulting from execution of the test harness  An output  analyser would permit comparision of outputs with correspon   ding inputss with previously generated outputs  or with  predetermined results presented to the analyser in some  forms and would report the discrepancies on an exception  basis  Standard statistical Library routines would be used  to interpret the output from the object time monitoring    facility     26 3556 Qbieci lime Monitors    Options provided within the Test Control System will permit  the  instrumentation  of the module being tested in such a  way that program    execution efficiency can be evaluated  The  areas within a given module which will receive closest  monitoring will be determined by usage statistics provided    at the source program paragraph Level     Georgia Institute of T
276. the Last active file  the one tn use when the  divert    command was recoanized      dnt or cnlitcommentary information     As Suggested by Kerniahan and Plaugery    dnk  may be  used to delete atl blanks and tabs up to the next  newlines and the newline itself  from the Input  stream  There is no other way to prevent the newline  after each  define  from being passed to the outputs  Any arauments present are ignoreds thus allowing  d  dnl   to be used to introduce comments     jfelsetlagbaced   If a and b are the same strings then c is the value of  the expressions otherwise  d is the value of the ex   pressione Example  this macro returns  OK  if the  value of i is  1    ERR  otherwise     define statussifelse is 140K4 ERR      includetfilename    Filename  is opened and its file descriptor is stac   kede The next time  macrot requests input   it receives  input from the named file  When end of file iS seern    nacro  reverts to the Last active input file  the one  containing the include  and picks up where it left off     incr  n   increment the value of the integer represented by n   anc return the incremented value  For instances the  following pair of defines set MAXCARD to   9 and MAXLINE  to B1     define MAXCARDs amp 0   define MAXLINEsincr  MAXCARD      Georgia Institute of Technology COBOL Workbench    Appendix 7 MACRO PROCESSOR Page 260    suostr s mean   return a substring of string s starting at position m  with length ne SudstrCabcele2 d is abs substr abcs251  
277. the definitions of the macros  that transform the program from  COBOL w  C  demo  to  COBOL tsrgot  In this examples  there are two macro  Libraries  Note that throughout this example calls or  references ta the functions in these Libraries are  identified by using lower case Letterss howevers this is not  requirede It is done in the example to highlight the calls   Also note thet   1  and   2  refer to the first and second  arauments aiven in the macro calle respectively     Macro Library for the PRIME    definetide   IDENTIFICATION OLVISIONe   PROCRAM IDe   Ble    cnli  definetcomnon2sCOMPUTATIONALI dnl  defineCreader sPFMSidnl  definelprintergsPEFMSI dnl  definet file_idsVALUE OF FILE ID IS  31   dnt  define cybers  dnl  define p400eS l dnlk  definelauotes Sitidnl    Georgia Institute of Technology COBOL Workbench    Appendix 2 EXAMPLE Pace 145    Macro Library for the CYBER    definetids   IDENTIFICATION DIVISION    PROGRAM  ID    tie    dnl  define comp34COMPUTATIONAL D dnl  definetreadersINPUT F2Z  dnl  definetprintersOUTPUT lt FZ  dnl  define file_ide ddnl  define cybereS1lddnl  define  p400e  dnl  define quotes    1  dnl    2  2   PROJECT LIBRARY    A programmer using the Worktench will need to have access to  code modules that are common to all those working on a given  project  For this examples we assume that two file descric   tions are to be shared  and that one COBOL code structure  a  multi level split on several keys in a sorted file  occurs  often enough that
278. though this is easily changed with the tleft   marain  command    The right margins  which is normally positioned in column  sixtys can be set similarly with the  right marain  command    To ensure thet the new margins apply only to subsequent    Georgia Institute of Technology COBOL Workbench    Appendix 6 FORMATTER Page 231    texte each command causes a break before changino the margin  values    6 4 4 Indentation    It is often desirable to change the effective value of the  Left margin for indentations without actually changing the  marcin itself  For instances all of the examples in this  guide are indented from the Left margin in order to set them  apart from the rest of the texte Indentation is easily  arranged using the  indent  commande    ein  N    whose parameter specifies the number of columns to indent  from the Left margine The initial indentation values and  the one assumed if no parameter is givens is zero  jee  start in the Left margin      For the purpose of margin adjustments the current indenta   tion value is added to the Left marain value to obtain the  effective teft margin  In this respects the lm and in com   mands are quite similar  Bute whereas the Left margin value  affects the placement of centered Lines produced by the ce  commands indentation is completely ignored when Lines are  centered     Paragraph indentation poses a sticky problem in that the in   dentation must be applied only to the first Line of the  paragraphs anc then normal margins 
279. thout being explicitly pedagogicale    One commonly occurring task is the Location of Lines in a  file that match a certain pattern  The  find  command per   forms this function     J file   find pattern   L ines  found    Since the Lines to be checked against the pattern are  frequently a List of file names  the following sequence oc   curs often       Lf  c directory   find pattern    Consequentlys a command file named  files   is available to  abbreviate the sequence       cat files  Lf  c Cargs 21   find Cara 11      Cat  is used here only to print the contents of the com   mand file   The internal command  arg  is used to fetch the  first araument on the command Line that invoked  files e  Simitarlys the internal command targs  fetches the second  through the last arguments on the command Lines The command  file gives the external appearance of a program  fites  such  that      files pattern  is equivalent to    3 lf  c   find pattern    Georgia Institute of Technology COBOL Workbench    Appendix 4 COMMAND INTERPRETER Page 185    and    files pattern directory  is equivalent to    Lf  c directory   find pattern    Once a List of file names is obtaineds it is frequently  processed furthers as in this command to print Ratfor source  files on the Line printer     l pr  files er    sort      Files  produces a List of file names with the  er  suffixes  which is then sorted by  sorte   Pr  then prints all the  named files on the Line printere    One problem arises when the pat
280. tion Letter if cne exists  date and  time it was addede List of other deltas included or excluded  by this deltas who created this deltas and why this delta  was created  The last part of the fi  is the body in which  the actual deltas are placede    Se2esec The Main Body    The body contains two types of recordse text recordss which  contain the source code inserted by the deltas  ana control  recordss which specify the effects of each delta  The  control record uses three Letters  Is Ds E  to indicate the  action to be taken  inserts  deletes end of control   The  release and version numbers for which the action is to be  applied are also specified on the control record  An exam   ple of a body presented in  Rochkind 1975  is depicted in  figure aeSe2etel l1le    Georgia Institute of Technology COBOL Workbench    Appendix 3 DOCUMENT CONTROL Page 159    FIGURE a eSe2e3e2 1    EXAMPLE BODY PART OF THE DELTA FILE OF A MODULE    I1 1  I1 4  text of 1 44  E1 4  text of 1 41  De  more text of 1 41  Ele2  T1e2  text of 1 42  01 5  more text of 1 2  E1 2  more text of 1 1  E1 3  more text of lel    Elel    Notice the bracketing by  Ie E  and  De E  pairse    Georgia Institute of Technology       COBOL Workbench    Appendix 3 DOCUMENT CONTROL Page 160    3 2 4 Protection    Document Control must also include a method of protection  against accidental tamperina and changes As mentioned in  the discussion abovee no delta can be removed physically  from the systems  instead  a new delt
281. to as tmarqin 1   and  margin 2 4  and the first and second sub margins of the  bottom margins   margin 5  and    margin 4t      The value of margin 1 is the number of Lines to skip at the  top of each page before the header Lines plus one   Thuss  marain 1 includes the header tine and all the blank Lines  preceding it from the top of the paper  Sy defaults its  value is three     argin 2 is the number of blank Lines that  are to appear between the header Line and the first text on    the pages Normallys it nas a value of two  The two  together form a standard top margin of five Lines  with the  header Line riant in the middle  It is easy enough to    change these defaults if they prove unsatisfactory  just use  the  margin 1  and   mara  in  2  commands    omli     ema t    to set either or both sub margins to  N     The bottom margin is completely analogous to the top margins  with margin 35 being the number of blank Lines between the  Last text on a page and the footer Lines and margin 4  being  the number of Lines from the footer to the bottom of the  paper tineluding the footer   They may be set usin 3 the    margin 3  and  margin 4  commands    ems  i  ema  N    which work just Like their counterparts in the top margins   none cause a breake    6 4 5 Left and Right Margins    The Left and right margins define the first and Last columns  into which text may be printed  They affect such things  as  adjustment and centering  The left margin ts normally set  at column ones 
282. to the cuffere To try out  enter   you must first get  back into the editor       ed    Georgia Institute of Technology COBOL Workbench    Appendix 5 EDITOR Page 194     Enter  3s used Like this   e file   FiLe  is the name of a file to be read into the buffer     Note that you are not restricted to editing files in the  current directory  you may also edit files belonging to  other users  provided they have gqiven you permission    Files belongina to other users must be identified by their   full pathname   discussed fully in The Primos File System     An Overview   For examples to edit a file named   document  belonging to user  tome  you would enter the fol   Lowina command     e  tom document    After the file   s contents are copied into the buffers ted   prints the number of Lines it read  In our examples the  huffer would now contains     The quick brown fox  jumps over  the Lazy doge    If anything at all is present in the buffers the  e  command  destroys it before reading in the named file     As a matter of conveniences  ed  remembers the file name  specified on the Last  e  commands so you do not have to  specify a file name on the  w  commance With these  orovisionss a common editina session Looks Like      ed   e file  teditinai  W   q    The  file  command   f   is available for finding out the  remembered file name  To print out the names just type     f    You might also want to check that  J ed file  is exactly the same as      ed  e file    That is     fed 
283. totally supported by the    capabilities of the documentation subsystemse    The documentation subsystem is designed to handle both  program text and supporting documentation  fhe preparation  of programs is supported by the programming subsystem while  the preparation of supporting documentation is supported by  the documentation subsystem  Howevere both of these types  of documents fall under a common document control procedure   In a situation where programs are under continual  maintenance and modifications several versions of both the  code as well as the support documentation must he  maintainede It s the function of document control to  provide programmers and systems analysts with the ability to  recall any specific versions of a program or its supporting    documentation that they wish to utilizee The documentation    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 13    subsystem also provides the capabilities needed for produc   ing final documentation in a format suitable for publication    ana distributione    Another important capability of the Workbench is the ability  to produce and utilize reusable COBOL modules  There are a  number of COBOL programming support systems in existence  that facilitate and support the preperation of COBOL  programs in modular form so that a program may be divided  among a team of proarammers  However  those systems support  the preparation of modules for utilization in a single      onpiler and appi
284. ts may also ex   hibit Large variations in the operational Load placed on the  execution system since the total processing Loads may be    quite different     Georgia Institute of Technology COBOL Workbench    Section 1 INTRODUCTION Page S    knowledges informations and understandina required to  transport a program exceeds even that required to maintain  the programe  We at Georgia Tech did not consider our  transporting activity to be totally successful  howevers the  knowlecge that we gained about the problems of transporting    programs was extremely valuable      There is no avoiding the fact that transporting large COBOL  programs from one operating environment to another is an ex   tremely costly and time consuming activity  There are two  approaches to this problem and both have applicability to    specific instances     The first approach might be characterized as a Linear tech   niques The program is oriainally written on machine A to  run only on that system  Thens as the need arises  the  program is transported from machine A to machine B3   andes  then  Later from machine B to machine C and so one If there  is only a single operating environment required at any one  time and if the machine conversions do not occur too  frequently  then the Linear approach to transporting the  programs is probably the best and cheapest since the only  problems that must be addressed are those arising directly    from the incompatability of the two machines involvede  The other app
285. tute of Technology COBOL Workbench    e e   a m o oe e a    Section 3 FUNCTIONAL COMPONENTS Page B4    tions for data preparation and entrye reference material to    support feedback from users    etc     35e5eSel1 Original Document    An original document is identified as version one of release  one of the document  Since it is the first revision of the  documents the List of changes correspondina to it will  consist only of insertionse Treating the original document  in this manner will make it consistent with the other    revisions     Z 5   5   2 Released Modifications    Modifications to a document are obtained by creating new  VERSIONS for a particular release or creating a new RELEASE   see Figure 1 5 1 0  Changes to the baseline program result  in the creation of a new RELEASE while changes to the  compiler unique VERSIONS of the baseline program result in  new VERSIONS  The Document Control System provides the  ability to mark revisions as to whether or not they are  available for release  In additions the user can upon  request obtain a List of those revisions approved for    release     Georgia Institute of Technology COBOL Workbench                  M                  Sar seed T Re    Section 3 FUNCTIONAL COMPONENTS Page 85  3533 Latest Version of a Release    The Document Control System allows one to obtain any VERSION  Of any RELEASE by simply specifying the specific version  number and release number  Users can also obtain the Latest  VERSION of a RELEASE by si
286. tware Developments    Communications of the Act 29   October  19772   746 7536    Georgia Institute of Technology COROL Workbench    REFERENCES Page 155    Kernighans Brian Wes and Plaugers Pe Jes Software logiss    Readings Massachusetts  Addison besleys 1976     PRIME Computers Inc   PRIME COBOL Programmer s Guides Pube    Noe PIR3Z0569 Framinahame Massachusetts  Prime Computers  Incey Senotembers 15786    Redwines Samuel Tee Jres  Using COBOL Macroprocessing for  Reliable Parameter Passings    ACM SIGPLAN NOTICESs 14275  Sept  1979   pp 59 650     Rochkinde Marc Jee  The Source Code Control Systems  IEEE  Transactions on software Engineering St 1  Decembers    19753   3645 569     Sordilloe Donald Aes The Programmer s ANSI COBOL Reference    Manuale Englewood Cliffs  New Jersey  Frentice Halls  Inces 1978     Turnere Dennis Jes  An Integrated System of Tools to Surport  the DOO Common Languages  Second Ue Se Army software    Symposiums 25 27 Octobere 19784 Ue Se Army Computer  Systems Commande    University of Florida and University of South Florid  s  Optimal COBOL Subset for Software Portinility  Portable  Standard COBOL  PSC  Specificationss U S  Army Computer  Systems Command Interim Technical Working Reporte  Februarys 1978     Waites We Mes  Hints on Distributing Portable Softwarea     Software   Practice and Experience 5  1975   295 308     Georgia Institute of Technology COSOL Workbench          e  ne  v    Appendix 1 GLOSSARY Page 136    APPENDIX 1    GLOSSARY    
287. ubsystem prior to the  inclusion of these modules in COBOL wbc programs  The fol   Lowing goals must be met    1  Provide a   test environment covering both  Language tests as well as I 0 and data tests  to easily check out the modules as they are  produced by the above process    2  Permit the collection of data about mocule  performance before the inclusion of the  module in a finished programe   3  Test module behavior as it will perform on  each target machine  This will involve con   vertina the original COBOLewbc module into  each member of the related family of COBOL i  modules  providing COBOLei driverse and  executing each of the resultant programs on    the appropriate machine     Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 40    4  Provide utility routines to aid the program   mer in the generation of test data meeting  particular program requirements as specified  by the appropriate data declaration divisione   5   Optional  Provide utility routines to enable  ihe programmer to determine if the set of  test cases   s adequate to property test the    modular Logic     2  3 2 Jest Harness    One of the major tools to be used in program  or module   testing is the test harness   This main or driver program  serves as a framework which supplies appropriate inputs to a  module  It also records the outputs produced by the modute   along with the associated inputs  in such a manner that the  programmer can determine whether the output p
288. uld not be of much use if this was all  it could doe Fortunately  the command interpreter can  change the sources and destinations of data    thus makino  tcopyt less trivial     Standard ports may be altered so as to refer to disk files  by use of a funnele The greater than sign   gt   is used to  represent a funnel  Conventionallys the   gt   points in the  direction of data flow  For examples if you wished to copy    the contents of file  ee  to file  old ee 4  you could type    Georgia Institute of Technology COBOL Workbench     Appendix 4 COMMAND INTERPRETER Page 167    J ee   copy old ee    Ihe greater th  associated fi  n    gn must always be immediately next to i  ei      ad CASE a CEA ee eee ee ONE GERED MEHEG  Cum Gu es SS uS uev ACID Ce Mm  ne ela  XO ee SS ee GERI        O  be  3  ct   D   3  c   o  3  aie  3  lo  Cr   ot   53  A  A  tu  73  e   0w  I i  m  Q     fa   ti      io   3 l gt   e     let Id der do    i  m  st separate the  5    from any command  1    y   3  Oo  ui  rt  7  andy  o  rr  ae  o  3        Uu  3  e    o  o  v  o  w     x  oa  lo        I2  Io  ic  5  io  I  12  I    tv    or arguments     the command Language can be interpreted unambiguously      The construct  ee    is read  from ee      old ee  is read   toward old ee   Thus   the command above can be read  from  ee copy toward old ees   ors  copy from ee toward old  ee    The process of changing the file assianment of a standard  port by use of a funnel is called  I O redirections  or sim
289. ute of Technology COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 59    3 2 PROGRAMMING SUBSYSTEM    3 2 1 Program Preparation    Se2elel Workbench COBOL     COBOLewbe    Workbench COBOL   COBOL wbc  is the portable version of  COBOL  It has been designed to provide the user with as  many of the capabilities of full COBOL as may be supported  ina  portable  programming environment  COBOLewbc was  developed from standard COBOL with the explicit goal of  producing a COBOL dialect which would permit a COBOL program  developed on one machine to be executed on another without  tedious and error producing hand modificatione However     COBOLewbe is not the smallest common subset of COBOL ap   plicable to all of the target computers selected  insteade  it consists of the common subset of COBOL applicable to all  of the selected target computers  COBOLeccs  plus those  those features heavily used by COBOL programmers even if  these features are not directly portable  The translation  of this tatter group of features into compiler unique code    is a function of the Program Processore    Georgia Institute of Technology COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 60     e2   1  2 COBOLedemo    COBOL edemo is this project s first approximation to  COS0L wbc  COBOLewbc consists of those elements of COBOL  which are common to all COBOL compilers plus a number of  other capabilities which cannot be directly implemented in  the same format by all compilerse The nature an
290. verything else should be taken Literallye    Georaia Institute of Technology COBOL Workbench    Appendix 6 FORMATTER Page 224    And now for an explanation of what these parameters mean      5 If this option is selected   fmt  will pause at  the top of each pages ring the bell or buzzer on  your terminal  and wait for a response  This    feature is for the benefit of people using hard   copy terminals with paper not having pin feed mar   4 nse The correct responses to be entered after  the paper is mounted  is a control c Chole the   control  key down and tyne   c        D ees This option allows selection of which pages of the  formatted document wilk actually be printed  Im   mediately following the   p 4  without any inter   venina spacess should be a number indicating the  first page to be printed  Followina thiss a  second number may be specifieds separated from the  first by a single dash  which indicates the Last  page to be printed  If this second number is  omitteds all remaining pages will be producede      file   Any number of file names may be specified on the  command Line      Fmt  will open the files in turns  formatting the contents of each one as df they  constituted one big filee When the Last named  file is processed   fmt  terminates  If no file  names are specified  standard input number one is  usede In additions standard input may be  specified explicitly on the command Line by using  a dash as a file name     69 1 5 Commands and Text    tFmt  Like almos
291. viously the one  for COBOLewbce This would function in a manner very similar  to presently existing standards enforcerse It would operate  as apreprocessor on the source code ensuring that proarams  contained only statements taken from COBOLewbe or property    formatted references to reusable modulese    If it is desired that the Workbench support COBOL program   ming in a specific dialect  COBOLek s then a different stan   dards enforcer would have to be provided for that diatect of    COBOL       Se2eo2 Program Processing    Sececel Library Support    A number of support libraries must be made ava  labte to the  program designere The Workbench provides the capability for  each installation to develop and maintain a useful and    meaningful collection of macro and module Libreries tailored    Georgia Institute of Technology COBOL Workbench    Section 3 FUNCTIONAL COMPONENTS Page 62    to the needs of the individual installation  These    Libraries are described in detail in Section 3 5 1     A COBOLewbc program containing references to reusable  modules may be expanded into an equivalent COBOL  wbc program  relative to any one or more of the module Libraries  For  examples the reusable module references used by an tn   dividual proarammer as abbreviations may be removed white  leaving module calls from the Projects Applications and  General Libraries  Translation of a COBOL ewhe program into  the equivatent COBOL program for a particular target machine  CCOBOLek  should occu
292. ware tools designed to substantially aid in the design  implementation   test  and maintenance of COBOL data processing systems  especially those that  must run on a variety of target host operating environments  The Workbench  also assists in the preparation and maintenance of all supporting documentation   One of the most important capabilities of the Workbench is the automatic  preparation of a set of equivalent but compiler unique versions of a baseline   program that has been written in Workbench COBOL  COBOL wbc                       DD 5244  M73 EDITION oF 1 Nov 65 1S OBSOLETE   EE  unclassified  CE Ici Bi Tv TI ASSIFIT ATIAN AF THIS PAGE     Whan Nata Enfarsti    20  Abstract cont     The research effort reported on here   ncluded an investigation of the  problems of converting a baseline program into compiler unique versions   an initial study of the use of reuseable modules in line COBOL code    a limited feasibility demonstration of these capabilities  and a pre   liminary study for the design of COBOL wbc     Page iii    ABSTRACI    The COBOL Proarammer s Workbench ts a fully integrated col   Lection of automated software tools designed to substantial   Ly aid in the designs  implementations tests and maintenance  of COBOL data processina systems  especially those that must  RR on a variety of target host operating environments  The  Workbench also assists in the preparation and maintenance of  all supporting documentation  One of the most important  capabilities 
293. while  eul M    uncerlines the next N Lines of input texte In both casess  if N is omitted  a value of one is assumed    Neither cormann  causes a break  allowina single words or phrases to be bold   faced or underlined without affecting the rest of the output  Line     It is also possible to use the two in comoination  For  instances the section heading at the beginning of this sec   tion was produced by a sequence of commands anc text similar  to the followtna     eCe  e bf  eul  Miscellaneous Commands    As with the  center  commands those two commands are often  conveniently used to bracket the Lines to se affected   joe  specifying a huge parareter value with the first occurrence  of the command and a value of zero with the second     ebf 1006   eul 1000   Lots of Lines  to be  boldfaced   and  underlined  ebf 9   eul 0    Georgia Institute of Technology COBOL Workbench    Appendix 65 FORMATTER Page 238    6 7 5 Control Characters    As mentioned in the first sections command tines are  distinguished from text by the presence of a   ccrntrol  character  in column one  In all the examples cited thus  far  a period has been used to represent the control charac   tere It is possible to select any character for this  purpose  In facts several occasions arose in the writino of  this appendix which called for use of an alternate control  characters particularly in the construction of the commanwa  summaries at the end of each section  The   control   cha  racter  commana may b
294. y COBOL Workbench    Appendix 4 COMMAND INTERPRETER Page 174    Clearly   in order to specify any possible input output con   nection between any two  lt    node gt se tt is sufficient to  specify     le The number of the  source     node     c The number of the  destination     node     35  The port number of the standard output port    on the source  lt node gt d that is to be the source  of the data     a The port number of the standard input port on  the destination  lt node gt  that is to receive the  datas    The syntax for  lt node separator   includes the specifications  for the Last three of these items  The source   node    is un   derstood to be the node that immediately preceeds the  lt node  separator    under consideration  The special  lt node  separator    4s  is used to separate  lt node gt s that do not  participate in data sharings it specifies a null connection   Thuss the  lt node separator gt  provides a means of establishing  any possible connection between two  lt nede gt s of a given    net           The futt flexibility of the  lt node separator gt  is rarely  needed or desirable  In order to make effective use of the  capabilities provideds suitable defaults have been designed  into the syntaxe The semantics associated with the defaults  are as follows     le If the output port number  the one to the  Left of the vertical bar  is omitted  the  next unassigned output port  in increasing  numerical order  is implied  This default  action takes place o
295. y on  specific hardware or operating system capabilities cannot be  implemented on all target machines and thus will not be  available in COBOLewbCce COBOLewbc can be translated into  any of a number of target dialects  COBOLek       uch of the  translation process will be automated  howevers because cf  variations in computer architectures and orqanizationss some  human intervention wilt still be required to translate a    program from Workbench COBOL into the COBOL dialect that    Georgia Institute of Technology COBOL Workbench    Section 2 CAPABILITIES Page 30    wiLl execute on a specific machine     2e2e5 Program Processing    There are two primary products from the Program Processing  Subsystem of the Workbench  The first of these are   compiler independent  versions of the program or module  that are written in COBOLewbce The second type or group of  products are the  compiler unique  versions of the program  written in a specific dialect of COBOL  COBOL k  and ready  for furthering processing  translation  and execution by a  target operating environmente The first class of products  are the result of expansion of the code entered by the  programmer while the second group results from translation    of CORQLewbe into a target COBOL dialecte    CeoceDdel Expanston    The purpose of orogram expansion is to produce compiler   independent proarem modules meeting the standards of  COBOLewbc and capable of being collected together with other    mocules to produce completes 
296. ze is 1024 bytess the segment size is    128K bytes   and the maximum number of segments is 4096     Delelele2 Registers   The Prime 400 has 128 program addressable 32 bit registers   Of theses    are used as base registers  2 are used as float   in  point accumulatorss and 2 are used as field address and  Length registers  The remainina rea  isters are used te    control DA channels and hold the machine states of active    processeSe    Helelel eS Instruction    Jor  ko    ef  ardware Suoport   The Prime 400 hardware provides a 32 bit arithmetic Logic  unit and 32 bit and 64 bit integer arithmetic  4 floatinn  point unit is oroviaed by means of microcodee The followin   is a List of some of the instruction groups anc how they are    implemented     decimal arithmetic emulation  integer arithmetic hardware  floatina point microcode  character strina emulation  conditional branches hardware  Logical operations hardware  Logical test and set   hardware  program control and jump hardware    Georgia Institute of Technology COBOL Workbench    SotctToHn  A IMPLEMENTATION Page 118    queue management   microcode  shifts and skins hardware  data move hardware    att  aue hee RA  IUS pnm  CO gum auium ee camur ee R    The Prime 460 process exchange facility is provided through  firmware that automatically dispatches tasks for execution  and reorders those which remaine This is accomplished with  no software intervention  The process exchange facitity  also automatically handles the re
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
  EPOCA 25-29 NB - Termoricambi JET  Harman Kardon AVR 225 User's Manual  American Standard Culinaire 4137.100 User's Manual  User Manual  取扱説明書/1.1MB  KRF-X9080D  Fans AC ACP EV RC RP VA Eng - Nordic  Justificativa de não realização    Copyright © All rights reserved. 
   Failed to retrieve file