<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Segoe UI";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1354839840;
        mso-list-type:hybrid;
        mso-list-template-ids:-1925398384 1052284106 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:9.0pt;
        font-family:"Segoe UI","sans-serif";}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hello everyone,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’m wondering if anyone has pinned down the origin of the word “subroutine.” OED currently has as the first two example usages:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='color:black'>c1946   H. H. Goldstine & J. Von Neumann in J. Von Neumann Coll. Wks. (1961) V. 25   Both..machines are controlled by instructions punched into several tapes and they can be ordered to switch from one to the other as desired. They are usually referred to as ‘master routine’ and ‘sub-routine’ tapes. [The ellipsis hide reference to the Harvard Mark 1 and to the Bell Labs relay machines].<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in;text-autospace:none'><span style='color:black'><o:p> </o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='color:black'>1948   H. H. Goldstine & J. Von Neumann in J. Von Neumann Coll. Wks. (1963) V. 217   We call the coded sequence of a problem a routine, and one which is formed for the purpose of possible substitution into other routines a subroutine.<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>In my work on ENIAC with Mark Priestley and Crispin Rope we have located an earlier (1945) usage in the “AMP Report” authored by members of the ENIAC team. “It is possible to have the main routine divided into sub-routines, in which case one stepper is used to feed another stepper, thus allowing the proper sub-routine to be chosen in the course of a regular routine.”  J. P. Eckert, J. W. Mauchly, H. H. Goldstine, and J. G. Brainerd, <i>Description of the ENIAC and Comments on Electronic Digital Machines. AMP Report 171.2R. Distributed by the Applied Mathematics Panel, National Defense Research Committee, November  30</i>. Philadelphia, PA: Moore School of Electrical Engineering, 1945.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’m also aware that the term has been applied in later usage to useful blocks of code saved and copied into programs as needed on the Harvard Mark 1, e.g. in K. W. Beyer, <i>Grace Hopper and the Invention of the Information Age</i>. Cambridge, MA: MIT Press, 2009 pages 95-106. That fits in the general sense with the 1946 von Neumann quote, although the Harvard Mark 1 did not in 1945 have the ability to switch to a second tape and was instead confined to running like a player piano over a single series of instructions. I did not spot any quotation of the actual word “subroutine” from 1945 or 1946 sources in Beyer’s book. His citations in that section all come from much later oral histories and reminiscences, not from 1940s documents. (Also Beyer seems unaware of the refinement of the idea by von Neumann and his colleagues in the 1948 installment of the “Planning and Coding” report, instead considering only the transfer of ideas to the EDSAC team in the UK).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>So, my questions are:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-size:9.0pt;font-family:"Segoe UI","sans-serif"'><span style='mso-list:Ignore'>1)<span style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]>Does anyone have a documented usage prior to November 1945 of the word “subroutine” or the hyphenated “sub-routine”?<o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-size:9.0pt;font-family:"Segoe UI","sans-serif"'><span style='mso-list:Ignore'>2)<span style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]>Are there primary sources that will tell us whether the use of “routine” to describe a program was standard terminology at Harvard, at Bell Labs, or at both? I’d expect the coinage of “subroutine” to come naturally at a site in which programs were called “routines” and less so elsewhere.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Best wishes,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Tom<o:p></o:p></p></div></body></html>