From: Terence on 22 Oct 2006 06:49 Glen wrote:- For the first Fortran compiler, in the manual 50 years and one week old: "The name of a function is 4 to 7 alphabetic or numeric characters, (not special characters) of which the last must be F and the first must be alphabetic. Also, the first must be X if and only if the function is to be fixed point." You know, I DON't remember that!! I think I still have the 4/1/61 Fortran manual around (the one with SENSE SWITCH set reset and and test instuctions and the punch output and other now-"funny" stuff). but I'm darn sure there was no mention of an "F" or "X" as a required leading character. Perhaps this is a non-IBM specification of somewhere between 1957 and 1961 before programsa became more shareable? (By the way, who remembers Algol?) Possible the other references (in other contributions) on name size limits are confusing FUNCTION and SUBROUTINE name limitations with VARIABLE name limitations; the former WERE different, since the function name WAS a variable and the subroutine name was not, but all were in the symbol table as encountered names.
From: Peter Flass on 22 Oct 2006 08:32 glen herrmannsfeldt wrote: > Brian Inglis wrote: > > (snip on C, struct, and operators) > >> And what would these operators mean applied to a struct? You need C++, >> but it's not intuitively obvious what those operators >> would mean, so using member functions with meaningful names would be >> more obvious e.g. zero_stuff, inc_stuff, add_stuff. > > > It took Fortran many years to add array operations, yet they > seem obvious once added. Initializing a whole array with as > > A=0 > > seems obvious enough, why not initialize a whole structure > in a similar way? That would, of course, depend in the operation > making sense, in that the structure would have to contain only > elements where assigning 0 made sense. > For PL/I, just initialize the structure to the null string, e.g.: struct = ''; This is defined for all computational data to initialize numerics to zero, character data to spaces, etc. It's undefined for non-computational data, but most implementations will initialize pointers to NULL, etc.
From: Gordon Sande on 22 Oct 2006 09:49 > > For mathematicians, elementwise multiplication doesn't make sense, I had always understood it to be called the Hadamard product but it certainly takes a distant second (or lower) place to the usual matrix manipulations. Google has several citations with a few properites.
From: Gordon Sande on 22 Oct 2006 09:49 On 2006-10-22 04:56:06 -0300, glen herrmannsfeldt <gah(a)ugcs.caltech.edu> said: > Terence wrote: > (snip) > >> My memory is that at least one of the earlier Fortran compilers I >> worked with allowed SIX-letter variable names only in the main program. >> And FIVE-letter names as variables in subroutines and functions. > > (snip) > > For the first Fortran compiler, in the manual 50 years and one week old: > > "The name of a function is 4 to 7 alphabetic or numeric characters, > (not special characters) of which the last must be F and the first > must be alphabetic. Also, the first must be X if and only if the > function is to be fixed point." > > Also, "The name of a variable must not be the same as the name of > any function used in the program after the terminal F of the function > name has been removed. Also, if a subscripted variable has 4 or more > characters in its name, the last of these must not be an F." > > Six letter names are especially convenient for 36 bit machines > using a six bit character set, or that internally adopt a six > bit character set for some names. > > -- glen I had a vague recollection about a rule concerning terminal F in a function name. Thanks for the confirmation. The reason as I recall it was that things like SINF had only a single arguement that could be placed in the accumulator while regular subroutine calls used a differing calling convention of a list of addresses. I have no notion of what the rule would have been for been for a terminal F and several arguements or for a nonscalar arguement that was intended to be changed. I do not recall if there was any way, other than assembley language, for a user written Fortran function to use the special convention. This special casing was another symptom of the attention paid to optimization in the earliest Fortran compilers. They were competing with assembly language coding at a time when computers were still very much more expensive than the software.
From: Larry__Weiss on 22 Oct 2006 10:32
Gordon Sande wrote: >> >> For mathematicians, elementwise multiplication doesn't make sense, > > > I had always understood it to be called the Hadamard product but it > certainly takes a distant second (or lower) place to the usual > matrix manipulations. > > Google has several citations with a few properites. > Here's a good summary http://en.wikipedia.org/wiki/Matrix_multiplication#Hadamard_product - Larry |