+ All Categories
Home > Documents > A FORTRAN Extension to Facilitate Proposal Preparation

A FORTRAN Extension to Facilitate Proposal Preparation

Date post: 23-Sep-2016
Category:
Upload: r-m
View: 221 times
Download: 0 times
Share this document with a friend
7
A FORTRAN Extension to Facilitate Proposal Preparation J. T. CARLETON, P. E. LEGO, MEMBER, IEEE, AND R. M. SUAREZ, MEMBER, IEEE Summary-As an experiment in problem-oriented computer roads might be made by attacking the clerical task of languages a system was developed to aid applications engineers in composing the proposal, the authors commenced an in- composing text for equipment proposals to customers. Building the . . . ' . . proposal writer system around FORTRAN II enabled the system quiry into the details of proposal writing. to be completed quickly and with modest effort. The use of the They found that for a large class of proposals an system is still considered experimental; however, the language is application engineer would turn to a previous similar presented in the belief that it qualifies as a language topic with an proposal as a guide in phrasing and organization. Many engineering flavor. differences, of course, may exist in the requirements BACKGROUND necessary for two applications even though they are very similar. However, more notable is the vast number ACi DAY in the course of business numerous of similarities which are present. The proposal writer Westinghouse application engineers arescalle o can save much clerical composition time by following to prepare equipment proposals in response to the old proposal, adding, deleting, inserting, and other- customer requests. Commonly, such proposals consist wis alern iti uhamne hti a eue of a detailed description of the characteristics of each as alsorce d n f wch a it may pepare item of equipment proposed, as well as commentary de- reprouce masters for a n p posal. S ~~~~~~reproducible masters for a new proposal. scribing how the various items interact and perform In many instances application engineers discovered as a system. Proposals may be quite short and simple to that certain common descriptive phrases were encoun- prepare when only a few standard items are involved. tered so frequently in connection with items such as At the other extreme they may detail complete indus- motors, brakes, standard control, etc., that they could trial plants, involve other suppliers, and summarize the save a considerable amount of time by making up stand- results of man-years of engineering study. Regardless of ard sheets for certain item descriptions. The descrip- their nature they are handled by application engineers tions consisted of sample sheets containing all of the who keep two goals constantly in mind. First, the sys- alternate phrasings, provisions for filling in blanks, and tem of equipment must be reliably engineered to meet provisions for deleting inapplicable phrases or words. the customer's specifications at minimal cost to him. The insertions required for filling in blanks often re- Second, the proposal must be prepared and submitted quired that calculations be made, some of them of an to the customer as promptly as possible consistent with extensive nature. In a few instances, an ultimate had meeting the first goal. been achieved by which complete sample proposals With the advent of the card-programmed digital com- were prepared in the manner of the sample sheets. The puters in the early 1950's, many of the laborious ap- industry specialists could follow such a sample com- plication engineering calculations required in response pletely in preparing a proposal for a new negotiation. to customer requests were programmed and computer After observing the proposal writing techniques em- processed on a production basis. When the card-pro- ployed, the authors realized that the engineering know- grammed calculators were replaced by the faster and how and flexibility of applications engineers could never more powerful stored-program computers, it was only be supplanted by a computer, which is unable to adapt natural that the application programs were enlarged to to new and unforseen situations. Thev realized that for include much of the logical decision making inherent in the majority of proposal writing tasks the computer selecting the right equipment for the customer's job. By would continue to be used as a valuable adjunct in per- early 1959 the authors had noted many instances in formn cintific and eg ei calculatin as which the period of time between receipt of the cus- needed byethaicans engineerithnolrealihope needed by the applications engineer, with no real hope tomer's request and the time the application engineers o m i i t begartnwriting N the % proposalI7 wa significantly-reduced because the proposed equipment simply consisted of too through the application of computer techniques. At the muc orgnlegneig*owvr h uhr b sam tie te acurcy n eletin th opima itmsserved that for some of the more standard proposals of equipment was improved. Reasoning that further in- th coptrmgtb sdpoial ntecmoi Manuscrpt recived Jauary 7 1964.tion of the proposal wording if a language were avail- J. T. Carlton and P. E. Lego are with the XVestinghouse Electric able which could allow the easy programming of logic Corp., Churchill Boro, Pittsburgh, Pa. n nomto scnandadipido h p R. M. Suarez is with the Westinghouse Electric Corp., East piation engineer'sn as namplesees Onc ml nte a ppora -a Pittsburgh Pa.plctosegne'sapeset.Ocaprrmhd 456
Transcript
Page 1: A FORTRAN Extension to Facilitate Proposal Preparation

