Content deleted Content added
mention uncanny resembleance to Forth by Moore. amazing likeness. |
Andy Dingley (talk | contribs) Reverted 1 edit by 50.163.162.160 (talk): Rv anachronistic typography changes (THIS BREAKS IT) and also move the editorial to the talk page. (TW) |
||
Line 1:
In 1957, [[Charles Leonard Hamblin]] invented the [[programming language]] '''GEORGE'''.<ref >C. L. Hamblin [1957]: ''An addressless coding scheme based on mathematical notation.'' Proceedings of the First Australian Conference on Computing and Data Processing, Salisbury, South Australia: Weapons Research Establishment, June 1957.</ref><ref >C. L. Hamblin [1957]: ''Computer Languages.'' The Australian Journal of Science, 20: 135-139. Reprinted in The Australian Computer Journal, 17(4): 195-198 (November 1985).</ref>
Line 9 ⟶ 7:
Algebraic expressions were written in reverse Polish notation; thus, <math>a + b</math> was written <code>a b +</code>, and similarly for the other arithmetic operations of subtraction, multiplication, and division.
The algebraic expression <math>ax^2 + bx + c</math> was written <code>a x dup ×
Following the reverse Polish form, an assignment statement to evaluate the formula <math>y = ax^2 + bx + c</math> was written as <code>a x dup ×
The computer evaluated the expression as follows: the values of <code>a</code>, then <code>x</code>, were pushed onto the top of the [[stack machine|accumulator stack]]; '<code>dup</code>' caused a copy of the top-most value (<code>x</code>) to be pushed onto the top of the accumulator stack; Multiply (<code>
Assuming that the value on the top of the accumulator stack was not required immediately, it would be removed (cleared) by using the operator (<code>;</code>).
Line 71 ⟶ 69:
|-
! scope="row" | 4
| ||
|-
! scope="row" | 5
Line 77 ⟶ 75:
|-
! scope="row" | 6
| - ||
|-
! scope="row" | 7
|
|-
! scope="row" | 8
Line 92 ⟶ 90:
|-
! scope="row" | 11
| max || || 11 || 27 || l ||
|-
! scope="row" | 12
| dup || || 12 || 28 || m ||
|-
! scope="row" | 13
| rev || || 13 || 29 || n ||
|-
! scope="row" | 14
| = || || 14 || 30 || Θ ||
|-
! scope="row" | 15
| > || || 15 || 31 || p ||
|}
Line 112 ⟶ 110:
if a > 0 go to 5 (which transfers to label 5 if a is greater than zero)
would be written
<pre>0 a > 5
Label 5 was indicated by including *5 elsewhere in the program.
Unconditional transfers were written
Subroutine calls were made with the down arrow, .g., to call subroutine labelled 17, write
==Historical note==
|