Talk:Atlas Autocode

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computing (Rated Start-class)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start-Class article Start  This article has been rated as Start-Class on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.


Is this still a stub? Shinobu 11:36, 5 Apr 2005 (UTC)

Yes, it's got a bit of info but its lacking any inline citations. Jwoodger (talk) 00:09, 2 September 2009 (UTC)

Passing by name[edit]

  • "Passing by Name" in Algol60. In the versions I used (Elliott Algol for the 803 and 903) I'm almost certain that "calling by name" which was the default condition if a formal parameter to a procedure or function was not declared as "value", meant that the address of the actual parameter was passed into the subroutine and the actual parameter manipulated. This meant that any changes would persist after the routine exited. I.e. it gave rise to side-effects. It was valuable if a large array or matrix was being manipulated, since in avoided copying the whole thing onto the stack which a "call by value" would involve. OTOH, a call by value ensured that the routine could not change the value of the actual parameter, a copy was made on the stack which was local to the routine and vanished on exit. I think therefore that the comment in the text here is mistaken, and should certainly be checked out. Mongvras (talk) 20:21, 12 April 2009 (UTC)
  • I have now read through much of the AA manual referenced in this article. AA allowed both calls by name and calls by value, in exactly the same way as Algol, the difference being that call by value was the default (sensible, like C++). The language is on the whole more primative that Algol60, although it has advanced features like block structure, variable scoping, and dynamic array bounds. These were not present in other contempory autocodes (afaik!), and indeed were absent from Fortran and many later languages. OTOH AA has very weak, assembler-like conditional instructions, and jump instructions (equivalent to 'goto's) feature prominently. It would probably be possible to write fully structured programs in AA, but the concept is not mentioned in the manual. There is nothing in the formal structure of AA to prevent a programmer from writing the most horrendous spaghetti code. Mongvras (talk) 22:30, 12 April 2009 (UTC)
  • In Atlas Autocode, passing by name meant passing the address of the variable, and using an expression such as x+1 as actual-parameter for a formal-parameter by name was faulted by the compiler :: I should know, I wrote and used plenty of Atlas Autocode programs. In Algol, passing by name meant passing by substitution: if an expression such as x+1 was used as actual-parameter for a formal-parameter by name, writing to the parameter from inside the procedure did not work. Anthony Appleyard (talk) 22:32, 12 April 2009 (UTC)