A FORTRAN Extension to FacilitateProposal Preparation

J. T. CARLETON, P. E. LEGO, MEMBER, IEEE, AND R. M. SUAREZ, MEMBER, IEEE

Summary-As an experiment in problem-oriented computer roads might be made by attacking the clerical task oflanguages a system was developed to aid applications engineers in composing the proposal, the authors commenced an in-composing text for equipment proposals to customers. Building the . . . ' . .proposal writer system around FORTRAN II enabled the system quiryinto the details of proposal writing.to be completed quickly and with modest effort. The use of the They found that for a large class of proposals ansystem is still considered experimental; however, the language is application engineer would turn to a previous similarpresented in the belief that it qualifies as a language topic with an proposal as a guide in phrasing and organization. Manyengineering flavor. differences, of course, may exist in the requirements

BACKGROUND necessary for two applications even though they arevery similar. However, more notable is the vast number

ACi DAY in the course of business numerous of similarities which are present. The proposal writerWestinghouse application engineers arescalle o can save much clerical composition time by followingto prepare equipment proposals in response to the old proposal, adding, deleting, inserting, and other-

customer requests. Commonly, such proposals consist wis alern iti uhamne hti a eueof a detailed description of the characteristics of each as alsorce d n f wcha it may pepareitem of equipment proposed, as well as commentary de- reprouce masters for an p posal.S ~~~~~~reproducible masters for a new proposal.scribing how the various items interact and perform In many instances application engineers discoveredas a system. Proposals may be quite short and simple to that certain common descriptive phrases were encoun-prepare when only a few standard items are involved. tered so frequently in connection with items such asAt the other extreme they may detail complete indus- motors, brakes, standard control, etc., that they couldtrial plants, involve other suppliers, and summarize the save a considerable amount of time by making up stand-results of man-years of engineering study. Regardless of ard sheets for certain item descriptions. The descrip-their nature they are handled by application engineers tions consisted of sample sheets containing all of thewho keep two goals constantly in mind. First, the sys- alternate phrasings, provisions for filling in blanks, andtem of equipment must be reliably engineered to meet provisions for deleting inapplicable phrases or words.the customer's specifications at minimal cost to him. The insertions required for filling in blanks often re-Second, the proposal must be prepared and submitted quired that calculations be made, some of them of anto the customer as promptly as possible consistent with extensive nature. In a few instances, an ultimate hadmeeting the first goal. been achieved by which complete sample proposalsWith the advent of the card-programmed digital com- were prepared in the manner of the sample sheets. The

puters in the early 1950's, many of the laborious ap- industry specialists could follow such a sample com-plication engineering calculations required in response pletely in preparing a proposal for a new negotiation.to customer requests were programmed and computer After observing the proposal writing techniques em-processed on a production basis. When the card-pro- ployed, the authors realized that the engineering know-grammed calculators were replaced by the faster and how and flexibility of applications engineers could nevermore powerful stored-program computers, it was only be supplanted by a computer, which is unable to adaptnatural that the application programs were enlarged to to new and unforseen situations. Thev realized that forinclude much of the logical decision making inherent in the majority of proposal writing tasks the computerselecting the right equipment for the customer's job. By would continue to be used as a valuable adjunct in per-early 1959 the authors had noted many instances in formn cintific and eg ei calculatin aswhich the period of time between receipt of the cus- needed byethaicansengineerithnolrealihopeneeded by the applications engineer, with no real hopetomer's request and the time the application engineers o m i i tbegartnwriting Nthe %proposalI7wa significantly-reduced because the proposed equipment simply consisted of too

through the application of computer techniques. At the muc orgnlegneig*owvr h uhr bsam tie teacurcy n eletin th opima itmsserved that for some of the more standard proposals

