Speedcoding: Difference between revisions

Content deleted Content added
No edit summary
No edit summary
Line 28:
The idea arose from the difficulty of programming the [[IBM SSEC]] machine when Backus was hired to calculate astronomical positions in early 1950.<ref name="Booch-Backus_2006"/>
The speedcoding system was an [[Interpreter (computing)|interpreter]] and focused on ease of use at the expense of system resources. It provided pseudo-instructions for common mathematical functions: logarithms, exponentiation, and trigonometric operations. The resident software analyzed pseudo-instructions one by one and called the appropriate subroutine. Speedcoding was also the first implementation of decimal input/output operations. Although it substantially reduced the effort of writing many jobs, the running time of a program that was written with the help of Speedcoding was usually ten to twenty times that of machine code.<ref name="Pugh-Johnson-Palmer_1991"/> The interpreter took 310 memory words, about 30% of the memory available on a 701.<ref name="Allen_1981"/>
 
== History and Development ==
In August 1952, several dozen IBM engineers and [[IBM 701]] customers met in [[Poughkeepsie, New York]] to exchange ideas and best practices on programming the new machines in assembly. Several attendees expressed frustration with the slow nature of assembly programming and debugging, and questioned the utility of the 701 in applications where solutions to problems were needed quickly, or when the value of a justified the expense of computation time but not the cost of programming and debugging. Attendees likewise complained with issues with "scaling", or the need to religiously track the decimal point in arithmetic operations.<ref name="bashe-johnson-ibm"/>
 
John W. Sheldon, a supervisor of IBM's Technical Computing Bureau attending the meeting, and others felt that an "interpretive" programming system that utilized floating point operations was the best solution to this problem. Sheldon asked John Backus, who had previously worked on a [[IBM CPC|CPC]] to [[IBM SSEC|SSEC]] code translator, to supervise the creation of a new floating-point interpretive programming language for use internal to IBM. Backus himself had previously expressed interest in improving programming methods, and observed that computing costs were roughly equally split between the cost of computation and cost of programming personnel, and that the additional expense of testing made labor the considerably larger expense. Starting in 1953, Backus and five colleagues designed this new language and named it "Speedcoding", where its use soon spread outside of IBM to customer installations of the 701 system.<ref name="bashe-johnson-ibm"/>
 
==Syntax and Semantics==
Line 154 ⟶ 159:
<ref name="Pugh-Johnson-Palmer_1991">{{cite book |title=IBM's 360 and early 370 systems |author-first1=Emerson W. |author-last1=Pugh |author-first2=Lyle R. |author-last2=Johnson |author-first3=John H. |author-last3=Palmer |publisher=[[MIT Press]] |date=1991 |isbn=0-262-16123-0 |page=38}}</ref>
<ref name="ibm-speedcoding-system-1954">{{cite book |title=IBM speedcoding system for the type 701 electronic data processing machines |date=1954 |orig-date=1953-09-10 |publisher=[[International Business Machines Corporation]] |___location=New York, USA |id=Form 24-6059-0 (5-54:2M-W) |url=https://archive.computerhistory.org/resources/access/text/2018/02/102678975-05-01-acc.pdf |access-date=2022-07-04 |url-status=live |archive-url=https://web.archive.org/web/20220704164350/https://archive.computerhistory.org/resources/access/text/2018/02/102678975-05-01-acc.pdf |archive-date=2022-07-04}}</ref>
<ref name="bashe-johnson-ibm">{{cite book |last1=Bashe |first1=Charles |last2=Johnson |first2=Lyle |last3=Palmer |first3=John |last4=Pugh |first4=Emerson |title=IBM's Early Computers |date=March 17, 1986 |publisher=MIT Press |isbn=9780262523936 |pages=332-338 |url=https://mitpress.mit.edu/9780262523936/ibms-early-computers/ |access-date=25 August 2023}}</ref>
}}
 
Line 167 ⟶ 173:
[[Category:IBM software]]
[[Category:Programming languages created in 1953]]
 
{{Soft-eng-stub}}