It's an interesting observation that the bulk array handling originated with the read operation. Another very prominent technolgy, the object oriented programming, also drove the insight for one of its priciples--encapsulation (hiding of data and association with functions) with a read operation on an ancient machine B220 without an file operating system, so tape was divided into three regions: data, functions knowing to operate of this data and a pointer table. The latter is the prototype of the vtable, of course. http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html
----- Original Message ---- From: John Randall <[EMAIL PROTECTED]> To: General forum <[email protected]> Sent: Friday, June 16, 2006 10:12:35 AM Subject: RE: [Jgeneral] Mathematica and its roots > Surely you don't expect the syntax of C and C++ to change... People are > still writing Fortan70 despite the existence of Fortran90... > There are actually good reasons to preferring FORTRAN 77 over Fortran 90, at least for scientific computing. Succumbing to pressures to make the language more modern, the designers put recursion and dynamic memory allocation in F90, making it unsuitable for a lot of applications. The reason is that the runtime architecture of a F77 program is particularly simple. Because there is no recursion, it uses static procedure linkage and does not need a stack; because there is no dynamic allocation of memory, it does not need a heap. All the memory that will ever be needed is known when the program in invoked. Taking advantage of this, many large F77 programs are run in real memory. Of all the languages that are criticized for not having complete array operations, I think Fortran missed the boat the most. As I mentioned in a previous post, C can be partly forgiven because it does not really have proper arrays: Fortran had them from the beginning. The very first version of Fortran allowed one to say DIMENSION A(10) READ A In discussing the READ statement, the FORTRAN Programmer's Reference manual from 1956 says: "When it is desired to transmit an entire array, and in its natural order ... then an abbreviated notation may be used; only the name of the array need be given and the indexing information may be omitted. FORTRAN will look to see if a DIMENSION statement ... has been made about that name; if it has, indexing information to transmit the entire array in natural order will be supplied automatically, while if it has not, only a single variable will be transmitted. Thus, in the example, the entire A-array will be transmitted, including the special case where the array consists only of a single quantity." In my opinion, this behavior was begging for generalization right then. Best wishes, John ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