of equipment was improved. Reasoning that further in- th coptrmgtb sdpoial ntecmoi

ManuscrptrecivedJauary 7 1964.tion of the proposal wording if a language were avail-J. T. Carlton and P. E. Lego are with the XVestinghouse Electric able which could allow the easy programming of logic

Corp., Churchill Boro, Pittsburgh, Pa. n nomto scnandadipido h pR. M. Suarez is with the Westinghouse Electric Corp., East piationengineer'snas namplesees Oncml nteappora-aPittsburgh Pa.plctosegne'sapeset.Ocaprrmhd

456

Page 2: A FORTRAN Extension to Facilitate Proposal Preparation

Carleton, Lego, and Suarez: FORTRAN and Proposal Preparation 457

been prepared for a particular standard type of equip- Statement:ment it would be possible to provide the computer with ALPHABETIC INPUT "list of alphabetic variablevariable features of a new negotiation and almost im- names"mediately receive from it on reproducible masters thefinished text of a proposal. The gains to be achieved Example:would be some reduction in the clerical time spent incomposition by the applications engineer and a reduc- ALPHABETIC INPUT DESCPT, INPUT3,tion in elapsed time because of bypassing the inherentdelays of manual typing.There was doubt as to whether the risks associated Action:

with developing and using a proposal writing language In the original FORTRAN II language integer andwere commensurate with the gains which might be floating-point variables were defined by assigning sym-achieved in admittedly a minor number of customer bolic names, with an integer variable distinguished fromnegotiations. However, it was decided that the develop- a floating-point variable by the fact that the initialment of the proposal writing system would be attempted letter of its symbolic name was an I, J, K, L, M, or N.on an experimental basis not only to try for the direct The proposal writing language defines an additionalgains but also to see whether problem-oriented lan- type of variable called an alphabetic variable. It is aguages successfully could be synthesized quickly and variable length string of Hollerith characters (excludingat modest cost. The proposal writer system which the the left and right parentheses) and is identified by aauthors developed consists of the FORTRAN II lan- symbolic name. No restrictions are imposed on the ini-guage supplemented by extensions to provide facility tial character of the symbolic name since usage ratherin composing words and numbers and allow certain se- than name determines that a variable is of the alpha-quencing control. For purposes of discussion the system betic type.can be broken into four parts, each of which will be dis- The ALPHABETIC INPUT statement causes thecussed separately. computer to read cards (either directly or via magnetic

Before proceeding with the proposal writing system, tape) searching for as many alphabetic variables as arehowever, a few definitions are in order. "Proposal writ- named in the list. Each alphabetic variable is identifieding system" refers to that assemblage of concepts and on the input card or cards as the characters enclosed incontrol which allows a user to write a program for the a set of parentheses. Since alphabetic variables can con-generation of a proposal. When it is used, it denotes tain variable numbers of characters, it is possible forthe framework provided by the authors. "Proposal pro- them to span more than one input card. The ALPHA-gram" refers to a computer program written in the BETIC INPUT statement reads as many cards as nec-language of the proposal writer system and yielding as essary to encounter one parenthesized character stringan end product a finished customer equipment proposal. for each alphabetic variable name appearing in the list."Proposal main program" refers to the principal part The character strings are stored in main memory or inof a proposal program, that part which generally guides drum memory depending on the particular version ofthe logic and order of preparing a proposal. "Paragraph the proposal writer system which is in use.subprogram" denotes a lesser supporting part of a pro- The cards prepared to contain the input informationposal program, a part which commonly describes the read into alphabetic variables DESCPT, INPUT3 andpreparation of procedures in a proposal program which BETA by the example statement above might have beenare used more than once or which are defined more punched as follows. (The Greek letter A will be used tonaturally separate from the proposal main program. indicate a blank character on the card.)The relationship of a paragraph subprogram to a pro-posal main program in the proposal writer system is Card 1:analogous, for example, to the relationship between a AAA(NEGOTIATIONANO.AA-A123-456-789A)AAAAAASINE subroutine and a main program in general scien- AAAA(ALLAMARKLNGSAWILLACONFORMATOAtific FORTRAN usage. ASSOC

PART I: THE PROPOSAL WRITING LANGUAGE Card 2:

The proposal writing language adds 13 statements to IATIONASTANDARDANO.A9876)AAAA(UNLESSAthe FORTRAN II language as it existed for the IBM OTHERWISEA\STATEDAALLAMTORAIL704 Computer in 1959. It utilizes all of the FORTRAN BEARATEDA\FILI statements except the STOP statement, which isaltered somewhat to control the termination of the pro- Card 3:posal writing process. The tabulation below defines the ORACONTINUOUSASERVIICE.)AAz\AAAl\l/\/AttAA.extensions of the language, describes the actions ac- hAA AAA AA//4AAAA!,''\A\AAcomplished and gives examples of usage. AAAAAA^Z

