Difference between revisions of "Optimum programming"

From Computer History Wiki
Jump to: navigation, search
(Reasonably complete)
 
(Minor clarifications)
Line 1: Line 1:
 
'''Optimum programming''' (also called '''optimal coding''') was the name for a programming technique sometimes used on computers whose [[main memory]] was not [[random access]], but sequential (such as [[delay line]]- and [[drum]]-based memory).
 
'''Optimum programming''' (also called '''optimal coding''') was the name for a programming technique sometimes used on computers whose [[main memory]] was not [[random access]], but sequential (such as [[delay line]]- and [[drum]]-based memory).
  
In computers with such memory whose [[instruction]]s all include the [[address]] of the next instruction (i.e. they do not have a [[Program Counter]]), it was possible to scatter the instructions through the memory such that when any given instruction finishes its [[execute|execution]], the memory is just ready to provide the next instruction (which could/would be given by the 'next instruction' field in the prior instruction). This ensured that the computer was never wasting time waiting for the memory to provide the next instruction it needed.
+
In computers with such memory whose [[instruction]]s all include the [[address]] of the next instruction (i.e. they do not have a [[Program Counter]]), it was possible to scatter the instructions through the memory such that when any given instruction finishes its [[execute|execution]], the memory is just ready to provide the next instruction (whose address could/would be given by the 'next instruction' field in the prior instruction). This ensured that the computer was never wasting time waiting for the memory to provide the next instruction it needed.
  
 
Initially, the task of placing the instructions in memory at appropriate locations to allow this was left up to the programmer(s); eventually software tools (such as [[assembly language|assemblers]]) which did all the book-keeping necessary to automagically assign instructions to the appropriate addresses were written.
 
Initially, the task of placing the instructions in memory at appropriate locations to allow this was left up to the programmer(s); eventually software tools (such as [[assembly language|assemblers]]) which did all the book-keeping necessary to automagically assign instructions to the appropriate addresses were written.
Line 9: Line 9:
 
==External links==
 
==External links==
  
* [http://www.bitsavers.org/pdf/ibm/650/32-7646-1_SOAPII.pdf SOAP II] - optimizing assembler for the IBM 650
+
* [http://www.bitsavers.org/pdf/ibm/650/32-7646-1_SOAPII.pdf SOAP II] - address-optimizing assembler for the IBM 650
  
 
[[Category: CPU Basics]]
 
[[Category: CPU Basics]]
 
[[Category: Software Basics]]
 
[[Category: Software Basics]]

Revision as of 12:33, 19 March 2024

Optimum programming (also called optimal coding) was the name for a programming technique sometimes used on computers whose main memory was not random access, but sequential (such as delay line- and drum-based memory).

In computers with such memory whose instructions all include the address of the next instruction (i.e. they do not have a Program Counter), it was possible to scatter the instructions through the memory such that when any given instruction finishes its execution, the memory is just ready to provide the next instruction (whose address could/would be given by the 'next instruction' field in the prior instruction). This ensured that the computer was never wasting time waiting for the memory to provide the next instruction it needed.

Initially, the task of placing the instructions in memory at appropriate locations to allow this was left up to the programmer(s); eventually software tools (such as assemblers) which did all the book-keeping necessary to automagically assign instructions to the appropriate addresses were written.

Among computers which used this technique were the ACE and its descendants (including the Pilot ACE and the DEUCE), the Bendix G-15, and the IBM 650.

External links

  • SOAP II - address-optimizing assembler for the IBM 650