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