Page 3: A FORTRAN Extension to Facilitate Proposal Preparation

458 IEEE TRANSACTIONS ON ELECTRONIC COMPUTERS AugustStatement: Action:

RIGHT MARGIN a"in Vertical spacing of the proposal is set to single spacecausing each succeeding line of the proposal to be

Example: printed one line farther down the page. Printing is con-

RIGHT MARGIN 72 tinued from the bottom of a page to the top of the nextpage under the regulation of the printer overflow con-

Action: trol device. All printing is single spaced until it isThe right-hand margin of the proposal is set to the changed by a DOUBLE SPACE statement.

indicated column and is maintained at this column un- Statement:til such time as it may be reset by encountering anotherRIGHT MARGIN "m" statement. Information com- DOUBLE SPACEprising a proposal is continued from line to line as neces- Action:sary with editing automatically performed such that noline encroaches on the right margin and lines always end Vertical spacing of the proposal is set to double spaceon the space between numbers or words. causing each succeeding line of the proposal to be"m" may be either a FORTRAN integer constant or printed two lines farther down the page. Printing is

integer variable. continued from the bottom of a page to the top of thenext page under the regulation of the printer overflow

Statement: control device. All printing is double spaced until it isLEFT MARGIN "in" changed by a SINGLE SPACE statement.

Statement:Example: RESTORE PAPER

LEFT MARGIN 15Action:

Action: The printer is immediately advanced to the top of theThe left-hand margin of the proposal is set to the next sheet of paper. Subsequent information of the

indicated column and is maintained there until changed proposal is commenced at the left hand margin on theby a succeeding LEFT AIARGIN "m" statement. In- new sheet. RESTORE PAPER does not affect subse-formation comprising a proposal is continued from line quent vertical spacing which still remains under con-to line with the left margin automatically maintained. trol of the last SINGLE SPACE or DOUBLE SPACE

"im" may be either a FORTRAN integer constant or statement.integer variable.

Statement:Statement: m(" characters of Hollerith information")

TABULATE "m"Example:

ExAmpLe; E 40(230 VOLT, D-C, SERIES WOUND)TABULATE 40'Action:

Action:The characters within the set of parentheses are in-Enough blank characters are inserted into the pro- corporated into the proposal immediately following the

posal to fill the current line to column "m-l", so that text previously prepared for printing. If incorporationsucceeding information is printed starting in column of all the parenthesized characters will fill the currentimn." If the current line of the proposal has already line past the right margin position currently in effect,

been filled to or past column "m," the tabulation is to some of the characters will be used to fill the currentcolumn "m" of the next line (consistent with type of line, and the remainder will be continued to the nextvertical spacing in effect). line. Whenever characters must be so separated because

If TABULATE 0 is given, the current line is termi- of line length, the separation will always be performednated with blank characters, and the proposal is con- between words or numbers so as not to impair the read-tinued at the left margin of the succeeding line, ability of the proposal. NTo attempt is made to hyphen-

"in" may be either a FORTRAN integer constant or ate at the end of lines. Continuations from line to lineinteger variable. are under control of the vertical spacing statement last

encountered. Line margins remain under control of theStatement: last RIGHT MARGIN "in" and LEFT MARGIN a"in

SINTGLE SPACE statements executed.

Page 4: A FORTRAN Extension to Facilitate Proposal Preparation

1964 Carleton, Lego, and Suarez: FORTRAN and Proposal Preparation 459

Statement: be retained when printing. Omitting the "n" FIGURES

ALPHABETIC INSERT "alphabetic variable" phrase causes the proposal writer system to assume "n"to be 8.

Example: If it is necessary to align the decimal point with a

ALPHABETIC INSERT DESCPT particular column of the line, it may be accomplishedby adding the optimal modifying phrase, COLUMN

Action: m," where "m" is the column in which the decimalpoint is to appear.

The characters comprising the alphabetic variable It should benoted thatthe FORTRAN variable, con-mentioned in the ALPHABETIC INSERT "alpha- stant, or expression which is mentioned in the NU-betic variable" statement are incorporated into the MERIC INSERT statement may be either aproposal body in the same manner as they would had FORTRAN integer or a FORTRAN floating-pointthey been shown in the ("m" characters of Hollerith in- FORtRAN Teg erortariloassumesitformation) statement. The differentiation in use be- quantity. The proposal writer arbitrarily assumes thattweetin)the statementIINSThe"ltalphabeticuserbe- any number whose value occupies only the decrementtween the ALPHABETIC INSERT "alphabetic van- field of a memory cell is an INTEGER number andable" statement and the ("i" characters of Hollerith that all others are floating-point numbers. This criterioninformation) statement is analogous to the differen- effectively distinguishes the two types of numbers; how-

FORTRAN variables. The characters contained within ever, it does allow the possibility (although extremelyFORTRANpar

riab.ofThe"m" charactersfcHontanedithin- improbable) that a floating-point number of magnitudethe parentheses of the ("n"characters of Hollerith in- less than approximately 0.6X10-i9 can be mistaken forformation) statement are essentially program constants an integer variable. To absolutely preclude any mis-and cannotberchanged withoutarewritingttheprogram interpretation the NUMERIC INSERT statementOn the other hand, the characters introduced by the should not be used to convert any floating-point numberALPHABETIC INSERT "alphabetic variable" state- less than 0.6 X 10-19 in magnitude. When such situationsment are variable at program execution time and can be might be encountered, the units of the floating-pointchanged without affecting the program at all by simply number should be changed to scale the magnitude to aaltering their composition on input data cards. range above 0.6 X 10-1 in magnitude.

Statement:Statement:

NUMERIC INSERT "FORTRAN variable, con- PARAGRAPH "n," "list of variables"stant or expression," "Conversion type," "n PiFIGURES, COLUMN"Example:

Example: PARAGRAPH 7, ID, COMNT, XC, HPNUMERIC INSERT HP, DECIMAL, 2 FIG-URES, COLUMN 14 Action:

This statement is one of several statements which rec-Action: ognize that in preparing programs to write proposals,The value of the FORTRAN variable, constant, or just as in preparing programs to do scientific or business

expression is inserted into the current line of the pro- calculations, the need exists to be able to write only onceposal. Three types of conversion may be specified. If procedures which are common to several programs orINTEGER is written, the value is truncated to an which are used repetitively in a single program. Ininteger and printed without a decimal point. A conver- FORTRAN the programs for such procedures are calledsion type called DECIMAL directs that the value be subprograms and have provision for being called when-printed as an ordinary decimal fraction rounded to the ever needed. In the extended FORTRAN language ofnumber of decimal places specified in a modifying phrase the proposal writing system procedures to describe com-"n" FIGURES. The final conversion type is called monly used items in a proposal are called PARA-FLOATING DECIMAL and directs that the value GRAPH subprograms because they frequently producebe printed in the FORTRAN E type format as a decimal a single paragraph of text describing individual itemsfraction and a power of 10. If no conversion type is such as motors, motor generator sets, etc.written, INTEGER conversion is assumed. PARAGRAPH "n," "list of variables" must be the

"n" FIGURES is an optional phrase which may mod- first statement of a paragraph subprogram. The numberify the DECIMAL and FLOATING DECIMSAL con- "n" is arbitrary and serves to identify one paragraphversion type specification. For DECIM1AL conversion, subprogram from another. The list contains a variable"n" specifies the number of digits to the right of the name for each of the arguments passed to the subpro-decimnal point to which the value is to be rounded before gram. Unlike a FORTRAN subprogram, informationprinting. For FLOATING DECIMAL conversion it cannot be passed back to the main program from a para-specifies the number of significant digits which are to graph subprogram.

Page 5: A FORTRAN Extension to Facilitate Proposal Preparation

460 IEEE TRANSACTIONS ON ELECTRONIC COMPUTERS August

Statement: Original StatementsEND PARAGRAPH ALPHABETIC INPUT DESCPT, INPUT3,

BETAAction: RIGHT MARGIN 72

This statement is used to signal the end of a para- LEFT MARGIN 15graph subprogram. TABULATE 40

SINGLE SPACEStatement: DOUBLE SPACE

PREPARE PARAGRAPH "n," "list of argu- RESTORE PAPERments" (DC, SERIES WOUND)

ALPHABETIC INSERT DESCPTEXamPle: NUMERIC INSERT HP, DECIMAL, 2 FIGURES,

PREPARE PARAGRAPH 7, ITEMNO+1, COLUMN 14DESCPT, X+Y, HP PARAGRAPH 7, ID, COMNT, XC

END PARAGRAPHACtiOn:The main proposal program calls on paragraph sub- PREPARE PARAGRAPH 7, ITEMNO+1,

program "n" to add its text to the body of the proposal. DESCPT, X+YThe arguments in "list of arguments" are passed to the STOPparagraph subprogram. These arguments may be Statements After Pre-Editingalphabetic variables, integer variables, constants or ex-pressions, and floating-point variables, constants, or CALL ALINSR (DESCPT, INPUT3, BETA)expressions. CALL RMARSR (72)

Unlike a FORTRAN sUbprogram the paragraph sub- CALL LMARSR (15)program called cannot pass back values of variables to CALL TABSR (40)the main program. This restriction was placed on the CALL SPCESR (1)use of paragraph subprograms to allow the use of as CALL SPCESR (2)many different paragraph subprograms as desired with- CALL SPCESR (0)out worrying about memory space limitations. Thus, an CALL HOLSR(22H000017DC, SERIES WOUND)infinitely long proposal program can effectively be writ- CALL APINSR (DESCPT)ten by breaking it into a number of parts each of which CALL NUINSR (HP, 1, 2,14)is written in the form of a paragraph subprogram. SUBROUTINE PG7R (ID, COMNT, XC)

RETURNStatement: END

STOP. CALL PREPSR (7, ITEMNO+1, DESCPT,X+Y)

Action: CALL EXECTEThe execution of the proposal program is terminated

and a completion phase of the proposal writing system PART III: EXECUTION OF THE COMPILED PROGRAMSis begun. During the design of the proposal writing system at-

tention was directed to the possibility of proposals be-ing so voluminous that computer memory capacity

The pre-editor to FORTRAN is a complete computer might limit the size of the proposal programs whichprogram in the proposal writer system which scans all could be written. To minimize memory effect as muchstatements in the proposal language, translating the 13 as possible it was decided to execute proposal programsnon-FORTRAN statements and the STOP statement in two phases in such a manner that any particular pro-into FORTRAN equivalences as shown below. All other posal main program or paragraph subprogram wouldFORTRAN statements are passed unaltered. The out- have most of the computer memory available to itputs from the pre-editor program are pure FORTRAN rather than having to share memory with other partsII language proposal main programs and paragraph of the proposal program.subprograms which, when processed by the FORTRAN In the first or main-program execution phase the mainII algebraic compiler system, ultimately result in the proposal program is executed but in arestricted manner.machine language necessary to accomplish the prepara- Instead of being printed in the body of the proposaltion of a proposal. All the FORTRAN "SUBROU- all output information from the proposal main programTINE" type subprograms referenced in the second is encoded and placed on intermediate magnetic tapetabulation below are provided automatically since they storage for later processing. Whenever the main pro-are part of the proposal writer system. gram calls a paragraph subprogram, the identification

Page 6: A FORTRAN Extension to Facilitate Proposal Preparation

1964 Carleton, Lego, and Suarez: FORTRAN and Proposal Preparation 461

number of the paragraph subprogram is also placed on The memory location associated with the FORTRANmagnetic tape storage followed by the values of all symbolic name of the aphabetic variable contains theparameters needed by the paragraph subprogram. The special octal sentinel number 377210 in the left half ofparagraph subprograms themselves are not executed at the word. This distinguishes the variable as being anthis time; thus, the earlier mentioned limitation that alphabetic variable. The tag portion contains a 0 if theparagraph subprograms cannot pass values back to the characters comprising the alphabetic variable are storedproposal main program. At the end of the execution in magnetic core storage and contains the drum numberphase the intermediate magnetic tape storage contains if the characters are stored in drum storage. The right-a time-ordered sequence of intermixed encoded proposal hand portion of the word contains the address in mem-main-program output information and information ory of the first or so-called prefix word to the group ofneeded for delayed execution of paragraph subprograms. characters.The second or delayed-execution phase is commenced Each group of characters comprising an alphabetic

when the STOP statement is encountered while execut- variable is stored in magnetic core or drum memory pre-ing the proposal main program. A part of the proposal ceded by a prefix word. This word contains the numberwriting system called the editor-monitor examines the of characters comprising the alphabetic variable, and itintermediate magnetic tape prepared during the main- also contains a cross-reference pointer in the form of tlleprogram execution phase. As encoded output informa- address of the memory location associated with thetion from the proposal main-program execution is en- name of the variable. This cross-reference pointer facili-countered, it is decoded and printed (via magnetic tape) tates the capability to later include in the proposalin the body of the proposal. When records on the inter- writer system a program to update the gaps in storagemediate magnetic tape are identified as referencing a created as data for alphabetic variables are superseded.paragraph subprogram, the applicable paragraph sub- The subroutine APINSR arising from the ALPHA-program is retrieved from a library of subprograms, a BETIC INSERT "alphabetic variable" statement re-calling sequence is manufactured to pass on the param- trieves the Hollerith characters comprising the alphabet-eter values to the paragraph subprogram, and the sub- ic variable by looking to the memory location associatedprogram is executed. During execution the paragraph with the symbolic name of the alphabetic variable. Fol-subprogram has access to all of the computer memory lowing the pointer to the prefix word, the subroutineother than a minor amount occupied by the editor- locates the group of characters comprising the variable,monitor. As output is developed by a paragraph sub- determines the number of characters, and controls theprogram, it is directly printed in the body of the pro- incorporation of the characters into the proposal.posal by the editor-monitor. Subroutine PREPSR arising from the PREPAREA paragraph subprogram is brought into memory and PARAGRAPH "n," "list of arguments" statement

executed each time it is referenced on the intermediate causes a record to be placed on the intermediate mag-magnetic tape regardless of how many times it had netic tape storage during the proposal main-programpreviously been executed. A paragraph subprogram execution phase. The first word of the record becomesneeded to describe a motor, for example, would be exe- "n," the paragraph subprogram identification number.cuted each time a motor were required to meet cus- The second word consists of "m," the number of vari-tomer needs. ables, constants or expressions in the "list of arguments. "

The values for the variables, constants, or expressionsPART IV: SUBROUTINES TO ACCOMPLISH FUNCTIONS ar stre insqec,n,h et"n"wrsecpIN THEEXTENED LANGUAGEare stored in sequence in the next "m words excepztIN THE EXTENDED LANGUAGE when a variable is an alphabetic variable, in which case a

For each extension that the proposal writer makes to sentinel pointer is inserted instead of a value. The groupsFORTRAN II there is a machine language subroutine of Hollerith characters comprising the alphabetic vari-provided automatically by the proposal writer system. ables start in word "im" +-3 of the record, each precededFor the most part it is enough to say that the subrou- by a prefix word similar to that used when storing alpha-tines accomplish the goals of the language extension betic variables in magnetic core or magnetic drumfrom which they arise. For a few a little elaboration is in memory. Since the "list of arguments" does not dis-order. tinguish alphabetic variables from integer and floatingThe subroutine called ALINSR arises from the point values, the PREPSR subroutine actually tests the

ALPHABETIC INPUT "list" statement and controls memory location associated with each item mentionedthe input of alphabetic information from data cards. in the list. Variables corresponding to locations contain-ALINSR causes cards to beread until one parenthesized ing the octal sentinel 377210 are determined to begroup of Hollerith characters is read for each variable alphabetic.named in "list. " As each group of characters is read into The intermediate magnetic tape records generated bythe computer, ALINSR stores it either in magnetic the PREPSR subroutine are used by the editor-mon-core or magnetic drum memory. The system for storing itor to identify and pass arguments to the paragraphis as follows. subprograms when they are executed during the delayed

Page 7: A FORTRAN Extension to Facilitate Proposal Preparation

462 IEEE TRANSACTIONS ON ELECTRONIC COMPUTERS

execution phase. Most of the subroutines not specifi- II system then current for the IBM 704 Computer, itcally mentioned either are a part of or rely on the editor was possible to complete the system in an elapsed timeportion of the editor-monitor. Collectively the editor of five months with the expenditure of approximatelyportion of this program supervises the filling of a 119 seven man months of effort. Besides making it possiblecharacter storage area in memory containing the com- to quickly build the proposal writer system, other ad-position of the next line to be printed. Supervision in- vantages accrued from building on FORTRAN. Thecludes changing and maintaining margins, controlling user retained the facility to use the normal FORTRANtypewriter type tabulations, truncating lines on spaces statements. Elaborate diagnostic programs for detect-between words, controlling vertical spacing, and writing ing clerical and usage errors in the proposal writer lan-out filled lines on magnetic tape for peripheral printing. guage proved to be unnecessary. Improper statements

introduced in the proposal writer language are not recog-CONCLUSIONS nized by the pre-editor to FORTRAN. Thus, such state-

The use of the proposal writer system to compose pro- ments are passed unaltered to the FORTRAN II trans-posals for applications engineers is still viewed as an later where the FORTRAN diagnostic programsexperiment. One problem has been that defining the quickly detect the presence of an error.logic for even the more standard type proposal has been The endurance of FORTRAN as a general algebraicmore difficult than originally anticipated. In many language has virtually assured that the major elementsituations the general logical processes which an appli- of the proposal writer system will be available for mostcations engineer goes through do not consider eventual- computers in widespread usage. Even though the sup-ities which have never occurred previously or which oc- porting programs developed to extend FORTRAN andcur only infrequently. In short, the adaptive thinking tie together the proposal writer system are written inand creative talents of the applications engineer are symbolic machine language and would have to be re-used even more extensively than had been thought. A programmed if the system were to be placed on anysecond (and welcome) stumbling block has been that computer with an incompatible machine language, thecontinual improvement has altered the way proposals magnitude of the reprogramming would be very minorare organized. By better grouping, the compositions of relative to what it might have been if developed inde-many proposals have been separated into fixed and vari- pendent of FORTRAN. Were these supporting pro-able parts, allowing the applications engineers to con- grams to be redone in light of present day experience,centrate their attentions on the aspects of a negotia- they would certainly be written predominently intion which are truly different from similar negotiations. FORTRAN to achieve computer independence.Under such circumstances the gain in using the com- The authors are satisfied that problem-oriented lan-puter for composition is questionable. The fixed parts guages can be developed and implemented more quicklyare on file in reproducible form, and the preparation of and adequately by building to the maximum on an exist-computer input to produce the variable parts is com- ing higher level programming language such as FOR-parable to manually composing them. TRAN. They believe that such an approach is most eco-

Since the costing rates for computers have been de- nomic because relying on an already developed andcreasing at an annual rate approximating 35 per cent, supported language minimizes the programming man-vs an increase of 5 per cent per year for engineers, there power required and focuses the development effortwill remain a continued economic incentive to experi- directly on those aspects of the problem oriented lan-ment with the proposal writer system as an aid in com- guage which make it different.posing proposals, instruction manuals, and any otherengineering documents which are constructed partly by BIBLIOGRAPHYselecting from among pieces of prewritten text. [1] "FORTRAN Reference Manuial," IBM Corp., New York, N. Y.,

Development of the proposal writer system was begun Form 32-7026.[2] "FORTRANiI Reference Manual for the IBM 704 Data Process-

early in 1959. By basing the language on the FORTRAN ing System," IBM Corp., New York, N. Y., Form C-28-6000.


Recommended